From e27518435ea1fafe556168c36475916a4243eabe Mon Sep 17 00:00:00 2001 From: Sebastian Rindom Date: Tue, 23 Mar 2021 14:00:14 +0100 Subject: [PATCH] fix: klarna doesn't treat negative discounts well --- .../src/services/klarna-provider.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/medusa-payment-klarna/src/services/klarna-provider.js b/packages/medusa-payment-klarna/src/services/klarna-provider.js index 3f4f29d39c..edad067db5 100644 --- a/packages/medusa-payment-klarna/src/services/klarna-provider.js +++ b/packages/medusa-payment-klarna/src/services/klarna-provider.js @@ -102,7 +102,7 @@ class KlarnaProviderService extends PaymentService { order.order_lines = await this.lineItemsToOrderLines_(cart, region.tax_rate) - if (discount_total) { + if (discount_total > 0) { order.order_lines.push({ name: `Discount`, quantity: 1, @@ -113,6 +113,16 @@ class KlarnaProviderService extends PaymentService { total_amount: -discount_total * (1 + taxRate), total_tax_amount: -discount_total * taxRate, }) + } else if (discount_total < 0) { + order.order_lines.push({ + name: `Discount Payback`, + quantity: 1, + type: "surcharge", + unit_price: -discount_total * (1 + taxRate), + tax_rate: taxRate * 10000, + total_amount: -discount_total * (1 + taxRate), + total_tax_amount: -discount_total * taxRate, + }) } if (gift_card_total) {