SetCartAddress
Implements SetCartAddress Unified Method.
Source
import "./extended";
import { getNormalizers } from "@alokai/connect/integration-kit";
import { z } from "zod";
import { defineApi, getNormalizedCart, getShipmentId } from "@vsf-enterprise/unified-api-sfcc";
const addressSchema = z.object({
address1: z.string().min(1),
city: z.string().min(1),
country: z.string().min(1),
firstName: z.string().min(1),
lastName: z.string().min(1),
phoneNumber: z.string().min(1),
postalCode: z.string().min(1),
state: z.string().min(1),
});
const argsSchema = z.object({
shippingAddress: addressSchema,
});
export const setCartAddress = defineApi.setCartAddress(async (context, args) => {
argsSchema.parse(args);
const { api } = await context.getApiClient();
const { shippingAddress } = args;
const { unnormalizeAddress } = getNormalizers(context);
const shipmentId = getShipmentId(context);
const cart = await api.updateShipment({
shipmentId,
shippingAddress: unnormalizeAddress(shippingAddress),
});
return await getNormalizedCart(context, cart);
});