Gatilhos personalizados da loja
Os gatilhos integrados da loja online abrangem os eventos relatados em Shopify. Um gatilho personalizado da loja online abrange tudo o resto que acontece na sua loja online: basta publicar um evento a partir do seu tema com uma linha de JavaScript e este torna-se um gatilho que pode utilizar em Shopify Flow.
O exemplo mais claro é a gaveta do carrinho. O evento «cart view» do Shopify é acionado na página /cart, e a maioria dos temas modernos nunca navega até lá - em vez disso, abrem a gaveta através de um efeito de deslizamento. O Shopify não reporta nada, pelo que nenhuma aplicação consegue detetá-lo. Publicar o seu próprio evento quando a gaveta se abre colmata essa lacuna.
Outras utilizações que as lojas lhe dão:
- Uma adição à lista de desejos ou um clique em «Notificar-me», nenhuma das quais é registada pelo Shopify.
- A abertura de um guia de tamanhos ou de uma política de devoluções, como indicação sobre um produto.
- Uma alteração na variante do seletor, que não constitui uma nova visualização da página (ver Acionadores da loja virtual).
- Qualquer informação que o teu tema ou uma aplicação de terceiros já conheça e que o Shopify não conheça.
Como funciona
- Crie o gatilho na aplicação e atribua-lhe um nome de evento, por exemplo,
cart_drawer_opened. Tal como todos os gatilhos da loja online, este necessita do acesso ao «Comportamento da Loja Online», que é concedido uma única vez na página «Permissões». - Copia o fragmento de código de uma linha que a aplicação te mostra e cola-o no teu tema, no local onde isso acontece. Se não tiveres a certeza do que colar ou onde, o site Gerar código de trigger com IA cria o fragmento de código para o teu tema a partir de uma descrição em linguagem simples.
- Escreva uma transformação se quiser filtrar ou alterar o formato do que é enviado, ou deixe em branco para reencaminhar tudo.
- Ative-o e, em seguida, adicione o «Custom Storefront Trigger» no Flow e crie um ramo com base no nome do evento.
Este fragmento de código representa toda a integração do lado do tema:

