Sumário
- Escolha os topics que merecem interromper você
- Passo 1 — Crie o canal
- Passo 2 — Adicione o webhook no Shopify
- Passo 3 — Coloque no template só os campos que você lê
- Passo 4 — Roteie por topic com uma condição
- Só me acorde por pedidos grandes
- O que isso não faz
- Perguntas frequentes
- Preciso de um app do Shopify para isso?
- Meu estoque consegue ver os pedidos sem ver meu admin do Shopify?
- Devo colocar nome de cliente na notificação?
- Dá para receber uma ligação por chargeback?
- Fechando
- Conteúdo relacionado
Os e-mails de pedido do Shopify chegam quando o seu app de e-mail resolve sincronizar, caem numa pasta que você filtrou, e parecem idênticos se o pedido foi de R$ 60 ou de R$ 6.000. Se é você que toca a loja, esse é o formato errado de sinal.
Um webhook resolve. O Shopify vai fazer POST de todo pedido para uma URL que você escolher, e o Echobell transforma esse POST numa notificação cujo volume quem decide é você.
Escolha os topics que merecem interromper você
O Shopify chama os tipos de evento de webhook de topics. Estes quatro cobrem a maioria das lojas tocadas por uma pessoa só:
| Topic | O que significa | Urgência |
|---|---|---|
orders/create | Um pedido foi feito. | Normal |
orders/paid | O pagamento foi aprovado. Use este se só importa o dinheiro que realmente entrou. | Normal |
orders/cancelled | Um cliente cancelou. Vale saber antes de embalar. | Sensível ao tempo |
refunds/create | Um reembolso foi emitido. | Sensível ao tempo |
Assine orders/create ou orders/paid, não os dois, a menos que você realmente queira duas notificações por venda. Para a maioria das lojas, orders/paid é o honesto.
Passo 1 — Crie o canal
Crie um canal no Echobell chamado algo como "Pedidos Shopify", copie a URL de webhook dele e ligue Somente POST. O Shopify sempre envia por POST.
Se quiser um canal separado e mais alto para cancelamentos e reembolsos, crie ele agora também e coloque em sensível ao tempo.
Passo 2 — Adicione o webhook no Shopify
No admin do Shopify, vá em Configurações → Notificações → Webhooks → Criar webhook. Escolha o topic, deixe o formato em JSON e cole a URL do seu canal.
O Shopify manda um payload de teste ao salvar. Se o celular vibrar, o caminho funciona.
Passo 3 — Coloque no template só os campos que você lê
Os payloads de pedido do Shopify são longos: mais de cem campos por pedido. Você só precisa de alguns:
Título
Pedido #{{order_number}} · {{total_price}} {{currency}}
Corpo
{{customer.first_name}} {{customer.last_name}}
{{line_items[0].title}}
line_items é um array, então line_items[0] é o primeiro item. Os templates do Echobell aceitam acesso por índice, mas não existe laço: um pedido com três itens mostra o primeiro e mais nada. Se isso importa, ponha a contagem ao lado:
{{line_items[0].title}} · {{line_items.length}} itens no total
Diferente do Stripe, o Shopify envia total_price como string decimal — "49.00", não 4900 — então aparece certo sem conta nenhuma.
Passo 4 — Roteie por topic com uma condição
Se você apontar vários topics para o mesmo canal, o Shopify diz qual é qual num cabeçalho:
header["x-shopify-topic"] == "orders/paid"
É a forma mais limpa de separar comportamentos sem criar um webhook por canal no admin.
Só me acorde por pedidos grandes
O padrão que a maioria dos lojistas realmente quer: todo pedido vai para um canal silencioso, e só os acima de um limite vão para um barulhento.
Crie um segundo canal, coloque em sensível ao tempo, aponte outro webhook de orders/paid para ele e dê uma condição:
total_price > 500
Agora um dia normal é um zumbido de fundo e um pedido de R$ 4.500 é algo que você sente.
O que isso não faz
Sem verificação de HMAC. O Shopify assina todo webhook com um cabeçalho X-Shopify-Hmac-Sha256. O Echobell não verifica, então a URL do seu canal é a única coisa segurando estranhos do lado de fora. Mantenha em segredo, deixe Somente POST ligado, e se uma notificação de pedido forjada causar dano real, ponha seu próprio endpoint na frente para verificar o HMAC e faça ele chamar o Echobell.
O Shopify pode entregar o mesmo webhook duas vezes. Ele repete em caso de falha, e as repetições não são desduplicadas. Trate a notificação como um empurrão para olhar o pedido, não como contagem de pedidos. Seu admin do Shopify é a fonte da verdade.
Topics de estoque ficam barulhentos rápido. inventory_levels/update dispara a cada movimentação de estoque, incluindo suas próprias edições. Se quiser alertas de estoque baixo, filtre com rigor ou vai se arrepender antes do almoço.
Perguntas frequentes
Preciso de um app do Shopify para isso?
Não. Os webhooks em Configurações → Notificações já vêm no admin e não exigem app, conta de parceiro nem código.
Meu estoque consegue ver os pedidos sem ver meu admin do Shopify?
Consegue. Compartilhe o canal com eles. Recebem as notificações e mais nada — sem acesso ao admin e sem dados de cliente além do que o seu template incluir.
Devo colocar nome de cliente na notificação?
É decisão sua, e vale tomar de forma consciente. Tudo que está no template aparece na tela bloqueada. Número do pedido e total costumam bastar para agir.
Dá para receber uma ligação por chargeback?
Contestações do Shopify Payments chegam pelo topic disputes/create em lojas que usam Shopify Payments. Aponte isso para um canal em modo chamada — é o único evento de pedido com prazo colado nele.
Fechando
Um webhook, um template, e uma condição se você quiser a versão barulhenta. Leva uns cinco minutos e substitui ficar atualizando a página de pedidos.
Baixe o Echobell para iPhone ou pegue no Google Play, depois faça um pedido de teste e veja ele chegar antes do e-mail de confirmação.