fix: If country on cart has no tax region, clear tax lines (#9447)

**What**

If the country on the shipping address changes to a country without an associated tax region, we clear the tax lines on shipping methods and line items.
This commit is contained in:
Oli Juhl
2024-10-04 11:55:53 +00:00
committed by GitHub
parent a114f90358
commit 6055f4c9cf
2 changed files with 166 additions and 19 deletions
@@ -25,36 +25,21 @@ export const setTaxLinesForItemsStep = createStep(
const { cart, item_tax_lines, shipping_tax_lines } = data
const cartService = container.resolve<ICartModuleService>(Modules.CART)
const getShippingTaxLinesPromise =
const existingShippingMethodTaxLines =
await cartService.listShippingMethodTaxLines({
shipping_method_id: shipping_tax_lines.map((t) => t.shipping_line_id),
})
const getItemTaxLinesPromise = await cartService.listLineItemTaxLines({
const existingLineItemTaxLines = await cartService.listLineItemTaxLines({
item_id: item_tax_lines.map((t) => t.line_item_id),
})
const itemsTaxLinesData = normalizeItemTaxLinesForCart(item_tax_lines)
const setItemTaxLinesPromise = itemsTaxLinesData.length
? cartService.setLineItemTaxLines(cart.id, itemsTaxLinesData)
: 0
await cartService.setLineItemTaxLines(cart.id, itemsTaxLinesData)
const shippingTaxLinesData =
normalizeShippingTaxLinesForCart(shipping_tax_lines)
const setShippingTaxLinesPromise = shippingTaxLinesData.length
? await cartService.setShippingMethodTaxLines(
cart.id,
shippingTaxLinesData
)
: 0
const [existingShippingMethodTaxLines, existingLineItemTaxLines] =
await Promise.all([
getShippingTaxLinesPromise,
getItemTaxLinesPromise,
setItemTaxLinesPromise,
setShippingTaxLinesPromise,
])
await cartService.setShippingMethodTaxLines(cart.id, shippingTaxLinesData)
return new StepResponse(null, {
cart,