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

  1. 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».
  2. 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.
  3. Escreva uma transformação se quiser filtrar ou alterar o formato do que é enviado, ou deixe em branco para reencaminhar tudo.
  4. 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:

O editor do «Custom Storefront Trigger» com um nome, o nome do evento e o fragmento de código a adicionar ao tema
Um gatilho personalizado da loja: o nome do evento é o que o seu tema publica, e o editor fornece-lhe o trecho de código para copiar.
Publish the event from your themejavascript
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:

Only fire for drawers worth acting onjavascript
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