Odoo + Shopify Sync: Products, Orders, and Inventory

Complete guide to syncing Odoo 19 with Shopify. Covers product sync, real-time order import, bidirectional inventory, financial reconciliation, and multi-store management.

E
ECOSIRE Research and Development Team
|19 de março de 202611 min de leitura2.5k Palavras|

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

  1. Vá para o administrador do Shopify → Configurações → Aplicativos e canais de vendas
  2. Clique em Desenvolver aplicativos → Criar um aplicativo
  3. Defina o nome do aplicativo (por exemplo, "Integração Odoo")
  4. 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
    
  5. Defina o URL do webhook: https://your-odoo.com/shopify/webhook
  6. Instale o aplicativo → copie Admin API Access Token

Etapa 2: Configurar no Odoo

Navegue até Vendas → Shopify ou Inventário → Lojas do Shopify:

CampoValor
Nome da lojaNome da sua loja
Domínio Shopifysualoja.myshopify.com
Token de API de administradorDo aplicativo personalizado
Versão da API2024-10 (último estável)
Segredo do WebhookGerado automaticamente, usado para verificar webhooks
Armazém PadrãoArmazém primário para pedidos do Shopify
MoedaArmazenar moeda
EmpresaEmpresa Odoo para esta loja
Diário de pagamentosDiário de pagamentos do Shopify
Diário de ReembolsoDiário de reembolsos do Shopify
Prefixo do pedidopor 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:

ModoDescriçãoCaso de uso
Odoo → ShopifyOdoo é mestre, Shopify é displayNovos produtos criados primeiro no Odoo ERP
Shopify → OdooShopify é mestre, Odoo é escravoLoja Shopify existente, adicionando Odoo
BidirecionalMudanças em qualquer sistema são sincronizadas nos dois sentidosCru; 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 OdooCampo Shopify
Nome do produtoTítulo
Descrição de VendasCorpo HTML
Categoria de produtoTipo de produto
EtiquetasEtiquetas
Preço de tabelaPreço
Preço de comparaçãoCompare pelo preço
Código de barras (EAN)Código de barras
PesoPeso
Imagens do produtoImagens
Vendas OKPublicado (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:

  1. Odoo product.template → Produto Shopify
  2. Odoo product.product (variantes) → Variantes do Shopify
  3. 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):

  1. Navegue até Shopify → Catálogo → Sincronização em massa
  2. Selecione categorias de produtos para sincronizar
  3. Execute o trabalho de sincronização em massa (processo em segundo plano)
  4. Monitore o progresso no log de sincronização
  5. 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:

  1. Recebe carga útil do webhook do Shopify
  2. Verifica a assinatura do webhook (HMAC-SHA256)
  3. Cria um pedido de venda no Odoo imediatamente
  4. 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 ShopifyCampo Odoo
ID do pedidoReferência (com prefixo)
Nome do clienteres.nome do parceiro
E-mail do clienteE-mail do parceiro
Endereço de cobrançaEndereço da fatura
Endereço de envioEndereço de entrega
Itens de linhaLinhas de ordem de venda
Códigos de DescontoLinhas de desconto
Método de envioTransportadora de entrega
Custo de envioLinha de taxa de entrega
Imposto totalLinhas fiscais
Situação FinanceiraEstado do pagamento
Status de cumprimentoEstado de entrega
NotasNotas do cliente
EtiquetasEtiquetas 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_number no pedido de venda
  • Exemplo: "Mensagem de presente" → note no 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:

  1. Pedido de venda confirmado
  2. Pedido de entrega criado no Odoo WMS
  3. Escolhas, embalagens e navios do armazém
  4. Entrega validada em Odoo (rastreamento inserido)
  5. Connector envia atendimento para Shopify com número de rastreamento
  6. 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 OdooLocalização do Shopify
Armazém PrincipalLocalização Principal
Costa Leste DCLocalização na Costa Leste
Costa Oeste DCLocalização da Costa Oeste
Despachante diretoLocalizaçã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:

PlanoTaxa on-lineTarifa Presencial
Básico2,9% + 30 centavos2,7%
Shopify2,6% + 30 centavos2,5%
Avançado2,4% + 30 centavos2,4%
Mais0,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:

  1. Baixe o relatório de pagamentos do Shopify Payments (ou via API)
  2. Importe via Shopify → Finanças → Pagamento de importação
  3. 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
  1. 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:

  1. O webhook refunds/create é acionado
  2. O Connector cria uma nota de crédito no Odoo em relação à fatura original
  3. Se o estoque foi devolvido (reabastecido): cria uma transferência de devolução
  4. 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 B2BEquivalente Odoo
Empresares.company (ou segmento de cliente)
CatálogoLista de preços
Condições de pagamentoCondições de pagamento no pedido de venda
Projetos de pedidosOrçamentos (pedido de venda em rascunho)

Sincronizar preços B2B:

  1. Crie um catálogo Shopify B2B no conector
  2. Link para uma lista de preços Odoo
  3. Atribuir a empresas B2B do Shopify
  4. 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.

E

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.

Converse no WhatsApp