Gatilhos personalizados da vitrine

Os gatilhos integrados da loja virtual abrangem os eventos relatados em Shopify. Um Gatilho Personalizado da Loja Virtual abrange tudo o mais que ocorre na sua loja virtual: basta publicar um evento a partir do seu tema com uma linha de JavaScript, e ele se torna um gatilho que você pode usar em Shopify Flow.

O exemplo mais claro é a gaveta do carrinho. O evento de visualização do carrinho de Shopify é acionado na página /cart, e a maioria dos temas modernos nunca navega até lá - em vez disso, eles abrem a gaveta por meio de um efeito de deslizamento. Shopify não reporta nada, portanto nenhum aplicativo consegue detectá-lo. Publicar seu próprio evento quando a gaveta é aberta resolve essa lacuna.

Outras finalidades para as quais as lojas o utilizam:

  • Adicionar à lista de desejos ou clicar em “Me avisar”, ações que o site Shopify não registra.
  • 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 (consulte Acionadores de vitrine).
  • Qualquer informação que seu tema ou um aplicativo de terceiros já tenha e que Shopify não tenha.

Como funciona

  1. Crie o gatilho no aplicativo e atribua a ele um nome de evento, por exemplo, cart_drawer_opened. Assim como todo gatilho de loja virtual, ele precisa da permissão “Acesso ao Comportamento da Loja Virtual”, concedida uma única vez na página “Permissões”.
  2. Copie o trecho de uma linha que o aplicativo mostra e cole-o no seu tema, no local onde isso ocorre. Se você não tiver certeza do que colar ou onde, o site Gerar código de gatilho com IA gera o trecho para o seu tema a partir de uma descrição em linguagem simples.
  3. Escreva uma transformação se quiser filtrar ou reformular o que será enviado, ou deixe em branco para encaminhar tudo.
  4. Ative-o e, em seguida, adicione o “Gatilho personalizado da loja virtual” no Fluxo e crie uma ramificação com base no nome do evento.

O trecho de código representa toda a integração do lado do tema:

O editor do gatilho “Custom Storefront Trigger”, com o nome, o nome do evento e o trecho de código a ser adicionado ao tema
Um gatilho personalizado da loja virtual: o nome do evento é o que seu tema publica, e o editor fornece o trecho de código para você 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"
});

Escolha do nome do evento

O nome do evento é o que determina a ramificação do seu fluxo de trabalho no Flow; portanto, escolha um nome fácil de entender e não o altere depois que os fluxos de trabalho já o estiverem utilizando.

Os nomes podem conter letras, números, sublinhados e hífens, devem começar com uma letra ou um número e podem ter até 64 caracteres. O aplicativo transforma o que você digita em um “slug”, de modo que Cart drawer opened se torna cart_drawer_opened.

O nome está associado a um namespace interno, de modo que nunca pode entrar em conflito com um evento do tipo Shopify ou com um gatilho personalizado de webhook com o mesmo nome.

Filtragem e remodelação

Os dados que você passa como segundo argumento chegam ao Flow como o parâmetro output do gatilho. Se isso for tudo o que você precisa, está tudo pronto.

Quando você quiser disparar apenas em alguns casos, ou enviar campos diferentes daqueles publicados pelo tema, crie uma transformação - o mesmo módulo JavaScript usado por Gatilhos personalizados. Retorne um objeto para disparar, retorne null para ignorar:

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,
  };
}

Como usá-lo em Shopify Flow

Todos os gatilhos personalizados da loja virtual são exibidos no Flow com o mesmo nome: Gatilho personalizado da loja virtual. Adicione-o a um fluxo de trabalho e, em seguida, defina uma condição para que o eventName seja igual ao nome que você escolheu.

É isso que permite que um Flow acione todos os eventos da sua loja virtual. O acionador também contém o nome que você atribuiu a ele no aplicativo e a saída da sua transformação.

Ele é deliberadamente distinto do “Custom Trigger”, que dá suporte ao Gatilhos personalizados baseado em webhooks. Os dois diferem de uma forma que vale a pena conhecer: um “Custom Trigger” de webhook é executado em nossos servidores e é confiável, enquanto um evento de loja virtual depende de o navegador do comprador se conectar ao nosso sistema e do consentimento dele para o uso de análises.

O que não enviar

O segundo argumento da função publish está inteiramente sob seu controle, o que significa que é sua responsabilidade evitar que dados pessoais sejam incluídos nele.

Envie identificadores e informações: IDs de produtos e variantes, quantidades, preços e o nome do que aconteceu. O ID do cliente conectado é adicionado automaticamente quando houver um, portanto, você nunca precisa fornecê-lo manualmente.

Não envie nomes, endereços de e-mail, números de telefone ou endereços postais. Seu fluxo de trabalho pode consultar qualquer uma dessas informações a partir do ID do cliente no Flow; portanto, não há vantagem alguma em incluí-las em um evento da loja virtual, e isso transforma um evento de análise em um evento de dados pessoais.

Isso consome a franquia do meu plano?

Sim. Todos os eventos que chegam até nós são contabilizados, inclusive aqueles que sua transformação ignora ao retornar null - a mesma regra de <a href="/pt-br/gatilhos-personalizados">Gatilhos personalizados</a>. Os eventos descartados no navegador por falta de consentimento nunca chegam até nós e nunca são contabilizados.

Como você decide onde o snippet será exibido, você controla o volume diretamente. Um evento de abertura de gaveta ocorre com muito menos frequência do que uma visualização de produto.

Posso publicar o mesmo evento em mais de um lugar?

Sim. O que importa é o nome, e não de onde ele foi publicado. Incluir uma informação na carga útil indicando a origem é uma boa ideia se você quiser que o fluxo de trabalho consiga diferenciá-los.

A abertura de duas gavetas conta como um único evento?

Não. Os eventos deliberados são mantidos separados, pois a publicação duas vezes geralmente significa que o evento realmente ocorreu duas vezes. Isso difere dos gatilhos integrados, que agrupam as repetições da mesma visualização de página.

Posso alterar o nome do evento mais tarde?

Você pode, mas o seu fluxo de trabalho do Flow usa esse nome como filtro; portanto, alterar o nome interrompe a execução desse fluxo de trabalho até que você atualize a condição - e você precisará atualizar o trecho de código no seu tema para que ele corresponda. Considere o nome como fixo assim que um fluxo de trabalho começar a usá-lo.

Como faço para testá-lo antes de colocá-lo no ar na minha loja virtual?

A página do gatilho no aplicativo possui um teste que executa sua transformação e aciona seu fluxo de trabalho no Flow, para que você possa acompanhar todo o processo de ponta a ponta sem precisar alterar seu tema. Os testes não consomem sua cota.

Assim que o trecho estiver no seu tema, a página “Histórico de eventos” exibe os eventos reais à medida que eles ocorrem.

Isso 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 ele; portanto, use os gatilhos integrados “Erro na finalização da compra exibido” e “Código de desconto rejeitado na finalização da compra” nesse caso.

Próximos passos