From 0f5cdf99fbe37bd5dba97fab82bac02d3388a50a Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Wed, 5 Jan 2022 10:43:42 +0100 Subject: [PATCH] fix: Clean order if it is placed --- .../api/utils/normalizeLineItems.ts | 44 ++++++++++--------- framework/commercelayer/cart/use-cart.tsx | 31 +++++++------ 2 files changed, 42 insertions(+), 33 deletions(-) diff --git a/framework/commercelayer/api/utils/normalizeLineItems.ts b/framework/commercelayer/api/utils/normalizeLineItems.ts index b0bd99c56..f9c8933dc 100644 --- a/framework/commercelayer/api/utils/normalizeLineItems.ts +++ b/framework/commercelayer/api/utils/normalizeLineItems.ts @@ -1,26 +1,30 @@ export default function normalizeLineItems(lineItems: any[]) { - return lineItems.map((lineItem) => { - const id = lineItem.id - const attributes = lineItem.attributes - return { - id, - name: attributes.name, - productId: attributes.reference, - variantId: attributes.reference, - quantity: attributes.quantity, - price: attributes.unit_amount_float, - variant: { + return lineItems + .filter((l) => { + return !['shipment', 'paymentMethod'].includes(l.itemType) + }) + .map((lineItem) => { + const id = lineItem.id + const attributes = lineItem.attributes + return { id, name: attributes.name, - sku: attributes.sku_code, + productId: attributes.reference, + variantId: attributes.reference, + quantity: attributes.quantity, price: attributes.unit_amount_float, - image: { - url: `/commercelayer_assets/${attributes.reference}_FLAT.png`, - altText: 'Black Women Long Sleeve Shirt', - width: 1000, - height: 1000, + variant: { + id, + name: attributes.name, + sku: attributes.sku_code, + price: attributes.unit_amount_float, + image: { + url: `/commercelayer_assets/${attributes.reference}_FLAT.png`, + altText: 'Black Women Long Sleeve Shirt', + width: 1000, + height: 1000, + }, }, - }, - } - }) + } + }) } diff --git a/framework/commercelayer/cart/use-cart.tsx b/framework/commercelayer/cart/use-cart.tsx index c7fc6e26c..34cbbee89 100644 --- a/framework/commercelayer/cart/use-cart.tsx +++ b/framework/commercelayer/cart/use-cart.tsx @@ -18,19 +18,24 @@ export const handler: SWRHook = { const clOrder = await Order.withCredentials(credentials) .includes('lineItems') .find(id, { rawResponse: true }) - const attributes = clOrder.data.attributes - const lineItems = clOrder?.included - ? normalizeLineItems(clOrder?.included) - : [] - return { - id, - createdAt: attributes.created_at, - currency: { code: attributes.currency_code }, - taxesIncluded: '', - lineItems, - lineItemsSubtotalPrice: '', - subtotalPrice: attributes.subtotal_amount_float, - totalPrice: attributes.total_amount_float, + const orderStatus = clOrder.status + if (['pending', 'draft'].includes(orderStatus)) { + const attributes = clOrder.data.attributes + const lineItems = clOrder?.included + ? normalizeLineItems(clOrder?.included) + : [] + return { + id, + createdAt: attributes.created_at, + currency: { code: attributes.currency_code }, + taxesIncluded: '', + lineItems, + lineItemsSubtotalPrice: '', + subtotalPrice: attributes.subtotal_amount_float, + totalPrice: attributes.total_amount_float, + } + } else { + localStorage.removeItem('CL_ORDER_ID') } } return {