CartEvent
Discriminated union of every lifecycle event the cart kernel can emit.
Consumers subscribe via and switch on event.type
to handle the specific variant they care about.
Definition
type CartEvent = { cart: Cart; type: 'cart.created' } | { cart: Cart; mutation: CartMutation; source: 'self' | 'broadcast'; type: 'cart.updated' } | { error: Error; mutation: CartMutation; source: 'self'; type: 'cart.mutation.failed' } | { cart: Cart; line: CartLine; type: 'cart.line.added' } | { cart: Cart; lineId: string; type: 'cart.line.removed' } | { type: 'cart.cleared' };{ cart: Cart; type: 'cart.created' } | { cart: Cart; mutation: CartMutation; source: 'self' | 'broadcast'; type: 'cart.updated' } | { error: Error; mutation: CartMutation; source: 'self'; type: 'cart.mutation.failed' } | { cart: Cart; line: CartLine; type: 'cart.line.added' } | { cart: Cart; lineId: string; type: 'cart.line.removed' } | { type: 'cart.cleared' }
Example
bus.on('cart.updated', (event: CartEvent & { type: 'cart.updated' }) => {
analytics.track('cart_updated', { cartId: event.cart.id });
});Related
RunCartAdapterContractOpts runCartAdapterContract CartCapabilityUnsupportedError CartError CartNotFoundError CartProviderError CartUserError CartAdapter
CartEventType
Union of the string literal type discriminants for every variant. Use as a constraint when narrowing to a specific event type or when parameterizing .
CartExt
Extension slot that lets adapter authors attach arbitrary providerspecific data to and without widening the core types. Pass a concrete shape as the TExt generi