Integração ERP × e-commerce na indústria: onde sempre quebra e como blindar

Integração ERP e-commerce na indústria quebra em 5 pontos previsíveis. Veja onde estoque, preço e nota fiscal travam — e como um hub blinda a operação.

Integração ERP × e-commerce na indústria: onde sempre quebra e como blindar

TL;DR

  • A integração ERP × loja não quebra por bug exótico — quebra em 5 pontos previsíveis: estoque, tabela de preço, fila de pedido, emissão fiscal e idempotência.
  • O erro estrutural é tratar a integração como um script de export/import. O certo é uma camada própria (hub/middleware) com fila, retry e log de auditoria.
  • Estoque tem que ser near-real-time com buffer de segurança, não batch noturno. Vender o que não tem destrói reputação no marketplace.
  • Preço é por canal e por tabela, nunca o preço-base do ERP cru. MAP Policy e margem de canal vivem na camada de integração, não na loja.
  • Idempotência é o que separa operação madura de amadora: o mesmo evento pode chegar duas vezes, e o sistema não pode duplicar pedido nem baixar estoque em dobro.

Por que a integração entre ERP e e-commerce quebra tanto na indústria?

A integração entre o ERP (SAP, TOTVS, Oracle) e a loja própria ou marketplace é o ponto onde a maioria das operações digitais da indústria realmente quebra — não no design da vitrine, não no checkout, mas na costura invisível entre o sistema que controla o estoque físico e o sistema que vende. Quando essa costura falha, o sintoma é sempre o mesmo: vendeu o que não tinha, cobrou o preço errado, o pedido não baixou, a nota travou.

O problema raramente é um bug exótico. É estrutural. A indústria nasceu com um ERP desenhado para Sell-in — vender em caixa fechada para distribuidor, faturar em lote, conferir no fim do mês. O e-commerce exige o oposto: estoque vivo, preço por canal, pedido unitário, nota na hora. Forçar um sistema Sell-in a operar como Sell-out via um "script de export noturno" é a origem de 80% das dores.

Este post abre cada um dos pontos de falha e mostra como uma camada de integração bem feita — o que o mercado chama de Middleware ou hub — blinda a operação. É o tipo de plumbing que ninguém vê quando funciona e todo mundo vê quando falha.

Quais são os 5 pontos onde a integração sempre quebra?

São cinco pontos previsíveis, e eles aparecem quase sempre nesta ordem de gravidade: sincronização de estoque, tabela de preço por canal, fila de pedidos, emissão fiscal e idempotência. Resolver os cinco é a diferença entre uma operação que escala e uma que vira plantão de bombeiro.

Ponto de falhaSintoma visívelCausa raiz comum
Sincronização de estoqueVendeu produto esgotado; oversellSync em batch noturno, sem buffer
Tabela de preço por canalPreço do site ≠ preço do marketplaceERP manda preço-base cru, sem regra de canal
Fila de pedidosPedido pago não baixa no ERPChamada síncrona que falha e não tem retry
Emissão fiscalNF-e travada, pedido não despachaCadastro fiscal incompleto, sem fila de reprocesso
IdempotênciaPedido duplicado, estoque baixado 2xEvento reentregue sem chave de deduplicação

Cada linha dessa tabela já causou demissão de gerente de e-commerce em algum lugar. Vamos abrir uma por uma.

Como integrar estoque sem vender o que não tenho?

Estoque precisa sincronizar em near-real-time com um buffer de segurança, nunca em batch noturno. O oversell — vender o que já acabou — é o pecado capital do marketplace, porque o algoritmo do canal pune cancelamento por falta com queda de reputação e perda de Buy Box. Quem sincroniza estoque uma vez por dia está apostando que ninguém vai comprar as últimas unidades nas 23 horas entre um sync e o outro. Em Black Friday, essa aposta sempre perde.

A arquitetura correta usa eventos: quando o estoque muda no ERP (entrada, venda, transferência), um evento dispara para a camada de integração, que atualiza todos os canais. Sem polling burro de "consulta tudo a cada hora". O Fulfillment físico e a vitrine digital têm que falar a mesma língua em segundos, não em turnos. Esse é exatamente o tipo de falha que detona reputação em marketplace — o mecanismo está detalhado em Bling/Tiny + Mercado Livre: por que sua reputação despenca por falha de sincronização.

Como funciona a tabela de preço por canal?

Preço nunca deve sair cru do ERP para a loja. A camada de integração precisa aplicar regra de preço por canal e por tabela antes de publicar. O preço-base do ERP foi pensado para o distribuidor — é preço de Sell-in. O preço da vitrine é Sell-out, e ele carrega margem de canal, comissão de marketplace, frete embutido, promoção e — crítico para a indústria — a MAP Policy, o preço mínimo anunciado que protege o canal indireto de uma guerra de preço suicida.

É aqui que a indústria que vende via canal indireto mais tropeça. Publicar o preço de Sell-in na loja D2C significa competir com o próprio distribuidor por baixo — conflito de canal explícito. A camada de integração é o lugar onde você protege a MAP Policy programaticamente: o sistema simplesmente recusa publicar abaixo do piso. Esse é o coração do que chamamos de Distribuidor Digital — você opera o digital sem detonar a cadeia que já vende seu produto.

O pedido foi pago mas não aparece no ERP. Por quê?

