E-commerce (WooCommerce e Magento)
Sincronize clientes e pedidos das suas lojas WooCommerce ou Magento para o CRM usando a sua própria loja (modelo BYO).
Além do Shopify, o CRM sincroniza lojas WooCommerce e Magento (modelo BYO, "traga a sua própria loja"). Cada cliente vira um Contato e cada pedido vira um Pedido de venda. Não há custo, margem nem intermediação nossa: os dados vêm direto da sua loja. A integração nasce inerte: nada acontece até você preencher os campos e ativar. Os segredos ficam cifrados no CRM e nunca são exibidos de volta.
Pré-requisitos
- WooCommerce: uma loja WordPress/WooCommerce com acesso de administrador (para criar webhooks em WooCommerce → Settings → Advanced → Webhooks).
- Magento (Adobe Commerce): acesso para instalar/configurar um módulo, integração ou observer que faça POST JSON a cada cliente/pedido (o Magento não tem webhooks nativos padronizados).
- No Sellio, ser administrador para salvar as credenciais e ativar a integração em Configurações → Integrações.
WooCommerce
O WooCommerce envia webhooks nativos. Você cria os webhooks na sua loja apontando para a URL do CRM e define um "Secret"; o WooCommerce assina cada chamada com esse secret (HMAC-SHA256, header X-WC-Webhook-Signature) e o CRM verifica a assinatura antes de sincronizar.
- No CRM, abra Configurações → Integrações e localize o cartão "E-commerce (WooCommerce)".
- Preencha a URL da loja (opcional, só referência) e um Webhook secret (um texto que você inventa) e clique em "Salvar credenciais".
- Copie a "URL do webhook (WooCommerce)" que aparece.
- Na sua loja, vá em WooCommerce → Settings → Advanced → Webhooks e crie um webhook para CADA tópico: Customer created, Customer updated, Order created, Order updated. Em cada um, cole a URL do CRM como Delivery URL e use o MESMO Secret que você salvou no CRM.
- Volte ao CRM e clique em "Ativar".
Magento (Adobe Commerce)
O Magento não tem webhooks nativos padronizados. Você configura um módulo/integração (ou um observer) que faz um POST em JSON para a URL do CRM a cada cliente ou pedido. O POST é autenticado por um segredo, de duas formas possíveis (use a que o seu módulo suportar): uma assinatura HMAC-SHA256 do corpo em base64 no header X-Magento-Signature, ou o próprio segredo em claro no header X-Magento-Secret.
- No CRM, abra Configurações → Integrações e localize o cartão "E-commerce (Magento)".
- Preencha a URL da loja (opcional) e um Segredo de autenticação (um texto que você inventa) e clique em "Salvar credenciais".
- Copie a "URL do webhook (Magento)" que aparece.
- Configure o seu módulo/integração do Magento para fazer POST (JSON) nessa URL a cada cliente e pedido, enviando o segredo no header X-Magento-Signature (assinatura HMAC) ou X-Magento-Secret (valor em claro).
- Volte ao CRM e clique em "Ativar".
Formato do JSON esperado pelo Magento, para clientes: { "type": "customer", "id", "email", "firstname", "lastname", "telephone", "street", "city", "region", "country_id" }. Para pedidos: { "type": "order", "increment_id" (ou "entity_id"), "grand_total", "order_currency_code", "status", "customer_email", "customer_id", "customer_firstname", "customer_lastname" }. O campo "type" (customer ou order) decide o mapeamento; campos ausentes viram vazio.
O que acontece a cada evento
- Cliente (customer.created/updated no Woo; type "customer" no Magento): o cliente é criado ou atualizado como Contato, casando por e-mail. O CRM guarda o id do cliente na loja (woo_customer_id / magento_customer_id) para não duplicar em reentregas.
- Pedido (order.created/updated no Woo; type "order" no Magento): o pedido é criado ou atualizado como Pedido de venda (número, valor, moeda e status), vinculado ao Contato correspondente quando existe. No Woo, "completed" vira "faturado" e "cancelled/refunded/failed" vira "cancelado"; no Magento, "complete/closed/invoiced" vira "faturado" e "canceled/holded" vira "cancelado"; os demais viram "confirmado".
Trate as URLs dos webhooks e os segredos como secretos. Chamadas com assinatura/segredo inválidos são recusadas. Se você tentar ativar sem preencher o segredo, a integração fica inerte: nada é sincronizado até tudo estar no lugar.
Como testar
- WooCommerce: em WooCommerce → Settings → Advanced → Webhooks, edite um webhook e verifique os "Webhook logs" após criar um cliente/pedido de teste; no CRM, confira Contatos/Pedidos de venda.
- Magento: acione o seu observer/integração para um cliente e um pedido de teste (POST JSON com o campo "type") e confira os registros no CRM.
- Reenvie o mesmo evento e confirme que o CRM atualiza (não duplica): a chave é o id externo.
Solução de problemas
- WooCommerce: assinatura inválida: o "Secret" do webhook na loja precisa ser IGUAL ao Webhook secret salvo no CRM (HMAC-SHA256, header X-WC-Webhook-Signature). Recadastre o mesmo valor nos dois lados.
- Magento: chamada recusada: envie o segredo corretamente, seja como HMAC-SHA256 do corpo em base64 no header X-Magento-Signature, OU o segredo em claro no header X-Magento-Secret (use o que o seu módulo suportar).
- Não sincroniza: confirme que os webhooks/POSTs cobrem cliente E pedido (created/updated) e apontam para a "URL do webhook" correta; confirme que a integração está ativada.
- Magento: campos vazios no CRM: valide o JSON esperado (customer: id/email/firstname/lastname...; order: increment_id/grand_total/order_currency_code/status/customer_email...). O campo "type" (customer/order) decide o mapeamento.
- 404 na URL: integração desativada ou token trocado; reative e recopie a URL.