window.aftersell.cart.events.
Subskrybowanie to wywołanie konfiguracyjne, więc jest bezpieczne na górze Twojego skryptu, bez potrzeby czekania na ready().
Dostępne zdarzenia
Subskrybowanie
events.on(event, handler) rejestruje handler i zwraca funkcję, która go wyrejestrowuje:
events.once(event, handler): uruchamia się raz, a potem sam się wyrejestrowuje.events.off(event, handler): usuwa konkretny handler.
Dwie zasady
Nie zmieniaj koszyka z cart_updated bez zabezpieczenia
cart_updated ponownie uruchamia cart_updated. Jeśli ten handler znów zmienia koszyk, masz nieskończoną pętlę. Klient patrzy, jak jego koszyk się miota, podczas gdy strona bombarduje Shopify.
Traktuj payload jako tylko do odczytu
registerLineTransform.
cart_loaded
cart_loaded jest odtwarzane dla spóźnionych subskrybentów. Jeśli zasubskrybujesz po tym, jak koszyk już się załadował, Twój handler jest natychmiast wywoływany z bieżącym koszykiem. Kolejność subskrypcji nigdy nie ma znaczenia, więc nie musisz się martwić, czy Twój skrypt wyprzedził koszyk.
cart_updated
item_added
{ item }, gdzie item to pozycja koszyka.
cart_loaded. Dodanie kilku różnych produktów naraz uruchamia zdarzenie raz na pozycję.
item_removed
{ item } — pozycja w stanie tuż przed zniknięciem, więc nadal możesz odczytać jej key, variantId i title.
item_added: obniżenie ilości bez osiągnięcia zera nie jest usunięciem.
cart_opened i cart_closed
checkout
Nasłuchiwanie spoza SDK
CustomEvent na window, więc możesz nasłuchiwać bez dotykania window.aftersell.cart. To przydatne z pliku motywu, aplikacji zewnętrznej lub skryptu ładującego się niezależnie od koszyka.
Zwróć uwagę na nazewnictwo: bus używa
snake_case, zdarzenia DOM używają kebab-case za prefiksem aftersell:cart:.
event.detail i odpowiada obiektowi koszyka. Zdarzenia są wysyłane na window, więc listener w dowolnym miejscu strony je otrzymuje. Koszyk renderuje się w shadow root, ale granica shadow nigdy nie znajduje się na ścieżce zdarzenia. Każde wysłanie klonuje payload, więc listener modyfikujący event.detail nie może wpłynąć na nikogo innego, a listener rzucający wyjątek nie może zakłócić SDK.
Standardowe zdarzenia koszyka Shopify
document, ilekroć zmienia koszyk, dzięki czemu kod motywu i inne aplikacje mogą reagować na modyfikacje Aftersell tak samo, jak reagują na te z motywu:
Każde zdarzenie niesie też
promise, który Aftersell rozstrzyga, gdy podstawowy zapis się powiedzie, zgodnie ze standardem Shopify — czekaj na niego (await), nie rozstrzygaj go. Są one wysyłane na document i propagują się (bubble), więc listener na window też je otrzymuje.
Co dalej
- Obiekt koszyka: pełna struktura powyższych payloadów.
- Akcje: jak zmieniać koszyk z handlera.
- Hooki: do zmieniania sposobu renderowania koszyka, zamiast reagowania na niego.
- Przypadki użycia: śledzenie analityczne, darmowe prezenty i inne kompletne przykłady.