From d11eb8fa65e0d036f88890ed7fd771a607f75cbc Mon Sep 17 00:00:00 2001 From: Sebastian Rindom Date: Mon, 31 Aug 2020 11:19:04 +0200 Subject: [PATCH] fix: auto pick country in 1 country regions --- .../src/services/klarna-provider.js | 8 +++++--- packages/medusa/src/services/cart.js | 11 ++++++++--- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/packages/medusa-payment-klarna/src/services/klarna-provider.js b/packages/medusa-payment-klarna/src/services/klarna-provider.js index a55b80e6e2..b097b61d60 100644 --- a/packages/medusa-payment-klarna/src/services/klarna-provider.js +++ b/packages/medusa-payment-klarna/src/services/klarna-provider.js @@ -135,9 +135,11 @@ class KlarnaProviderService extends PaymentService { } // TODO: Check if country matches ISO - if (!_.isEmpty(cart.billing_address) && cart.billing_address.country) { - order.purchase_country = - cart.shipping_address.country_code || cart.billing_address.country_code + if ( + !_.isEmpty(cart.shipping_address) && + cart.shipping_address.country_code + ) { + order.purchase_country = cart.shipping_address.country_code } else { // Defaults to Sweden order.purchase_country = "SE" diff --git a/packages/medusa/src/services/cart.js b/packages/medusa/src/services/cart.js index dbefa68c33..7914e3e296 100644 --- a/packages/medusa/src/services/cart.js +++ b/packages/medusa/src/services/cart.js @@ -1135,10 +1135,15 @@ class CartService extends BaseService { } // If the country code of a shipping address is set we need to clear it - let shippingAddress = cart.shipping_address + let shippingAddress = cart.shipping_address || {} if (!_.isEmpty(shippingAddress) && shippingAddress.country_code) { - shippingAddress.country_code = - region.countries.length === 1 ? region.countries[0] : "" + shippingAddress.country_code = "" + update.shipping_address = shippingAddress + } + + // If there is only one country in the region preset it + if (region.countries.length === 1) { + shippingAddress.country_code = region.countries[0] update.shipping_address = shippingAddress }