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:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user