window.aftersell.cart.actions.
Actions draaien nadat de winkelwagen klaar is, binnen
ready() of een event-handler.Voordat de winkelwagen laadt, zijn actions stubs. Elke stub logt een consolewaarschuwing met de naam van de action, bijvoorbeeld
cart.actions.addItem() called before the cart loaded, en doet niets. De asynchrone actions resolven nog steeds een Promise, dus een .then()-keten draait normaal in plaats van een fout te gooien; getCart() geeft null terug en formatMoney() een lege string.Er breekt niets als je er een te vroeg aanroept, maar er gebeurt ook niets. Houd de console in de gaten voor die waarschuwing wanneer een action niets lijkt te doen.Alle actions
Drawer
open en close
Lezen
getCart()
null voordat het geladen is. Het resultaat is een kopie, dus muteren ervan verandert de echte winkelwagen niet.
getCart() is daar overbodig.
formatMoney(cents)
configure({ money_format }).
De winkelwagen wijzigen
De item-actions identificeren een regel via de Shopify-
key, niet via variant-ID, omdat een winkelwagen dezelfde variant op meerdere regels met verschillende properties kan bevatten. Lees hem uit getCart().items[n].key.addItem(variantId, quantity?)
quantity is standaard 1. Resolvet zodra de winkelwagen tot rust is gekomen.
removeItem(key)
updateItemQuantity(key, quantity)
0 doorgeven verwijdert de regel.
cart_updated te draaien, omdat de > 1-check bij de tweede doorloop onwaar is. Zie de twee regels.
replaceLineVariant(key, variantId)
key en belandt aan het einde van de winkelwagen. Lees daarna getCart() opnieuw in plaats van de key te hergebruiken die je hebt doorgegeven.
Verversen
refresh()
visualRefresh()
Opmerkingen en randgevallen
- Asynchrone actions resolven wanneer de wijziging tot rust is gekomen. Door er een te awaiten kun je werk plannen nadat de winkelwagen daadwerkelijk is bijgewerkt.
getCart()geeft een kopie terug. Muteren ervan doet niets met de echte winkelwagen.- Er is geen action voor kortingscodes. Toegepaste codes zijn leesbaar op de winkelwagen (
discountCodes,totalDiscount) en per regel (discountAllocations); shoppers passen ze toe via het Discount code-blok. - Er is geen action voor cart attributes of notities. Attributes zijn leesbaar op het cart-object; shoppers schrijven notities via het Notes-blok.
- Om een regel te verbergen in plaats van te verwijderen, gebruik je
registerLineTransform. Verwijderen verandert het totaal van de shopper; verbergen niet.
Waar nu naartoe
- Cart-object: wat
getCart()teruggeeft. - Events: wanneer je deze actions moet draaien.
- Hooks: verander hoe een regel wordt gerenderd in plaats van de winkelwagen te wijzigen.
- Use cases: complete oplossingen voor veelvoorkomende verzoeken.