Vue Storefront is now Alokai! Learn More
PlaceOrder

PlaceOrder

Implements PlaceOrder Unified Method.

Source

import "./extended";
import { getNormalizers } from "@alokai/connect/integration-kit";
import { HttpStatusCode } from "@alokai/connect/middleware";

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

export const placeOrder = defineApi.placeOrder(async (context) => {
  const { api } = await context.getApiClient();
  const cart = await api.getBasket();

  if (!cart.basketId) {
    throw context.createHttpError({
      message: "Cart is empty",
      statusCode: HttpStatusCode.BAD_REQUEST,
    });
  }

  const order = await api.createOrder({ basketId: cart.basketId });
  const { normalizeOrder } = getNormalizers(context);

  return normalizeOrder(order);
});