Odoo + Shopify Sync: produtos, pedidos e estoque
Shopify representa mais de 10% de todas as receitas de comércio eletrônico dos EUA. Para empresas que usam o Odoo 19 Enterprise como espinha dorsal operacional e o Shopify como vitrine voltada para o cliente, manter os dois sistemas sincronizados não é negociável – sistemas desconectados significam erros de estoque, atrasos no processamento de pedidos e dores de cabeça contábeis.
Este guia cobre a integração completa do Odoo-Shopify: decisões de arquitetura, sincronização de catálogo de produtos, importação de pedidos em tempo real, gerenciamento de estoque bidirecional, reconciliação do Shopify Payments e gerenciamento de várias lojas.
Principais conclusões
- APIs REST e GraphQL do Shopify suportadas; GraphQL preferido para Shopify Plus
- A sincronização do produto é bidirecional: crie no Odoo → publique no Shopify ou importe do Shopify
- A sincronização de estoque é orientada por eventos: aciona cada movimento de estoque no Odoo
- O webhook de pedidos do Shopify para Odoo oferece importação de pedidos quase instantânea (<30 segundos)
- A reconciliação do Shopify Payments lida com pagamentos, taxas e reembolsos automaticamente
- O inventário de vários locais é sincronizado com o recurso de vários locais do Shopify
- Catálogos Shopify Plus B2B (atacado) com link para listas de preços do Odoo
- Fluxo de devoluções do Shopify para Odoo RMA com ajuste automatizado de estoque
Arquitetura de Integração
Abordagem de API:
A integração usa REST Admin API da Shopify para a maioria das operações e webhooks para atualizações orientadas por eventos:
- REST API: CRUD do produto, leitura de pedidos, gerenciamento de estoque
- API GraphQL: operações em massa (exportação de catálogo grande), preços B2B (Shopify Plus)
- Webhooks: criação de pedidos em tempo real, atualização de pedidos, criação de reembolso, atualização de nível de estoque
Topologia de conexão:
Odoo 19 (ERP Backend)
↕ Product, Inventory, Price
Shopify Admin API / Webhooks
↕ Real-time events
Shopify Storefront (Customer-facing)
Autenticação:
Shopify usa chaves de API de aplicativos privados ou OAuth de aplicativos personalizados:
- Aplicativo privado: mais simples, recomendado para integrações de loja única
- Aplicativo personalizado (OAuth): necessário para distribuição na App Store da Shopify ou gerenciamento de várias lojas
Para o conector ECOSIRE, configure um aplicativo personalizado no painel de parceiros da Shopify.
Configuração do aplicativo Shopify
Etapa 1: Crie um aplicativo personalizado na Shopify
- Vá para o administrador do Shopify → Configurações → Aplicativos e canais de vendas
- Clique em Desenvolver aplicativos → Criar um aplicativo
- Defina o nome do aplicativo (por exemplo, "Integração Odoo")
- Configure escopos de API:
read_products, write_products read_orders, write_orders read_inventory, write_inventory read_shipping, write_shipping read_customers, write_customers read_fulfillments, write_fulfillments read_locations read_price_rules, write_price_rules - Defina o URL do webhook:
https://your-odoo.com/shopify/webhook - Instale o aplicativo → copie Admin API Access Token
Etapa 2: Configurar no Odoo
Navegue até Vendas → Shopify ou Inventário → Lojas do Shopify:
| Campo | Valor |
|---|---|
| Nome da loja | Nome da sua loja |
| Domínio Shopify | sualoja.myshopify.com |
| Token de API de administrador | Do aplicativo personalizado |
| Versão da API | 2024-10 (último estável) |
| Segredo do Webhook | Gerado automaticamente, usado para verificar webhooks |
| Armazém Padrão | Armazém primário para pedidos do Shopify |
| Moeda | Armazenar moeda |
| Empresa | Empresa Odoo para esta loja |
| Diário de pagamentos | Diário de pagamentos do Shopify |
| Diário de Reembolso | Diário de reembolsos do Shopify |
| Prefixo do pedido | por exemplo, "SHO-" |
Etapa 3: registrar webhooks
Após salvar a configuração, clique em Registrar Webhooks. O conector assina:
- CÓDIGO0
- CÓDIGO0
- CÓDIGO0
- CÓDIGO0
- CÓDIGO0
- CÓDIGO0
- CÓDIGO0
- CÓDIGO0
- CÓDIGO0
Sincronização do catálogo de produtos
Opções de direção de sincronização:
| Modo | Descrição | Caso de uso |
|---|---|---|
| Odoo → Shopify | Odoo é mestre, Shopify é display | Novos produtos criados primeiro no Odoo ERP |
| Shopify → Odoo | Shopify é mestre, Odoo é escravo | Loja Shopify existente, adicionando Odoo |
| Bidirecional | Mudanças em qualquer sistema são sincronizadas nos dois sentidos | Cru; risco de conflitos |
Recomendado: Odoo → Shopify para novas implantações. O mestre de produtos do Odoo fornece dados mais ricos (informações de compra, custos, BOM) que o Shopify não precisa.
Mapeamento de campo de produto:
| Campo Odoo | Campo Shopify |
|---|---|
| Nome do produto | Título |
| Descrição de Vendas | Corpo HTML |
| Categoria de produto | Tipo de produto |
| Etiquetas | Etiquetas |
| Preço de tabela | Preço |
| Preço de comparação | Compare pelo preço |
| Código de barras (EAN) | Código de barras |
| Peso | Peso |
| Imagens do produto | Imagens |
| Vendas OK | Publicado (verdadeiro/falso) |
| Tipo de produto (serviço/armazenável) | Requer frete |
Sincronização de variantes:
Shopify suporta até 3 opções de produtos (cor, tamanho, material) com no máximo 100 variantes por produto. O conector mapeia os atributos do produto Odoo:
- Odoo
product.template→ Produto Shopify - Odoo
product.product(variantes) → Variantes do Shopify - Valores de atributos Odoo → Valores de opções do Shopify
Sincronização de catálogo em massa:
Para configuração inicial com catálogos grandes (mais de 1.000 produtos):
- Navegue até Shopify → Catálogo → Sincronização em massa
- Selecione categorias de produtos para sincronizar
- Execute o trabalho de sincronização em massa (processo em segundo plano)
- Monitore o progresso no log de sincronização
- Revise e resolva quaisquer erros de mapeamento
Gerenciamento de pedidos
Importação de pedidos em tempo real via webhooks:
Quando um cliente faz um pedido no Shopify, o webhook orders/create é acionado em segundos. O conector:
- Recebe carga útil do webhook do Shopify
- Verifica a assinatura do webhook (HMAC-SHA256)
- Cria um pedido de venda no Odoo imediatamente
- Retorna 200 OK para Shopify (evita novas tentativas)
O tempo de ponta a ponta desde a finalização da compra do Shopify até o pedido de venda do Odoo: normalmente de 3 a 15 segundos.
Mapeamento de dados do pedido:
| Campo Shopify | Campo Odoo |
|---|---|
| ID do pedido | Referência (com prefixo) |
| Nome do cliente | res.nome do parceiro |
| E-mail do cliente | E-mail do parceiro |
| Endereço de cobrança | Endereço da fatura |
| Endereço de envio | Endereço de entrega |
| Itens de linha | Linhas de ordem de venda |
| Códigos de Desconto | Linhas de desconto |
| Método de envio | Transportadora de entrega |
| Custo de envio | Linha de taxa de entrega |
| Imposto total | Linhas fiscais |
| Situação Financeira | Estado do pagamento |
| Status de cumprimento | Estado de entrega |
| Notas | Notas do cliente |
| Etiquetas | Etiquetas internas |
Campos de pedido personalizados:
Para lojistas do Shopify Plus com atributos de checkout personalizados:
- Mapear atributos de nota de pedido do Shopify para campos personalizados do Odoo
- Exemplo: atributo “Número do pedido” →
x_purchase_order_numberno pedido de venda - Exemplo: "Mensagem de presente" →
noteno pedido de venda
Fluxo de trabalho de processamento de pedidos:
Após a importação, o conector gerencia o pedido por meio do fluxo de trabalho padrão do Odoo:
- Pedido de venda confirmado
- Pedido de entrega criado no Odoo WMS
- Escolhas, embalagens e navios do armazém
- Entrega validada em Odoo (rastreamento inserido)
- Connector envia atendimento para Shopify com número de rastreamento
- Shopify marks order as "Fulfilled" and emails customer
Cumprimentos parciais:
Shopify oferece suporte a pedidos com vários atendimentos (envie o que está disponível agora, descanse mais tarde). O conector lida com:
- Entrega parcial em Odoo → cumprimento parcial enviado para Shopify
- Shopify mostra o status de cumprimento parcial ao cliente
- Os itens restantes criam uma entrega separada quando o estoque estiver disponível
Sincronização de inventário
Sincronização de inventário bidirecional:
O estoque flui em ambas as direções para manter a precisão:
Odoo → Shopify (direção principal):
- Cada movimentação de estoque no Odoo aciona uma atualização do nível de estoque no Shopify
- Quantidade disponível = Disponível - Reservado - Estoque de segurança
- Atualizações via API de nível de inventário do Shopify
Shopify → Odoo (substituto):
- Se o inventário do Shopify for ajustado manualmente (administrador ou aplicativo), o webhook é acionado
- Connector cria um ajuste de inventário Odoo com nota de auditoria
Shopify em vários locais:
O recurso de vários locais do Shopify rastreia o estoque por local físico. Mapeie os armazéns Odoo para os locais do Shopify:
| Armazém Odoo | Localização do Shopify |
|---|---|
| Armazém Principal | Localização Principal |
| Costa Leste DC | Localização na Costa Leste |
| Costa Oeste DC | Localização da Costa Oeste |
| Despachante direto | Localização do Fornecedor |
O conector envia quantidades por local para a Shopify com base no mapeamento do local do armazém.
Proteções de precisão do inventário:
- O buffer de estoque de segurança evita que o Shopify mostre todo o estoque disponível
- Tratamento de falta de estoque: quando a quantidade chega a 0, estoque do Shopify = 0 (não negativo)
- Continuar vendendo quando estiver fora de estoque: configurável por produto (alguns vendedores permitem pedidos em espera)
Reconciliação de pagamentos do Shopify
Estrutura de taxas do Shopify Payments:
| Plano | Taxa on-line | Tarifa Presencial |
|---|---|---|
| Básico | 2,9% + 30 centavos | 2,7% |
| Shopify | 2,6% + 30 centavos | 2,5% |
| Avançado | 2,4% + 30 centavos | 2,4% |
| Mais | 0,2% (pagamentos do Shopify) | 0,2% |
Conciliação de pagamentos:
O Shopify Payments é transferido para sua conta bancária a cada 2 a 3 dias úteis. O conector importa dados de pagamento:
- Baixe o relatório de pagamentos do Shopify Payments (ou via API)
- Importe via Shopify → Finanças → Pagamento de importação
- O Connector cria lançamentos contábeis manuais:
- Receita (valores líquidos de vendas por pedido)
- Despesas com taxas do Shopify (processamento de pagamento)
- Ajustes de reembolsos
- Pagamento líquido a receber
- Quando a transferência bancária chegar: reconcilie com o diário do Shopify Payments
Tratamento de reembolsos do Shopify:
Quando um reembolso é processado na Shopify:
- O webhook
refunds/createé acionado - O Connector cria uma nota de crédito no Odoo em relação à fatura original
- Se o estoque foi devolvido (reabastecido): cria uma transferência de devolução
- Publica nota de crédito → saldo compensado na conta do cliente
Integração Shopify Plus B2B
Shopify Plus inclui recursos B2B (catálogos de atacado, condições de pagamento, pagamento líquido). O conector integra-os aos preços B2B do Odoo:
Mapeamento de empresa e catálogo:
| Comprar B2B | Equivalente Odoo |
|---|---|
| Empresa | res.company (ou segmento de cliente) |
| Catálogo | Lista de preços |
| Condições de pagamento | Condições de pagamento no pedido de venda |
| Projetos de pedidos | Orçamentos (pedido de venda em rascunho) |
Sincronizar preços B2B:
- Crie um catálogo Shopify B2B no conector
- Link para uma lista de preços Odoo
- Atribuir a empresas B2B do Shopify
- Mudanças de preço na lista de preços Odoo → enviadas automaticamente para o catálogo B2B do Shopify
Gerenciamento de várias lojas
Para marcas que operam em várias lojas do Shopify (regiões, marcas, atacado x varejo):
Configurações de várias lojas:
Crie configurações de conector separadas para cada loja Shopify:
- Diferentes credenciais de API por loja
- Visibilidade de produtos específicos da loja (alguns produtos em todas as lojas, alguns em específico)
- Preços específicos da loja (preços regionais, atacado x varejo)
- Alocação de estoque específica da loja
Alocação de estoque entre lojas:
Available for Store A = On-Hand - Reserve for Store B - Reserve for Store C - Safety Stock
Configure regras de alocação para evitar vendas excessivas quando várias lojas utilizam o mesmo estoque.
Perguntas frequentes
Como o conector lida com os metacampos de produtos da Shopify para dados personalizados?
Os metacampos do Shopify armazenam dados personalizados sobre produtos, pedidos e clientes. O conector mapeia campos Odoo específicos para metacampos do Shopify. Por exemplo, mapeie o campo x_care_instructions do Odoo para um metacampo product.care_instructions. Configure mapeamentos de metacampos nas configurações avançadas do conector por tipo de recurso.
O conector pode lidar com produtos de assinatura do Shopify (assinaturas do Shopify ou ReCharge)?
Pedidos de assinatura padrão do Shopify são importados como pedidos regulares no Odoo. Para assinaturas ReCharge, pedidos recorrentes são acionados como webhooks orders/create individuais e importados normalmente. O conector não gerencia o ciclo de vida da assinatura no Shopify — ele processa cada pedido, independentemente de ele ser gerado por assinatura ou único.
O que acontece se o servidor Odoo estiver inativo quando um webhook do Shopify for acionado?
O Shopify tenta novamente webhooks com falha até 19 vezes em 48 horas. O conector processa o webhook quando o Odoo se recupera e o pedido é importado. Para confiabilidade de missão crítica, configure o Odoo com infraestrutura redundante (balanceador de carga + vários trabalhadores) e monitore alertas de tempo de inatividade. A janela de novas tentativas de 48 horas fornece um buffer para manutenção planejada.
O conector oferece suporte ao Shopify Markets (venda internacional em várias moedas)?
Sim. Shopify Markets permite vender em várias moedas em uma única loja. O conector importa pedidos na moeda de checkout do comprador e cria pedidos de venda nessa moeda no Odoo. A conversão de moeda utiliza a taxa de câmbio no momento da importação do pedido. Configure listas de preços separadas por Shopify Market no Odoo para obter preços locais precisos.
Como faço para lidar com os cartões-presente do Shopify no Odoo?
Os cartões-presente do Shopify aparecem como forma de pagamento nos pedidos. O conector cria uma linha de pagamento separada para a parte do cartão-presente de cada pedido. Configure uma conta de responsabilidade "Shopify Gift Cards" no Odoo. Quando um cartão-presente é vendido (por meio de um produto de cartão-presente), a receita é diferida. Quando resgatado em um pedido, o passivo é compensado e a receita reconhecida.
Próximas etapas
Uma integração Odoo-Shopify bem executada torna-se invisível – simplesmente funciona, mantendo ambos os sistemas sincronizados sem intervenção manual. A equipe ECOSIRE construiu integrações Shopify-Odoo para tudo, desde marcas D2C que processam 50 pedidos/dia até varejistas empresariais que atendem 10.000 pedidos/dia.
Entre em contato com a ECOSIRE sobre sua integração Shopify-Odoo →
Explore os serviços Shopify da ECOSIRE →
Compartilhe os detalhes da sua loja e os pontos problemáticos atuais e nossa equipe definirá uma integração Shopify-Odoo que elimine as lacunas entre seu ERP e sua vitrine.
Escrito por
ECOSIRE Research and Development Team
Construindo produtos digitais de nível empresarial na ECOSIRE. Compartilhando insights sobre integrações Odoo, automação de e-commerce e soluções de negócios com IA.
Artigos Relacionados
Australian GST Guide for eCommerce Businesses
Complete Australian GST guide for eCommerce businesses covering ATO registration, the $75,000 threshold, low value imports, BAS lodgement, and GST for digital services.
eCommerce Bookkeeping: Revenue Recognition and Sales Tax
Master eCommerce bookkeeping with correct revenue recognition timing, sales tax collection across marketplaces, and reconciliation for Shopify, Amazon, and more.
Odoo Accounting vs QuickBooks: Detailed Comparison 2026
In-depth 2026 comparison of Odoo Accounting vs QuickBooks covering features, pricing, integrations, scalability, and which platform fits your business needs.