Vue Storefront is now Alokai! Learn More
AddCartLineItem

AddCartLineItem

Implements AddCartLineItem Unified Method.

Source

import "./extended";
import { z } from "zod";

import { defineApi, getNormalizedCart } from "@vsf-enterprise/unified-api-sfcc";

const argsSchema = z.object({
  sku: z.string().min(1, "sku parameter is required"),
});

export const addCartLineItem = defineApi.addCartLineItem(async (context, args) => {
  const validated = argsSchema.parse(args);

  const { api } = await context.getApiClient();
  const { cartId, quantity = 1 } = args;

  const cart = await api.addProductsToBasket({
    basketId: cartId,
    items: [
      {
        productId: validated.sku,
        quantity,
      },
    ],
  });

  return await getNormalizedCart(context, cart);
});