UNPKG

@liquidcommerceteam/elements-sdk

Version:

LiquidCommerce Elements SDK

87 lines (86 loc) 2.5 kB
import { BaseCommand } from '@/core/base-command.service'; export interface AddItemParams { upc: string; fulfillmentId: string; partNumber: string; quantity: number; engravingLines?: string[]; } export declare class CartCommands extends BaseCommand { private readonly uiCommands; private readonly checkoutCommands; private readonly pubSubService; private readonly googleTagManagerService; constructor(); /** * Get location from address store */ private getLocationFromAddress; /** * Build item update with conditional engraving */ private buildItemUpdate; /** * Sync promo code state from API response */ private syncPromoCodeFromApiResponse; /** * Sync only items from API response - no retailers/fulfillments */ private syncItemsFromApiResponse; /** * Sync cart totals and promo code from API response */ private syncCartMetaFromApiResponse; /** * Update specific fulfillment based on API response */ private updateFulfillment; /** * Update specific retailer based on API response */ private updateRetailer; /** * Add new fulfillment and retailer when adding items to new fulfillment */ private addNewFulfillmentAndRetailer; /** * Clean up fulfillments and retailers after item removal */ private cleanupAfterItemRemoval; /** * Load cart data - ONLY for initial cart load */ loadCart(): Promise<void>; /** * Update item quantity - sync items + targeted fulfillment/retailer updates + promo code */ updateItemQuantity(itemId: string, delta: number): Promise<void>; /** * Remove item - sync items + targeted cleanup + promo code */ removeItem(itemId: string): Promise<void>; updateItemEngraving(productItemId: string, engravingLines: string[]): Promise<void>; /** * Add item - sync items + targeted fulfillment/retailer handling + promo code */ addItem(params: AddItemParams): Promise<void>; /** * Handle checkout navigation */ handleGoToCheckout(): Promise<void>; /** * Apply promo code to cart */ applyPromoCode(promoCode: string): Promise<void>; /** * Remove promo code from cart */ removePromoCode(): Promise<void>; /** * Clear promo code error */ clearPromoCodeError(): Promise<void>; rerenderCart(): void; resetCart(): Promise<void>; }