From 412cfb06e2b1b9717362db770775913aa3dfef1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Meyer?= Date: Fri, 27 Oct 2023 16:57:25 +0200 Subject: [PATCH] fix: addToCart --- components/cart/actions.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/components/cart/actions.ts b/components/cart/actions.ts index 770d6a628..21d4e9ddf 100644 --- a/components/cart/actions.ts +++ b/components/cart/actions.ts @@ -28,8 +28,7 @@ export async function addItem(prevState: any, selectedVariantId: string | undefi if (!cart) { return 'Could not get cart'; } - updateCartCookie(cart); - const cartId = cookies().get('sw-context-token')?.value; + const cartId = updateCartCookie(cart); if (!selectedVariantId) { return 'Missing product variant ID'; @@ -83,12 +82,20 @@ export async function getCart() { return await fetchCart(); } -function updateCartCookie(cart: ExtendedCart) { +function updateCartCookie(cart: ExtendedCart): string | undefined { const cartId = cookies().get('sw-context-token')?.value; + if (!cartId && cart && cart.token) { + cookies().set('sw-context-token', cart.token); + return cart.token; + } + if (cartId && cart && cart.token && cart.token !== cartId) { cookies().set('sw-context-token', cart.token); + return cart.token; } + + return cartId; } function alertErrorMessages(response: ExtendedCart): string {