Shopify.analytics.publish("cart_drawer_opened", {
// anything you want the Flow to receive
itemCount: 3,
total: "129.90"
});Escolher o nome do evento
O nome do evento é o que determina a ramificação do teu fluxo de trabalho no Flow; por isso, escolhe algo fácil de ler e não o altere depois de os fluxos de trabalho o terem começado a utilizar.
Os nomes podem conter letras, números, sublinhados e hífens, têm de começar por uma letra ou um número e podem ter até 64 caracteres. A aplicação transforma o que escreveres num «slug», pelo que Cart drawer opened passa a ser cart_drawer_opened.
O nome está associado a um espaço de nomes interno, pelo que nunca poderá entrar em conflito com um evento Shopify ou com um gatilho personalizado de webhook com o mesmo nome.
Filtragem e remodelação
Os dados que passar como segundo argumento chegam ao Flow como o output do gatilho. Se isso for tudo o que precisa, já está.
Quando quiser disparar eventos apenas em determinados casos, ou enviar campos diferentes dos publicados pelo tema, crie uma transformação - o mesmo módulo JavaScript utilizado pelo Gatilhos personalizados. Devolva um objeto para disparar o evento; devolva null para ignorá-lo:
export async function transform(payload, topic, shop, ctx) {
// Anything you published is on `payload`.
if ((payload.itemCount || 0) < 2) return null;
return {
itemCount: payload.itemCount,
total: payload.total,
// Present only when the shopper is signed in.
customerId: payload.customerId,
};
}Utilizá-lo no Shopify Flow
Todos os «Custom Storefront Trigger» aparecem no Flow com o mesmo nome: «Custom Storefront Trigger». Adicione-o a um fluxo de trabalho e, em seguida, adicione uma condição em que «eventName» seja igual ao nome que escolheu.
É isso que permite que um Flow acione todos os eventos da sua loja online. O acionador inclui também o nome que lhe atribuiu na aplicação e o resultado da sua transformação.
É deliberadamente distinto do «Custom Trigger», que está na base do Gatilhos personalizados baseado em webhooks. Os dois diferem de uma forma que vale a pena conhecer: um «Custom Trigger» de webhook é executado nos nossos servidores e é fiável, enquanto um evento da loja virtual depende de o navegador do comprador nos contactar e do seu consentimento para a análise de dados.
O que não enviar
O segundo argumento da função publish está inteiramente sob o seu controlo, o que significa que é da sua responsabilidade garantir que não contenha dados pessoais.
Envie identificadores e dados: IDs do produto e da variante, quantidades, preços e o nome do que aconteceu. O ID do cliente que está a iniciar sessão é adicionado automaticamente, caso exista, pelo que nunca precisa de o indicar manualmente.
Não envie nomes, endereços de e-mail, números de telefone nem endereços postais. O seu fluxo de trabalho pode obter qualquer uma dessas informações a partir do ID do cliente no Flow, pelo que não há qualquer vantagem em incluí-las num evento da loja virtual; além disso, ao fazê-lo, transforma-se um evento de análise num evento que envolve dados pessoais.
Isso consome a minha franquia do plano?▾
Sim. Todos os eventos que nos chegam contam, incluindo aqueles que a sua transformação ignora ao devolver null - a mesma regra que em Gatilhos personalizados. Os eventos que são descartados no navegador por falta de consentimento nunca nos chegam e nunca contam.
Como é o utilizador que decide onde o snippet é colocado, controla diretamente o volume. Um evento de abertura de gaveta ocorre com muito menos frequência do que uma visualização de produto.
Posso publicar o mesmo evento a partir de mais do que um local?▾
Sim. O que importa é o nome, não o local de onde é publicado. Incluir informação na carga útil que indique a origem é uma boa ideia, se quiser que o fluxo de trabalho consiga distingui-los.
A abertura de duas gavetas conta como um único evento?▾
Não. Os eventos deliberados são mantidos separados, porque a publicação dupla significa, normalmente, que o evento ocorreu efetivamente duas vezes. Isto difere dos gatilhos integrados, que agrupam as repetições da mesma visualização de página.
Posso alterar o nome do evento mais tarde?▾
Podes fazê-lo, mas o teu fluxo de trabalho do Flow filtra-se com base nesse nome; por isso, alterar o nome interrompe a execução desse fluxo de trabalho até atualizares a condição - e tens de atualizar o fragmento de código no teu tema para que corresponda. Considera o nome como fixo assim que um fluxo de trabalho o utilizar.
Como posso testá-lo antes de o colocar online na minha loja?▾
A página do gatilho na aplicação tem um teste que executa a sua transformação e aciona o seu fluxo de trabalho no Flow, para que possa observar o seu funcionamento do início ao fim sem alterar o seu tema. Os testes não consomem a sua quota.
Assim que o snippet estiver no seu tema, a página «Histórico de eventos» mostra os eventos em tempo real, à medida que vão ocorrendo.
Funciona nas páginas de finalização de compra?▾
A publicação a partir do código do seu próprio tema abrange a página inicial da sua loja. O processo de finalização da compra é gerado pelo Shopify e não é possível adicionar código do tema a essa página; por isso, utilize, em vez disso, os gatilhos integrados «Erro na finalização da compra» e «Código de desconto rejeitado na finalização da compra».
Próximos passos
- Acionadores da loja virtual - os gatilhos integrados da loja online e como funciona o pixel.
- Gerar código de trigger com IA - Deixa que a IA escreva o fragmento de código do tema ou a transformação por ti.
- Gatilhos personalizados - a mesma ideia para eventos de webhook do tipo Shopify, com fiabilidade do lado do servidor.
- Planos e utilização - o que se considera um evento.

