window.aftersell.cart.events.
Abonneren is een set-up-aanroep, dus veilig bovenaan je script, zonder dat je op ready() hoeft te wachten.
Beschikbare events
Abonneren
events.on(event, handler) registreert een handler en geeft een functie terug die het abonnement opzegt:
events.once(event, handler): gaat één keer af en schrijft zichzelf daarna uit.events.off(event, handler): verwijdert een specifieke handler.
De twee regels
Wijzig de winkelwagen niet vanuit cart_updated zonder guard
cart_updated-handler laat cart_updated opnieuw afgaan. Als die handler de winkelwagen opnieuw wijzigt, heb je een oneindige loop. De shopper ziet zijn winkelwagen wild heen en weer gaan terwijl de pagina Shopify bestookt.
Behandel de payload als alleen-lezen
registerLineTransform.
cart_loaded
cart_loaded wordt herafgespeeld voor late abonnees. Als je je abonneert nadat de winkelwagen al is geladen, wordt je handler direct aangeroepen met de huidige winkelwagen. De volgorde van abonneren maakt nooit uit, dus je hoeft je geen zorgen te maken of je script sneller was dan de winkelwagen.
cart_updated
item_added
{ item }, waarbij item de winkelwagenregel is.
cart_loaded. Meerdere verschillende producten tegelijk toevoegen laat het event één keer per regel afgaan.
item_removed
{ item }, de regel zoals hij was net voordat hij verdween, dus je kunt nog steeds zijn key, variantId en title lezen.
item_added: een aantal verlagen zonder nul te raken is geen verwijdering.
cart_opened en cart_closed
checkout
Luisteren van buiten de SDK
CustomEvent op window, dus je kunt luisteren zonder window.aftersell.cart aan te raken. Dat is handig vanuit een themabestand, een externe app of een script dat onafhankelijk van de winkelwagen laadt.
Let op de naamgeving: de bus gebruikt
snake_case, de DOM-events gebruiken kebab-case achter een aftersell:cart:-prefix.
event.detail en komt overeen met het cart-object. Events worden gedispatcht op window, dus een listener waar dan ook op de pagina ontvangt ze. De winkelwagen rendert in een shadow root, maar de shadow-grens zit nooit in het pad van het event. Elke dispatch kloont de payload, dus een listener die event.detail muteert kan niemand anders beïnvloeden, en een listener die een fout gooit kan de SDK niet verstoren.
Shopify standaard cart-events
document telkens wanneer hij de winkelwagen wijzigt, zodat themacode en andere apps op Aftersell’s mutaties kunnen reageren op dezelfde manier als op die van het thema:
Elk event draagt ook een
promise die Aftersell settelt wanneer de onderliggende write landt, conform Shopify’s standaard — await hem, resolve hem niet. Deze worden gedispatcht op document en bubbelen, dus een window-listener ontvangt ze ook.
Waar nu naartoe
- Cart-object: de volledige vorm van de payloads hierboven.
- Actions: hoe je de winkelwagen wijzigt vanuit een handler.
- Hooks: om te wijzigen hoe de winkelwagen rendert, in plaats van erop te reageren.
- Use cases: analytics-tracking, gratis geschenken en andere complete voorbeelden.