window.aftersell.cart.events.
Assinar é uma chamada de configuração, então é seguro no topo do seu script, sem precisar esperar por ready().
Eventos disponíveis
Assinando
events.on(event, handler) registra um handler e retorna uma função que cancela a assinatura:
events.once(event, handler): dispara uma vez e cancela a si mesmo.events.off(event, handler): remove um handler específico.
As duas regras
Não altere o carrinho a partir de cart_updated sem uma proteção
cart_updated dispara cart_updated de novo. Se esse handler alterar o carrinho novamente, você tem um loop infinito. O comprador vê o carrinho oscilando enquanto a página martela o Shopify.
Trate o payload como somente leitura
registerLineTransform.
cart_loaded
cart_loaded é reproduzido para assinantes atrasados. Se você assinar depois que o carrinho já carregou, seu handler é chamado imediatamente com o carrinho atual. A ordem de assinatura nunca importa, então você não precisa se preocupar se o seu script chegou antes do carrinho.
cart_updated
item_added
{ item }, onde item é a linha do carrinho.
cart_loaded. Adicionar vários produtos distintos de uma vez dispara o evento uma vez por linha.
item_removed
{ item }, a linha como estava logo antes de sumir, então você ainda pode ler seu key, variantId e title.
item_added: reduzir uma quantidade sem chegar a zero não é uma remoção.
cart_opened e cart_closed
checkout
Ouvindo de fora do SDK
CustomEvent do DOM em window, então você pode escutar sem tocar em window.aftersell.cart. Isso é útil em um arquivo de tema, um app de terceiros ou um script que carrega independentemente do carrinho.
Atenção à nomenclatura: o bus usa
snake_case, os eventos do DOM usam kebab-case atrás de um prefixo aftersell:cart:.
event.detail e corresponde ao objeto de carrinho. Os eventos são despachados em window, então um listener em qualquer lugar da página os recebe. O carrinho é renderizado em um shadow root, mas a fronteira do shadow nunca está no caminho do evento. Cada despacho clona o payload, então um listener que muta event.detail não afeta ninguém mais, e um listener que lança um erro não perturba o SDK.
Eventos padrão de carrinho do Shopify
document sempre que altera o carrinho, para que o código do tema e outros apps possam reagir às mutações do Aftersell da mesma forma que reagem às do tema:
Cada evento também carrega uma
promise que o Aftersell resolve quando a escrita subjacente é concluída, seguindo o padrão do Shopify — aguarde-a, não a resolva você. Eles são despachados em document e propagam (bubble), então um listener em window também os recebe.
Para onde ir agora
- Objeto de carrinho: o formato completo dos payloads acima.
- Ações: como alterar o carrinho a partir de um handler.
- Hooks: para mudar como o carrinho renderiza, em vez de reagir a ele.
- Casos de uso: rastreamento de analytics, brindes e outros exemplos completos.