@liquidcommerceteam/elements-sdk
Version:
LiquidCommerce Elements SDK
87 lines (86 loc) • 2.5 kB
TypeScript
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>;
}