CartIntegration
Overview
This represents the set of operations available when initializing an integration with the Cart function exported by this package. It provides a set of functions to interact with the cart and its related entities in a reasonably vendor-agnostic way. The input parameters and results will vary based on the CartModes.
The full set of operations available will depend on the commerce vendor. For ex. a vendor may not support the concept of addPaymentToCart, in which case the function won't be implemented.
Shipping & payment related functions won't be called at all if using a hosted checkout outside the High Velocity front-end app.
VendorCartIntegration
Cart Integration function as exported by Vendor packages. Extends CartIntegration, adding attributes specifying the CartModes for the integration.
For ex. with Shopify as the cart provider, which returns expanded product line items and manages line item pricing internally:
export function Cart(...) {
return {
lineItemPricing: 'internal',
lineItemType: 'expanded',
async addToCart(...) { ... },
...
}
}
Functions
addPaymentToCart
Add a payment to the cart with the given parameters.
Parameters
params
type: AddPaymentToCartParams
The parameters required to add the payment to the cart.
Return Value
type: Promise<Result<Cart<TCartModes>>>
A promise that resolves to the result of the cart with the added payment.
addPromoCode
Add a promotional code to the cart with the given parameters.
Parameters
params
type: AddPromoCodeParams
The parameters required to add the promotional code to the cart.
Return Value
type: Promise<Result<Cart<TCartModes>>>
A promise that resolves to the result of the cart with the added promotional code.
addToCart
Add an item to the cart with the given parameters.
Parameters
params
type: AddToCartParams<TCartModes['lineItemPricing']>
The parameters required to add the item to the cart.
Return Value
type: Promise<Result<Cart<TCartModes>>>
A promise that resolves to the result of the cart with the added item.
createCart
Create a new cart with the given draft and payload.
Parameters
draft
type: Partial<CartDraft>
A partial draft of the cart to be created.
payload
type: AddToCartParams<TCartModes['lineItemPricing']>['payload']
The payload containing additional parameters for creating the cart.
Return Value
type: Promise<Result<Cart<TCartModes>>>
A promise that resolves to the result of the created cart.
createPayment
Create a payment with the given parameters.
Parameters
params
type: CreatePaymentParams
The parameters required to create the payment.
Return Value
type: Promise<Result<Payment>>
A promise that resolves to the result of the created payment.
getCart
Get a cart by its ID.
Parameters
cartID
type: string
The unique identifier for the cart.
Return Value
type: Promise<Result<Cart<TCartModes>>
A promise that resolves to the result of the cart.
getCustomerCart
Get a cart by the customer ID.
Parameters
customerID
type: string
The unique identifier for the customer.
Return Value
type: Promise<Result<Cart<TCartModes> | null>>
A promise that resolves to the result of the cart or null if no cart is found.
getOrder
Retrieve an order by its ID.
Parameters
orderID
type: string
The unique identifier for the order.
Return Value
type: Promise<Result<Order<TCartModes>>>
A promise that resolves to the result of the retrieved order.
getPayment
Get a payment by its ID.
Parameters
id
type: string
The unique identifier for the payment.
Return Value
type: Promise<Result<Payment>>
A promise that resolves to the result of the payment.
getPaymentMethods
Retrieve the available payment methods for the cart.
Parameters
None
Return Value
type: Promise<Result<PaymentMethod[]>>
A promise that resolves to the result of the available payment methods.
getShippingMethods
Retrieve the available shipping methods for the cart with the given parameters.
Parameters
params
type: GetShippingMethodParams
The parameters required to get the shipping methods.
Return Value
type: Promise<Result<CartShippingMethod[]>>
A promise that resolves to the result of the available shipping methods.
placeOrder
Place an order with the given parameters.
Parameters
params
type: PlaceOrderParams
The parameters required to place the order.
Return Value
type: Promise<Result<Order<TCartModes>>>
A promise that resolves to the result of the placed order.
removeFromCart
Remove an item from the cart with the given parameters.
Parameters
params
type: RemoveFromCartParams
The parameters required to remove the item from the cart.
Return Value
type: Promise<Result<Cart<TCartModes>>>
A promise that resolves to the result of the cart with the item removed.
removePromoCode
Remove a promotional code from the cart with the given parameters.
Parameters
params
type: RemovePromoCodeParams
The parameters required to remove the promotional code from the cart.
Return Value
type: Promise<Result<Cart<TCartModes>>>
A promise that resolves to the result of the cart with the promotional code removed.
updateCart
Update the cart with the given parameters.
Parameters
params
type: UpdateCartParams
The parameters required to update the cart.
Return Value
type: Promise<Result<Cart<TCartModes>>>
A promise that resolves to the result of the updated cart.
updateLineItem
Update a line item in the cart with the given parameters.
Parameters
params
type: UpdateLineItemParams<TCartModes['lineItemPricing']>
The parameters required to update the line item.
Return Value
type: Promise<Result<Cart<TCartModes>>
A promise that resolves to the result of the updated cart.
updateOrder
Update an order with the given parameters.
Parameters
params
type: UpdateOrderParams
The parameters required to update the order.
Return Value
type: Promise<Result<Order<TCartModes>>>
A promise that resolves to the result of the updated order.