window.aftersell.cart.actions.
Actions kører, efter kurven er klar, inde i
ready() eller en event-handler.Før kurven indlæses, er actions stubbe. Hver enkelt logger en konsoladvarsel, der nævner actionen, for eksempel
cart.actions.addItem() called before the cart loaded, og gør ingenting. De asynkrone actions resolver stadig et Promise, så en .then()-kæde kører normalt i stedet for at kaste en fejl; getCart() returnerer null, og formatMoney() returnerer en tom streng.Intet går i stykker, hvis du kalder en for tidligt, men der sker heller ikke noget. Hold øje med konsollen for den advarsel, når en action ser ud til ikke at gøre noget.Alle actions
Drawer
open og close
Læsning
getCart()
null før det er indlæst. Resultatet er en kopi, så at mutere det ændrer ikke den rigtige kurv.
getCart() er overflødig der.
formatMoney(cents)
configure({ money_format }).
Ændring af kurven
Vare-actions identificerer en linje via dens Shopify-
key, ikke via variant-ID, fordi en kurv kan indeholde den samme variant på flere linjer med forskellige properties. Læs den fra getCart().items[n].key.addItem(variantId, quantity?)
quantity er som standard 1. Resolver, når kurven har stabiliseret sig.
removeItem(key)
updateItemQuantity(key, quantity)
0, fjernes linjen.
cart_updated, fordi > 1-tjekket er falsk ved anden gennemkørsel. Se de to regler.
replaceLineVariant(key, variantId)
key og lander i slutningen af kurven. Genlæs getCart() bagefter i stedet for at genbruge den key, du sendte ind.
Genopfriskning
refresh()
visualRefresh()
Noter og kanttilfælde
- Asynkrone actions resolver, når ændringen har stabiliseret sig. At awaite en lader dig sekvensere arbejde, efter kurven faktisk er opdateret.
getCart()returnerer en kopi. At mutere den gør intet ved den rigtige kurv.- Der er ingen action til rabatkoder. Anvendte koder kan læses på kurven (
discountCodes,totalDiscount) og pr. linje (discountAllocations); kunder anvender dem via Discount code-blokken. - Der er ingen action til kurvattributter eller noter. Attributter kan læses på cart-objektet; kunder skriver noter via Notes-blokken.
- For at skjule en linje i stedet for at fjerne den skal du bruge
registerLineTransform. Fjernelse ændrer kundens total; skjulning gør ikke.
Hvor skal du hen nu
- Cart-objekt: hvad
getCart()giver tilbage. - Events: hvornår du skal køre disse actions.
- Hooks: ændr, hvordan en linje renderes, i stedet for at ændre kurven.
- Use cases: komplette løsninger på almindelige ønsker.