Clientes conectados em sua loja virtual

Clientes conectados em sua loja virtual

Copiar página

Chame um webhook pelo domínio da sua loja, aceite apenas clientes conectados e receba no Shopify Flow o ID do cliente assinado pelo Shopify.

Chame um webhook a partir da sua própria loja virtual e saiba qual cliente o enviou. Um formulário de pedido no atacado, um botão de reabastecimento na página de uma conta B2B ou um formulário de solicitação para clientes conectados podem iniciar um fluxo de trabalho do Shopify Flow, e o fluxo de trabalho recebe o ID do cliente que está conectado. O Shopify assina esse ID, para que ninguém possa se passar por outro cliente.

Isso se baseia na URL do proxy do aplicativo; consulte CORS, a URL do proxy do aplicativo e as chamadas do navegador.

Configure-o

  1. Abra o webhook e acesse as Configurações avançadas.
  2. Em “Configurações de URL”, ative a opção “Usar URL de proxy do aplicativo”. A URL do webhook agora está hospedada no domínio da sua loja, por exemplo, https://your-store.com/apps/webhooks/abc123.
  3. Em “Quem pode chamar este webhook?”, escolha uma das três opções:
Opção URL do proxy do aplicativo URL direta do aplicativo
Qualquer pessoa que tenha o URL Funciona para todos Obras
Somente por meio do domínio da sua loja Funciona para todos, inclusive para os convidados Recusado com código 403
Apenas clientes que estiverem conectados à sua loja Funciona para clientes conectados; os visitantes recebem o erro 401 Recusado com código 403
  1. Salvar. A configuração será aplicada à próxima solicitação.
Configurações avançadas, Configurações de URL: a opção “Usar URL de proxy do aplicativo” está ativada e a opção “Quem pode acionar este webhook” está definida como “Apenas clientes conectados à sua loja”
Essa configuração está localizada em Configurações avançadas > Configurações de URL, logo abaixo do botão de ativação/desativação da URL do proxy do aplicativo.

O que o aplicativo verifica

Cada solicitação enviada por meio da URL do proxy do aplicativo contém uma assinatura do Shopify. O aplicativo verifica, nesta ordem:

  • A assinatura. Uma solicitação sem uma assinatura válida do Shopify é rejeitada com o código de erro 401. Ninguém pode falsificá-la, pois o Shopify a gera com o segredo do seu aplicativo.
  • Sua loja. Uma solicitação assinada em nome de outra loja é recusada com o código 403.
  • O cliente conectado. Com a configuração “Somente clientes conectados à sua loja”, uma solicitação sem um cliente conectado é recusada com o código 401 (customer_login_required). O ID do cliente provém da assinatura, nunca do corpo da solicitação.
  • A URL direta. Independentemente da restrição aplicada, a URL direta do aplicativo retorna um código de erro 403 (proxy_required), de modo que ninguém pode contornar essas verificações.

Uma solicitação recusada nunca chega ao Shopify Flow e não é contabilizada no seu plano.

O que o Shopify Flow recebe

O Gatilho Webhook e o Gatilho Webhook de Sincronização possuem um campo customerId: o ID numérico do cliente conectado, por exemplo, 7350001. Esse campo fica vazio para visitantes e para todas as solicitações que não tenham sido feitas por meio da URL do proxy do aplicativo. Seus campos mapeados são recebidos normalmente; consulte Mapeamento de payload e variáveis de fluxo.

Ligue diretamente da sua loja virtual

A solicitação deve ser originada de uma página da sua loja enquanto o cliente estiver conectado, para que seja encaminhada pelo domínio da sua loja. Copie a URL do webhook do aplicativo: o Shopify permite que você altere o caminho do proxy, portanto, o seu pode ser diferente do exemplo. Este trecho de código, inserido em uma seção do tema, envia a localização da empresa para a qual o cliente B2B está realizando a compra:

sections/wholesale-request.liquidhtml
<script>
  fetch('/apps/webhooks/abc123', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      companyLocationId: 'gid://shopify/CompanyLocation/{{ customer.current_location.id }}'
    })
  })
</script>

Mapeie o Campo 1 para companyLocationId, de modo que o fluxo de trabalho receba a localização como fieldOne.

Faça o check-in do cliente no Shopify Flow

O Shopify Flow pode acessar todas as informações sobre o cliente; portanto, essa verificação deve ser incluída no fluxo de trabalho:

  1. Gatilho: Gatilho de Webhook do Workflow Webhooks. Caso tenha vários webhooks, adicione uma condição: o ID do webhook é igual ao ID exibido no aplicativo.
  2. Obtenha os dados do cliente com a consulta id:{{customerId}}. O Shopify Flow carrega as informações do cliente conectado, incluindo tags e funções na empresa.
  3. Condição: o cliente possui a tag wholesale e um dos perfis de contato de sua empresa possui uma atribuição de função cujo ID de localização da empresa é igual a fieldOne e cuja função é Ordering only ou Location admin.
  4. Nesse caso: execute suas ações, por exemplo, crie um pedido provisório para esse local. Caso contrário: interrompa o processo ou responda à Loja virtual com um Resposta síncrona, para que a página possa explicar o motivo ao cliente.

É bom saber

  • A URL do proxy do aplicativo requer que a loja virtual esteja acessível. No caso de uma loja protegida por senha, ela só responde após a senha da loja virtual ter sido digitada.
  • Os visitantes recebem a mensagem de erro 401; portanto, exiba um link para login nessa página.
  • O histórico exibe o ID do cliente de cada solicitação, e uma repetição o envia novamente.
  • Quando um cliente solicita que seus dados sejam apagados, os registros do histórico que ele enviou são excluídos.