Clientes que iniciaram sessão na sua loja virtual
Restrinja um webhook a clientes com sessão iniciada na sua loja virtual e receba no Shopify Flow o ID do cliente verificado e assinado pelo Shopify.
Ative um webhook a partir da sua própria loja virtual e saiba qual o cliente que o enviou. Um formulário de pedido por grosso, um botão de repetição de pedido numa página de conta B2B ou um formulário de pedido para clientes com sessão iniciada podem iniciar um fluxo de trabalho do Shopify Flow, e o fluxo de trabalho recebe o ID do cliente que está com sessão iniciada. O Shopify assina esse ID, para que ninguém possa fazer-se passar por outro cliente.
Isto baseia-se no URL do proxy da aplicação; consulte CORS, o URL do proxy da aplicação e as chamadas do navegador.
Configure-o
- Abra o webhook e aceda às «Definições avançadas».
- Na secção «Definições de URL», ative a opção «Utilizar URL de proxy da aplicação». A URL do webhook encontra-se agora no domínio da sua loja, por exemplo,
https://your-store.com/apps/webhooks/abc123. - Na secção «Quem pode aceder a este webhook», selecione uma das três opções:
| Opção | URL do proxy da aplicação | URL direta da aplicação |
|---|---|---|
| Qualquer pessoa que tenha o URL | Funciona para todos | Obras |
| Apenas através do domínio da sua loja | Funciona para todos, incluindo os convidados | Recusado com o código 403 |
| Apenas os clientes que tenham iniciado sessão na sua loja | Funciona para clientes que tenham iniciado sessão; os visitantes recebem o erro 401 | Recusado com o código 403 |
- Guardar. A configuração aplica-se ao próximo pedido.

O que a aplicação verifica
Cada pedido enviado através do URL do proxy da aplicação inclui uma assinatura da Shopify. A aplicação verifica, por esta ordem:
- A assinatura. Um pedido sem uma assinatura válida do Shopify é recusado com o código de erro 401. Ninguém pode falsificá-la, porque o Shopify a gera com o segredo da sua aplicação.
- A sua loja. Um pedido assinado em nome de outra loja é recusado com o código 403.
- O cliente com sessão iniciada. Com a opção «Apenas clientes com sessão iniciada na sua loja», um pedido sem um cliente com sessão iniciada é recusado com o código de erro 401 (
customer_login_required). O ID do cliente provém da assinatura, nunca do corpo do pedido. - O URL direto. Independentemente da restrição aplicada, o URL direto da aplicação devolve um código de erro 403 (
proxy_required), pelo que ninguém pode contornar estas verificações.
Um pedido recusado nunca chega ao Shopify Flow e não é contabilizado no seu plano.
O que o Shopify Flow recebe
O «Webhook Trigger» e o «Sync Webhook Trigger» dispõem de um campo «customerId»: o ID numérico do cliente que iniciou sessão, por exemplo, 7350001. Este campo fica vazio no caso de visitantes e em todas as solicitações que não tenham sido enviadas através do URL do proxy da aplicação. Os seus campos mapeados são recebidos como habitualmente; consulte Mapeamento da carga útil e variáveis de fluxo.
Faça a chamada a partir da sua loja virtual
O pedido tem de ser enviado a partir de uma página da sua loja enquanto o cliente estiver com a sessão iniciada, para que passe pelo domínio da sua loja. Copie o URL do webhook da aplicação: o Shopify permite-lhe alterar o caminho do proxy, pelo que o seu pode diferir do exemplo. Este trecho de código, inserido numa secção do tema, envia a localização da empresa para a qual o cliente B2B está a efetuar a compra:
<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 a que o fluxo de trabalho receba a localização como fieldOne.
Registe o cliente no Shopify Flow
O Shopify Flow consegue aceder a todas as informações sobre o cliente, pelo que a verificação deve ser integrada no fluxo de trabalho:
- Gatilho: Gatilho de Webhook da secção Workflow Webhooks. Caso tenha vários webhooks, adicione uma condição: o ID do webhook é igual ao ID apresentado na aplicação.
- Obtenha os dados do cliente através da consulta
id:{{customerId}}. O Shopify Flow carrega o cliente que está a iniciar sessão, incluindo tags e funções na empresa. - Condição: o cliente possui a etiqueta
wholesalee um dos perfis de contacto da sua empresa tem uma atribuição de função cujo ID de localização da empresa é igual afieldOnee cuja função éOrdering onlyouLocation admin. - Nesse caso: as suas ações, por exemplo, criar 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 ao cliente o motivo.
É bom saber
- O URL do proxy da aplicação requer que a sua loja virtual esteja acessível. No caso de uma loja protegida por palavra-passe, só responde após a introdução da palavra-passe da loja.
- Os visitantes recebem o erro 401, pelo que deve apresentar um link para iniciar sessão nessa página.
- O histórico apresenta o ID do cliente de cada pedido, e uma repetição reenvia-o.
- Quando um cliente solicita que os seus dados sejam apagados, os registos do histórico que enviou são eliminados.
