@vendure/payments-plugin 1.9.0 → 1.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,6 +16,12 @@ export declare function toMollieOrderLines(order: Order): CreateParameters['line
16
16
  * Stringify and fixed decimals
17
17
  */
18
18
  export declare function toAmount(value: number, orderCurrency: string): Amount;
19
+ /**
20
+ * Recalculate tax amount per order line instead of per unit for Mollie.
21
+ * Vendure calculates tax per unit, but Mollie expects the tax to be calculated per order line (the total of the quantities).
22
+ * See https://github.com/vendure-ecommerce/vendure/issues/1939#issuecomment-1362962133 for more information on the rounding issue.
23
+ */
24
+ export declare function calculateLineTaxAmount(taxRate: number, orderLinePriceWithTax: number): number;
19
25
  /**
20
26
  * Lookup one of Mollies allowed locales based on an orders countrycode or channel default.
21
27
  * If both lookups fail, resolve to en_US to prevent payment failure
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getLocale = exports.toAmount = exports.toMollieOrderLines = exports.toMollieAddress = void 0;
3
+ exports.getLocale = exports.calculateLineTaxAmount = exports.toAmount = exports.toMollieOrderLines = exports.toMollieAddress = void 0;
4
4
  /**
5
5
  * Check if given address has mandatory fields for Mollie Order and map to a MollieOrderAddress.
6
6
  * Returns undefined if address doesn't have all mandatory fields
@@ -27,10 +27,10 @@ function toMollieOrderLines(order) {
27
27
  const lines = order.lines.map(line => ({
28
28
  name: line.productVariant.name,
29
29
  quantity: line.quantity,
30
- unitPrice: toAmount(line.proratedUnitPriceWithTax, order.currencyCode),
30
+ unitPrice: toAmount(line.proratedLinePriceWithTax / line.quantity, order.currencyCode),
31
31
  totalAmount: toAmount(line.proratedLinePriceWithTax, order.currencyCode),
32
32
  vatRate: String(line.taxRate),
33
- vatAmount: toAmount(line.lineTax, order.currencyCode),
33
+ vatAmount: toAmount(calculateLineTaxAmount(line.taxRate, line.proratedLinePriceWithTax), order.currencyCode),
34
34
  }));
35
35
  // Add shippingLines
36
36
  lines.push(...order.shippingLines.map(line => {
@@ -38,7 +38,7 @@ function toMollieOrderLines(order) {
38
38
  return ({
39
39
  name: ((_a = line.shippingMethod) === null || _a === void 0 ? void 0 : _a.name) || 'Shipping',
40
40
  quantity: 1,
41
- unitPrice: toAmount(line.priceWithTax, order.currencyCode),
41
+ unitPrice: toAmount(line.discountedPriceWithTax, order.currencyCode),
42
42
  totalAmount: toAmount(line.discountedPriceWithTax, order.currencyCode),
43
43
  vatRate: String(line.taxRate),
44
44
  vatAmount: toAmount(line.discountedPriceWithTax - line.discountedPrice, order.currencyCode),
@@ -48,7 +48,7 @@ function toMollieOrderLines(order) {
48
48
  lines.push(...order.surcharges.map(surcharge => ({
49
49
  name: surcharge.description,
50
50
  quantity: 1,
51
- unitPrice: toAmount(surcharge.price, order.currencyCode),
51
+ unitPrice: toAmount(surcharge.priceWithTax, order.currencyCode),
52
52
  totalAmount: toAmount(surcharge.priceWithTax, order.currencyCode),
53
53
  vatRate: String(surcharge.taxRate),
54
54
  vatAmount: toAmount(surcharge.priceWithTax - surcharge.price, order.currencyCode),
@@ -66,6 +66,16 @@ function toAmount(value, orderCurrency) {
66
66
  };
67
67
  }
68
68
  exports.toAmount = toAmount;
69
+ /**
70
+ * Recalculate tax amount per order line instead of per unit for Mollie.
71
+ * Vendure calculates tax per unit, but Mollie expects the tax to be calculated per order line (the total of the quantities).
72
+ * See https://github.com/vendure-ecommerce/vendure/issues/1939#issuecomment-1362962133 for more information on the rounding issue.
73
+ */
74
+ function calculateLineTaxAmount(taxRate, orderLinePriceWithTax) {
75
+ const taxMultiplier = taxRate / 100;
76
+ return orderLinePriceWithTax * (taxMultiplier / (1 + taxMultiplier)); // I.E. €99,99 * (0,2 ÷ 1,2) with a 20% taxrate
77
+ }
78
+ exports.calculateLineTaxAmount = calculateLineTaxAmount;
69
79
  /**
70
80
  * Lookup one of Mollies allowed locales based on an orders countrycode or channel default.
71
81
  * If both lookups fail, resolve to en_US to prevent payment failure
@@ -1 +1 @@
1
- {"version":3,"file":"mollie.helpers.js","sourceRoot":"","sources":["../../src/mollie/mollie.helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mollie.helpers.js","sourceRoot":"","sources":["../../src/mollie/mollie.helpers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vendure/payments-plugin",
3
- "version": "1.9.0",
3
+ "version": "1.9.2",
4
4
  "license": "MIT",
5
5
  "main": "package/index.js",
6
6
  "types": "package/index.d.ts",
@@ -29,14 +29,14 @@
29
29
  "devDependencies": {
30
30
  "@mollie/api-client": "^3.6.0",
31
31
  "@types/braintree": "^2.22.15",
32
- "@vendure/common": "^1.9.0",
33
- "@vendure/core": "^1.9.0",
34
- "@vendure/testing": "^1.9.0",
32
+ "@vendure/common": "^1.9.2",
33
+ "@vendure/core": "^1.9.2",
34
+ "@vendure/testing": "^1.9.2",
35
35
  "braintree": "^3.0.0",
36
36
  "nock": "^13.1.4",
37
37
  "rimraf": "^3.0.2",
38
38
  "stripe": "^8.197.0",
39
39
  "typescript": "4.3.5"
40
40
  },
41
- "gitHead": "b534b31a87ce728bdbbf9d1d37cdc8e528be07c8"
41
+ "gitHead": "f0035fa97585d1f1074b31b07eb18c003c0cbed7"
42
42
  }