Os gatilhos de pedido são os mais usados em loja WooCommerce — são eles que disparam as mensagens transacionais (pedido recebido, pagamento aprovado, status mudou, em separação, postado). Esse artigo lista todas as variáveis disponíveis nesses gatilhos e mostra exemplos de mapeamento pros placeholders {{1}}, {{2}} do template Meta.
Gatilhos que carregam um pedido
Todos os gatilhos abaixo recebem um WC_Order no contexto, o que significa que todas as variáveis dessa página + todos os metadados do pedido ficam disponíveis no webhook (veja Variáveis enviadas no webhook pra a estrutura completa do payload).
| Gatilho | Quando dispara | Configurações próprias |
|---|---|---|
| Pedido novo | Pedido recém-criado no checkout (qualquer status inicial) | Delay em minutos, filtro de status, filtro de gateway, filtro de categoria |
| Status do pedido alterado | Status muda (qualquer → qualquer) | — |
Status alterou para <status> |
Status muda especificamente pra processing, completed, on-hold, cancelled, etc. |
— |
| Pagamento concluído | Hook woocommerce_payment_complete (pagamento confirmado pelo gateway) |
— |
| Nota pública adicionada ao pedido | Você ou um plugin adicionam nota visível pro cliente | — |
Diferença entre "Pedido novo" e "Status alterou para processing" — Pedido novo dispara uma vez só, quando o pedido nasce. Status alterou para processing dispara toda vez que o pedido entra em processing (pode ser várias vezes, ex: cliente refez o pagamento). Pra pedido pago, use Pagamento concluído ou Status alterou para completed/processing dependendo do fluxo da sua loja.
Variáveis disponíveis nos gatilhos de pedido
Identificação do pedido e cliente
| Variável | Descrição | Exemplo |
|---|---|---|
{{order_id}} |
ID interno do pedido | 10231 |
{{order_number}} |
Número formatado (pode ter prefixo de plugin) | #10231 ou LOJA-10231 |
{{order_key}} |
Chave interna do pedido (usada em URLs) | wc_order_abc123 |
{{customer_id}} |
ID do usuário cliente | 42 (ou 0 pra guest) |
{{first_name}} |
Primeiro nome no billing | Maria |
{{last_name}} |
Sobrenome no billing | Silva |
{{email}} / {{customer_email}} |
E-mail no billing (alias) | maria@exemplo.com |
{{phone_number}} |
Telefone tratado (E.164 quando possível) | 5511999998888 |
{{address}} |
Endereço de entrega completo, formatado | Rua X, 123 - Bairro - Cidade/UF |
Valores monetários
| Variável | Descrição | Formato no webhook |
|---|---|---|
{{order_total}} |
Total do pedido | Cru (199.90) — a versão formatada é removida antes do envio |
{{order_items_subtotal_row}} |
Subtotal dos itens (sem frete e descontos) | Cru |
{{shipping_cost_row}} |
Custo do frete | Cru |
{{discounts_total_row}} |
Total de descontos aplicados | Cru |
As versões com R$ ({{order_items_subtotal}}, {{shipping_cost}}, {{discounts_total}} sem o _row) não chegam no webhook — são removidas antes do envio. Use sempre os _row ou formate no template/Rishi. A exceção é {{order_total}} que chega, mas como valor cru.
Datas e tempo
| Variável | Descrição | Exemplo |
|---|---|---|
{{order_date}} |
Data de criação do pedido | 10/05/2026 |
{{order_time}} |
Hora de criação | 14:32 |
{{delivery_time}} |
Prazo de entrega calculado | 5 |
{{delivery_time_label}} |
Prazo com label | 5 dias úteis |
Pagamento e entrega
| Variável | Descrição | Exemplo |
|---|---|---|
{{payment_method}} |
Título do gateway (não a slug) | Pix, Cartão de Crédito, Boleto Bancário |
{{shipping_method}} |
Método de entrega escolhido | Sedex, Retirada no local |
{{tracking_code}} |
Código de rastreio (se preenchido) | BR123456789BR |
{{pay_for_order_url}} |
URL pra cliente refazer pagamento | https://loja.com/checkout/order-pay/... |
Produtos
| Variável | Formato | Quando usar |
|---|---|---|
{{products_list}} |
Multi-linha: - Nome por item |
Mensagens longas, com quebra de linha |
{{products_list_with_quantity}} |
Multi-linha: - Nome x 2 |
Idem, com quantidade |
{{products_list_inline}} |
Inline: Camiseta, Caneca |
Templates Meta (uma linha) |
{{products_list_inline_with_quantity}} |
Inline com quantidade | Idem |
{{products_list_with_url}} |
Multi-linha com link de cada produto | Mensagens de marketing |
{{products_list_with_notes}} |
Multi-linha com notas/observações de item | Pedidos com customização |
{{products_list_with_meta}} |
Multi-linha com meta data (variações, addons) | Pedidos com variações |
Em templates Meta, prefira {{products_list_inline}} — a Meta penaliza templates com muitas quebras de linha em texto fixo. Inline encaixa numa linha só e fica natural.
Cupons aplicados
| Variável | Descrição | Exemplo |
|---|---|---|
{{coupon_codes}} |
Códigos separados por vírgula | WELCOME10, FRETE0 |
{{coupon_codes_with_amount}} |
Códigos com valor de desconto | WELCOME10 (-R$ 20), FRETE0 (-R$ 15) |
Afiliados (se AffiliateWP estiver ativo)
| Variável | Descrição |
|---|---|
{{affiliate_name}} |
Nome do afiliado que indicou |
{{affiliate_id}} |
ID do afiliado |
{{affiliate_phone}} |
Telefone do afiliado |
Metadados do pedido — tudo vai no payload
Além das variáveis acima, todo metadado do pedido é enviado no webhook automaticamente. Isso inclui:
- Todos os campos da linha de
wp_wc_orders(HPOS):id,status,currency,total_amount,tax_amount,customer_id,billing_email,payment_method,transaction_id,customer_note,date_completed_gmt, etc. - Todas as meta keys de
wp_wc_orders_meta:_billing_first_name,_billing_phone,_billing_cpf,_shipping_address_1,_shipping_address_2,_shipping_postcode,_order_key,_payment_method_title, plus qualquer meta key custom de plugins terceiros (gateway, tracking, fidelização, custom fields de checkout).
Pra usar essas chaves no template, mapeie pelo painel da Rishi — basta usar o nome exato da meta key como variável. Pra descobrir os nomes exatos, abra um pedido em WooCommerce → Pedidos — a aba WhatsApp mostra o array completo na seção Metadados do pedido.
Detalhes em Variáveis enviadas no webhook.
Exemplo de mapeamento — template "Pagamento aprovado"
Template Meta aprovado:
Oi {{1}}! Seu pedido {{2}} foi pago.
Itens: {{3}}
Total: R$ {{4}}
Acompanhe pelo painel:
Configuração na Rishi (gatilho Pagamento concluído):
| Placeholder | Variável |
|---|---|
{{1}} |
{{first_name}} |
{{2}} |
{{order_number}} |
{{3}} |
{{products_list_inline}} |
{{4}} |
{{order_total}} |
O botão de URL do template pode ser configurado como https://sualoja.com/{{1}} com {{1}} → {{pay_for_order_url|relative_url}} — veja Botões de URL e o modificador relative_url pra entender o padrão.
Considerações
Filtros por status, gateway e categoria — em "Pedido novo" e em status específicos, você pode restringir o disparo a certos gateways (só Pix, por exemplo), status (só completed), ou categorias de produto. Configurado direto na mensagem, no painel da Rishi.
{{phone_number}} pode vir vazio — quando o pedido não tem telefone no billing. Mensagens transacionais via API Oficial exigem o número — se não vier, a Rishi não envia (e registra no log lá).
Mensagens para o lojista — você pode configurar receiver: owner na mensagem (na Rishi) pra mandar pra você mesmo em vez do cliente. O {{phone_number}} continua sendo do cliente, mas o destino do envio muda. Veja Relatórios automáticos pro lojista (artigo do modo QR Code, mas o conceito é o mesmo).
Próximos passos
- Variáveis enviadas no webhook — entender a estrutura completa do payload (essas variáveis + metadados + trigger + db_message).
- Botões de URL e o modificador
relative_url— montar botões com URL dinâmica que a Meta aprova. - Variáveis do gatilho Carrinho abandonado (CartFlows) — gatilho diferente, conjunto de variáveis diferente.