Gatilhos personalizados da loja virtual

Gatilhos personalizados da loja virtual

Copiar página

Crie gatilhos personalizados do Shopify Flow para eventos como abertura da gaveta do carrinho e lista de desejos com uma linha de JavaScript.

Os gatilhos integrados da loja virtual abrangem os eventos relatados pelo Shopify. Um gatilho personalizado da loja virtual abrange tudo o mais que ocorre em 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 utilizar no 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 deslizante. Shopify não reporta nada, portanto, nenhum aplicativo consegue detectá-lo. Publicar seu próprio evento quando a gaveta se abre resolve essa lacuna.

Outras finalidades para as quais as lojas o utilizam:

  • Uma adição à lista de desejos ou um clique em “notificar-me”, nenhuma das quais é relatada pelo site 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 (consulte Acionadores de vitrine).
  • Qualquer informação que seu tema ou um aplicativo de terceiros já conheça e que o Shopify não conheça.

Como funciona

  1. Crie o gatilho no aplicativo e atribua-lhe um nome de evento, por exemplo, cart_drawer_opened. Assim como qualquer gatilho da loja virtual, ele requer acesso ao Comportamento da Loja Virtual, concedido uma única vez na página “Permissões”.
  2. Copie o trecho de uma linha que o aplicativo exibe e cole-o no seu tema, no local onde isso ocorre. Caso não tenha 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 caso deseje filtrar ou reformular o que será enviado, ou deixe em branco para encaminhar tudo.
  4. Ative-o e, em seguida, adicione o “Gatilho de loja virtual personalizada” no Shopify Flow e crie uma ramificação com base no nome do evento.

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

O editor do gatilho “Custom Storefront Trigger”, com um 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 o 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"
});

Nome do evento

O nome do evento é o que determina a ramificação do seu fluxo de trabalho no Shopify Flow; portanto, escolha algo legível e não o altere mais depois que os fluxos de trabalho começarem a utilizá-lo.

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 poderá 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 o senhor passa como segundo argumento chegam ao Shopify Flow como o parâmetro output do gatilho. Se isso for tudo o que o senhor precisa, está tudo pronto.

Quando desejar acionar apenas em alguns casos, ou enviar campos diferentes daqueles publicados pelo tema, crie uma transformação - o mesmo módulo JavaScript utilizado pelo Gatilhos personalizados. Retorne um objeto para acionar, 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 utilizá-lo no site Shopify Flow

Cada gatilho “Custom Storefront Trigger” é exibido no Shopify Flow com o mesmo nome: “Custom Storefront Trigger”. 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 gatilho do Shopify Flow acione todos os eventos da sua loja virtual. O gatilho também contém o nome que o senhor atribuiu a ele no aplicativo e a saída da sua transformação.

Ele é deliberadamente distinto do “Gatilho personalizado”, que dá suporte ao Gatilhos personalizados baseado em webhooks. Os dois diferem de uma forma que vale a pena conhecer: um “Gatilho personalizado” 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 deve ser enviado

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

Envie identificadores e dados: IDs de produtos e variantes, quantidades, preços e o nome do que ocorreu. O ID do cliente conectado é adicionado automaticamente quando houver um, portanto, o senhor nunca precisará 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 Shopify 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 é o senhor quem decide onde o trecho será exibido, o senhor 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 em mais de um lugar?

Sim. O que importa é o nome, e não de onde ele foi publicado. Incluir uma informação na payload indicando a origem é uma boa ideia, caso deseje que o fluxo de trabalho consiga diferenciá-los.

A abertura de duas gavetas será considerada um único evento?

Não. Os eventos deliberados são mantidos separados, pois a publicação em duas ocasiões 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 posteriormente?

É possível, mas o seu fluxo de trabalho do Shopify Flow utiliza esse nome como filtro; portanto, alterar o nome interrompe a execução desse fluxo de trabalho até que você atualize as condições - 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 o utilizar.

Como posso 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 do Shopify Flow, para que você possa acompanhar sua execução do início ao fim sem alterar seu tema. O teste não utiliza sua cota.

Assim que o trecho estiver em seu tema, a página “Histórico de eventos” exibirá os eventos reais à medida que forem ocorrendo.

Isso funciona nas páginas de checkout?

A publicação a partir do código do seu próprio tema abrange a página inicial da sua loja virtual. O processo de checkout é gerado pelo Shopify e não é possível adicionar código do tema a ele; portanto, utilize os gatilhos integrados “Erro na finalização do checkout exibido” e “Código de desconto rejeitado na finalização do checkout” nesse caso.

Próximos passos