Quase sempre é fila de pedido mal feita: uma chamada síncrona que falhou e não tinha retry. Quando o cliente paga, o pedido precisa viajar da loja até o ERP para virar ordem de separação, faturamento e despacho. Se essa viagem é uma chamada direta (a loja chama a API do ERP e espera resposta na hora), qualquer instabilidade — ERP em manutenção, timeout, pico de carga — faz o pedido sumir no limbo. Pago no cartão, invisível na operação.

A solução é assíncrona: o pedido entra numa fila durável, e um worker tenta entregar ao ERP com retry exponencial até confirmar. Se o ERP está fora, a fila segura; quando volta, drena sozinha. Nada se perde, nada duplica. Essa fila é o que transforma "a integração caiu e perdemos pedido" em "a integração ficou atrasada 40 minutos e ninguém percebeu".

Como evitar pedido duplicado e nota fiscal travada?

Pedido duplicado se evita com idempotência — uma chave única por evento que faz o sistema ignorar a segunda entrega do mesmo pedido. Em sistemas distribuídos, mensagens são reentregues: o mesmo webhook de "pedido pago" pode chegar duas, três vezes por causa de retry de rede. Sem idempotência, cada reentrega vira um pedido novo, baixa estoque de novo e emite NF-e de novo. Com idempotência, o sistema vê a chave repetida e descarta a duplicata silenciosamente.

A emissão fiscal é o gargalo final e o mais perverso, porque trava o despacho. Uma NF-e rejeitada pela SEFAZ — CFOP errado, NCM incompleto, ICMS-ST mal calculado, cliente com cadastro fiscal furado — segura o pedido inteiro. A camada de integração precisa de uma fila fiscal própria com reprocessamento: NF-e que falha não pode bloquear a fila inteira de pedidos saudáveis; ela vai para uma esteira de exceção, é corrigida e reprocessada.

Idempotência, fila durável e esteira fiscal de exceção são os três marcadores de uma integração madura. Se a sua não tem os três, ela não quebrou ainda — ela só não foi testada o suficiente.

Comprar um hub pronto ou construir a integração internamente?

Depende do quão padrão é a sua operação. Para volume e fluxo padrão, um hub de mercado resolve; para regra fiscal e logística complexa da indústria, geralmente é preciso uma camada dedicada. Esta é a decisão de arquitetura que define o custo de toda a operação digital.

OpçãoFaz sentido quandoCuidado
Hub/middleware de mercado (SaaS)Operação padrão, SKUs simples, fiscal comumPode não cobrir Substituição Tributária e MAP Policy da indústria
Integração custom (in-house)Regra fiscal/logística específica, alto volumeCusto de manutenção vira passivo permanente
Camada operada por parceiroIndústria que quer digital sem virar empresa de softwareExige parceiro com DNA logístico, não só de software

A armadilha mais cara é tratar integração como projeto de TI pontual — "vamos integrar e acabou". Integração é operação contínua: SEFAZ muda layout, marketplace muda API, ERP atualiza versão. Alguém precisa cuidar disso todo dia, com monitoramento e plantão. Não funciona pra quem quer "ligar e esquecer".

O Agrega trata a integração ERP × canal como o que ela é: infraestrutura crítica de uma operação que nasceu de armazém. Não vendemos um conector e desejamos boa sorte. Operamos a camada — fila, idempotência, fiscal, estoque near-real-time — como Distribuidor Digital da marca, sem substituir o distribuidor físico que já vende seu produto. Antes de decidir o caminho, vale dimensionar o todo: o custo real dessa infraestrutura está aberto em quanto custa montar uma operação D2C completa. E para entender por que esse plumbing é estratégico e não acessório, vale a leitura de D2C não é canal. É infraestrutura de dado..

Perguntas frequentes

como integrar meu erp com o e-commerce sem quebrar o estoque?

Sincronize estoque em near-real-time por eventos, não em batch noturno, e exponha um buffer de segurança em vez do estoque cru. Quando o estoque muda no ERP, um evento atualiza todos os canais em segundos; reservar uma % das últimas unidades de SKUs de alto giro elimina o oversell. Batch diário é a causa nº 1 de vender o que não se tem.

qual a diferença entre middleware e hub de integração?

Na prática são o mesmo conceito: uma camada de software entre o ERP e os canais de venda que aplica regra de negócio (preço por canal, fila de pedido, idempotência, fiscal). 'Hub' costuma designar produtos SaaS prontos com conectores; 'middleware' é o termo genérico de arquitetura. O que importa não é o nome, mas se a camada tem fila durável, retry e log de auditoria.

por que meu pedido foi pago mas não aparece no ERP?

Quase sempre porque a integração usa chamada síncrona sem fila nem retry: se o ERP estava instável ou em manutenção quando o cliente pagou, o pedido falhou ao ser entregue e se perdeu. A correção é colocar os pedidos numa fila durável com retry, que segura quando o ERP cai e drena sozinha quando ele volta — nenhum pedido se perde.

o que é idempotência na integração de e-commerce?

Idempotência é garantir que processar o mesmo evento duas vezes tenha o mesmo efeito que processá-lo uma vez. Como webhooks de pagamento são reentregues por retry de rede, sem uma chave única de deduplicação o sistema cria pedido duplicado, baixa estoque em dobro e emite NF-e repetida. É o marcador que separa integração madura de amadora.

preciso de uma tabela de preço diferente para cada marketplace?

Sim. Cada canal tem comissão, frete e regra de margem próprios, e a indústria ainda precisa respeitar a MAP Policy (preço mínimo anunciado) para não conflitar com o canal indireto. O preço nunca deve sair cru do ERP — a camada de integração aplica a regra de preço por canal antes de publicar, recusando qualquer valor abaixo do piso.