diff --git a/components/cart/actions.ts b/components/cart/actions.ts index 0451262dd..f1c660af3 100644 --- a/components/cart/actions.ts +++ b/components/cart/actions.ts @@ -5,29 +5,30 @@ import { cookies } from 'next/headers'; export const addItem = async (variantId: string | undefined): Promise => { // let cartId = cookies().get('cartId')?.value; - // let cart; - // - // if (cartId) { - // cart = await getCart(cartId); - // } - // - // if (!cartId || !cart) { - // cart = await createCart(); - // cartId = cart.id; - // // TODO: this is not working under older Next.js versions - // // cookies().set('cartId', cartId); - // } - // - // if (!variantId) { - // return 'Missing product variant ID'; - // } - // - // try { - // await addToCart(cartId, [{ merchandiseId: variantId, quantity: 1 }]); - // } catch (e) { - // return 'Error adding item to cart'; - // } - return undefined; + let cartId = undefined; + let cart; + + if (cartId) { + cart = await getCart(cartId); + } + + if (!cartId || !cart) { + cart = await createCart(); + cartId = cart.id; + // TODO: this is not working under older Next.js versions + // cookies().set('cartId', cartId); + } + + if (!variantId) { + return 'Missing product variant ID'; + } + + try { + await addToCart(cartId, [{ merchandiseId: variantId, quantity: 1 }]); + } catch (e) { + return 'Error adding item to cart'; + } + // return undefined; }; export const removeItem = async (lineId: string): Promise => {