Parte da nossa série eCommerce Integration
Leia o guia completoMapeamento e transformação de dados: tratamento de diferentes APIs e formatos de dados
Cada plataforma de comércio eletrônico fala uma linguagem diferente. A Amazon envia pedidos como XML com objetos de endereço aninhados. Shopify retorna JSON com campos de string simples. O eBay usa uma combinação de REST e XML-RPC legado. WooCommerce incorpora metadados em matrizes de valores-chave. Seu ERP espera tudo em um formato interno específico com tipos de dados validados.
O mapeamento e a transformação de dados é a camada de tradução que faz a integração multicanal funcionar. Faça certo e os dados fluirão silenciosamente entre os sistemas. Se errar, você passará horas depurando por que os números de telefone dos clientes estão preenchendo o campo da cidade ou por que os pesos dos produtos estão errados em um fator de 2,2.
Principais conclusões
- Um modelo de dados canônico (padrão interno) elimina o mapeamento N para N em favor de N para 1 mais 1 para N
- Erros de conversão de unidades são o bug de mapeamento de dados mais comum e mais caro no comércio eletrônico internacional
- Análise defensiva — valide todos os campos, padronize todos os valores ausentes — evita falhas em cascata
- Versione seus mapeamentos junto com seu código; As alterações na API interrompem as integrações silenciosamente, sem esquemas versionados
O modelo de dados canônico
Sem um modelo canônico, conectar 5 canais ao seu ERP requer 10 mapeamentos exclusivos (5 de entrada + 5 de saída), cada um lidando com as peculiaridades do outro sistema. Adicionar um sexto canal requer mais 2 mapeamentos.
Com um modelo canônico, cada canal é mapeado de e para um único formato interno. Adicionar um sexto canal requer apenas 1 novo mapeador de entrada e 1 novo mapeador de saída — independentemente de quantos outros canais existem.
Projetando o modelo canônico
Seu modelo canônico deve ser:
- Superconjunto de todos os canais: inclui todos os campos que qualquer canal possa precisar, mesmo que alguns canais não usem todos os campos
- Fortemente digitado: as datas são ISO 8601, os pesos estão em gramas, as moedas usam códigos ISO 4217, os preços são inteiros (centavos) e não flutuantes
- Versionado: as alterações de esquema são explícitas e compatíveis com versões anteriores
- Documentado: cada campo possui uma descrição, tipo de dados, regra de validação e mapeamento de origem
Exemplo: modelo de pedido canônico
Uma ordem canônica simplificada:
| Campo | Tipo | Fonte: Shopify | Fonte: Amazonas | Fonte: eBay |
|---|---|---|---|---|
| ID do pedido externo | corda | pedido.id | ID do pedido da Amazon | ID do pedido |
| e-mail do cliente | corda | pedido.e-mail | BuyerInfo.BuyerEmail | TransactionArray.Transaction.Buyer.Email |
| envioNome | corda | pedido.endereço_de_envio.nome | EndereçoEnvio.Nome | EndereçoEnvio.Nome |
| itens de linha[].sku | corda | line_items[].sku | Itens do pedido[].SellerSKU | TransactionArray.Transaction.Item.SKU |
| lineItems[].quantidade | inteiro | itens_linha[].quantidade | ItensPedido[].QuantidadeOrdenado | TransactionArray.Transaction.QuantityPurchased |
| lineItems[].priceInCents | inteiro | line_items[].preço * 100 | OrderItems[].ItemPrice.Amount * 100 | TransactionArray.Transaction.TransactionPrice * 100 |
| moeda | cadeia de caracteres (ISO 4217) | ordem.moeda | OrderTotal.CurrencyCode | TransactionArray.Transaction.AmountPaid.currencyID |
| método de envio | enum | pedido.shipping_lines[0].título | Nível de Serviço de Navio | ShippingServiceSelected.ShippingService |
| data do pedido | cadeia de caracteres (ISO 8601) | pedido.criado_at | Data de compra | Data de criação |
Observe como cada fonte é mapeada para a mesma estrutura canônica. A transformação lida com diferenças de caminho (aninhado versus plano), diferenças de nomenclatura (camelCase versus PascalCase versus snake_case) e diferenças de formato (datas, números, moedas).
Desafios e soluções comuns de mapeamento
O mapeamento de dados está cheio de casos extremos. Aqui estão os problemas mais comuns e como resolvê-los.
| Desafio | Exemplo | Solução |
|---|---|---|
| Campos ausentes | eBay não envia e-mail de cliente para finalização de compra de convidado | Padrão para string vazia, sinalizador para revisão manual |
| Diferentes formatos de data | Shopify: ISO 8601, Amazon: ISO 8601, eBay: formato dos EUA às vezes | Analise com uma biblioteca (dayjs, date-fns), armazene sempre como ISO 8601 |
| Preço como float vs inteiro | Shopify: "19,99" (string), Amazon: 19,99 (flutuante) | Multiplique por 100, arredonde e armazene como centavos inteiros |
| Divisão de nomes | Um campo: "John Smith" vs dois campos: primeiro/último | Dividir no último espaço, tratar casos extremos (Jr., III, van der) |
| Formatação de endereço | EUA: indicar como código de duas letras, Reino Unido: sem estado, DE: formato diferente | Normalizar para endereço estruturado (linha1, linha2, cidade, estado, postal, país) |
| Formatos de número de telefone | "+1 (555) 123-4567" versus "5551234567" versus "+15551234567" | Elimina não dígitos, analisa com libphonenumber, armazena no formato E.164 |
| Unidades de peso | Shopify: libras/onças, Amazon: configurável, eBay: varia | Converta tudo em gramas internamente, converta saída por canal |
| HTML em campos de texto | Descrição com tags HTML versus exigência de texto simples | Remover HTML para canais de texto simples, preservar para canais HTML |
| Incompatibilidades de enum | Status do pedido: "pago" vs "Concluído" vs "CONFIRMADO" | Mapear para enum interno via tabela de pesquisa |
| String nula vs vazia | Algumas APIs distinguem null (não fornecido) de "" (explicitamente vazio) | Normalize para nulo para ausente, "" para explicitamente vazio |
Conversão de unidades
Erros de conversão de unidades causam danos financeiros reais. Um produto listado com 2,2 kg em seu site e exibido como 2,2 libras na Amazon significa que as estimativas de custos de envio estão erradas, os cálculos de peso dimensional estão errados e os clientes recebem um produto duas vezes mais pesado do que o esperado.
Conversão de Peso
| De | Para gramas | Para onças | Para Libras | Para Quilogramas |
|---|---|---|---|---|
| 1 grama | 1 | 0,03527 | 0,002205 | 0,001 |
| 1 onça | 28.3495 | 1 | 0,0625 | 0,02835 |
| 1 libra | 453.592 | 16 | 1 | 0,45359 |
| 1 quilograma | 1000 | 35.274 | 2.20462 | 1 |
Regra: Armazene todos os pesos em gramas internamente. Converta a saída para qualquer unidade que cada canal exija. Nunca confie no rótulo da unidade dos dados recebidos – valide se o valor faz sentido para a categoria do produto. Um laptop pesando 2 gramas está obviamente em quilogramas.
Conversão de dimensão
As dimensões são igualmente traiçoeiras. Amazon US espera polegadas. Amazon DE espera centímetros. Seu software de remessa pode precisar de milímetros.
Regra: Armazene todas as dimensões em milímetros internamente. Converta saída por canal. Valide se as dimensões são fisicamente plausíveis.
Conversão de moeda
O manuseio de várias moedas adiciona outra camada. Seu modelo canônico armazena preços na menor unidade da moeda base (centavos para dólares americanos, centavos para libras esterlinas, centavos para euros).
Para pedidos internacionais, armazene o valor da moeda original e o valor da moeda base convertida com a taxa de câmbio utilizada. Isso cria uma trilha de auditoria para discrepâncias relacionadas à moeda.
Padrões de normalização de dados
Os dados brutos do mercado são confusos. A normalização limpa tudo antes de entrar no modelo canônico.
Normalização de texto
- Cortar espaços em branco: espaços iniciais e finais são comuns em respostas de API
- Normalizar Unicode: Converta caracteres de largura total, aspas inteligentes e caracteres especiais em seus equivalentes ASCII quando apropriado
- Padronização de caso: armazene dados internos em um caso consistente (por exemplo, MAIÚSCULAS para códigos de países, maiúsculas de títulos para nomes, minúsculas para e-mails)
- Decodificação de entidade HTML:
&para&,<para<, etc.
Normalização de endereço
Os endereços são o tipo de dados mais inconsistente entre canais. Um pipeline de normalização deve:
- Analise endereços de texto livre em componentes estruturados (rua, cidade, estado, postal, país)
- Valide os códigos postais em relação às regras de formato do país
- Normalize o país para códigos ISO 3166-1 alfa-2 (EUA, GB, DE - não "Estados Unidos", "Reino Unido", "Alemanha")
- Normalize estado/província para abreviações padrão
- Valide se as combinações cidade/estado/postal são geograficamente consistentes
Normalização de SKU
SKUs de fontes diferentes podem usar formatos diferentes para o mesmo produto:
- Fornecedor: "ABC-001-BLK-L" -Amazon: "ABC001BLKL"
- Shopify: "abc-001-preto-grande"
- eBay: "ABC 001 Preto L"
Seu modelo canônico deve usar um único formato de SKU interno e manter uma tabela de pesquisa mapeando formatos de SKU externos para IDs internos.
Manipulação de formato de API
APIs diferentes retornam dados em formatos diferentes. Sua camada de transformação deve lidar com todos eles.
JSON (Shopify, Walmart, Loja TikTok)
A maioria das APIs modernas usa JSON. A análise é simples, mas observe:
- Precisão numérica: números JSON podem perder precisão para números inteiros grandes (IDs de pedido acima de 2^53). Analise como strings, se necessário.
- Estruturas aninhadas: o Shopify aninha os endereços de envio nos pedidos dentro da resposta. Use a navegação de caminho adequada.
- Paginação: baseada em cursor (Shopify) ou baseada em página. Lidar com a limitação de taxa entre páginas.
XML (relatórios Amazon SP-API, eBay)
XML adiciona complexidade com namespaces, atributos versus elementos e declarações de codificação.
- Manuseio de namespace: os relatórios da Amazon usam namespaces XML que devem ser registrados antes que as consultas XPath funcionem
- Seções CDATA: o conteúdo do texto pode ser agrupado em CDATA, que alguns analisadores removem e outros preservam
- Codificação de caracteres: sempre analise como UTF-8. Alguns feeds legados declaram ISO-8859-1.
CSV/TSV (Google Shopping, arquivos simples da Amazon)
Canais baseados em feed aceitam dados tabulares.
- A ordem das colunas é importante: alguns feeds dependem da posição e não do cabeçalho
- Escape: Campos contendo vírgulas devem ser colocados entre aspas. Os campos que contêm aspas devem usar aspas duplas.
- Codificação: BOM (Byte Order Mark) no início do arquivo causa falhas de análise em alguns sistemas. Tire-o.
- Terminações de linha: Windows (CRLF) vs Unix (LF). Normalize antes de analisar.
EDI (varejo empresarial, 3PLs)
O intercâmbio eletrônico de dados ainda é usado por grandes varejistas e 3PLs. Documentos EDI (pedido de compra 850, aviso prévio de envio 856, fatura 810) usam formatos de largura fixa ou separados por delimitadores definidos pelos padrões X12 ou EDIFACT.
Tratamento de erros na transformação
Quando os dados não correspondem ao esquema esperado, a camada de transformação deve decidir: falha, padrão ou sinalização.
Matriz de Estratégia
| Tipo de erro | Estratégia | Exemplo |
|---|---|---|
| Campo obrigatório ausente | Falhar (rejeitar o registro) | Encomende sem email do cliente |
| Campo opcional ausente | Valor padrão | Nenhum número de telefone — o padrão é nulo |
| Formato inválido | Tentativa de correção, sinaliza se não for possível | Data "15/03/2026" analisada como ISO |
| Valor fora do intervalo | Sinalizar para revisão | Peso de 0 gramas (provavelmente em falta) |
| Valor enum desconhecido | Mapear para "outro", sinalizar para revisão | Novo método de envio não está na pesquisa |
| Problemas de codificação | Limpar e registrar | Mojibake em títulos de produtos |
| Incompatibilidade de versão do esquema | Transformar usando adaptador de versão | Resposta da API v2 ao manipulador v3 |
Pipeline de validação
Cada registro deve passar por um pipeline de validação após a transformação:
- Validação de esquema: o registro corresponde à estrutura esperada?
- Validação de tipo: Os números são realmente números, as datas são realmente datas?
- Validação da regra de negócio: O total do pedido é positivo? O endereço de entrega é em um país que você atende?
- Validação referencial: O SKU existe no seu catálogo de produtos?
Os registros que falham na validação são colocados em quarentena – armazenados em uma fila de erros para revisão manual, em vez de serem descartados silenciosamente ou processados com dados incorretos.
Para monitorar essas falhas de validação, consulte Monitoramento de integração.
Versionamento e gerenciamento de mudanças
As APIs mudam. Shopify apresenta uma nova versão da API a cada trimestre. A Amazon atualiza os modelos SP-API periodicamente. O eBay descontinua endpoints legados. Sua camada de mapeamento deve lidar com essas mudanças sem tempo de inatividade.
Estratégia de versionamento
- Fixar versões da API: sempre especifique a versão da API que você está chamando. Shopify permite solicitar
2025-01. Amazon SP-API usa versões de modelo desatualizadas. - Versifique seus mapeadores: quando uma API de canal for alterada, crie uma nova versão do mapeador em vez de modificar a existente. Execute ambas as versões em paralelo durante a transição.
- Testes de regressão automatizados: para cada mapeador, mantenha um conjunto de amostras de entradas e resultados esperados. Quando um mapeador muda, os testes detectam regressões não intencionais.
- Monitoramento de descontinuação: inscreva-se em registros de alterações da API e notificações de desativação. Planeje as migrações 60 dias antes das datas de suspensão de uso.
Para obter a arquitetura de integração completa, consulte a postagem principal: The Ultimate eCommerce Integration Guide.
Perguntas frequentes
Como lidar com campos que existem em um canal, mas não em outro?
Seu modelo canônico inclui o superconjunto de todos os campos. Ao transformar dados de entrada de um canal que não possui um campo, defina-o como nulo ou como um padrão sensato. Ao transformar a saída para um canal que não aceita um campo, basta omiti-lo. O modelo canônico atua como um tradutor universal – nem todo idioma tem uma palavra para cada conceito, e isso é bom.
Qual é a melhor biblioteca para transformação de dados em uma pilha Node.js?
Para transformações JSON, bibliotecas como JSONata, Lodash (para acesso e manipulação de caminho) e Zod (para validação) cobrem a maioria das necessidades. Para XML, use fast-xml-parser para análise e xmlbuilder2 para construção. Para CSV, Papa Parse lida bem com casos extremos. Para pipelines ETL complexos, considere Apache NiFi ou funções de transformação personalizadas com testes de unidade completos.
Como testar mapeamentos de dados sem acessar APIs ativas?
Registre respostas reais da API como acessórios e use-as em testes unitários. Cada mapeador deve ter um conjunto de testes abrangente com exemplos do mundo real, casos extremos (campos vazios, comprimentos máximos, caracteres especiais) e casos de erro (dados malformados). Execute esses testes em CI/CD em cada commit que modifica o código de mapeamento. Ferramentas como Nock (Node.js) ou WireMock (Java) podem simular endpoints de API para testes de integração.
Devo usar uma ferramenta ETL ou escrever um código de transformação personalizado?
Para integrações padrão de comércio eletrônico com plataformas conhecidas, o código personalizado em sua camada de aplicativo (Node.js/TypeScript ou Python) é mais fácil de manter do que uma ferramenta ETL separada. As plataformas ETL (Fivetran, Airbyte, Apache NiFi) agregam valor quando você integra mais de 20 fontes de dados com pipelines de transformação complexos. Para integrações de comércio eletrônico de 3 a 8 canais, mapeadores específicos com boa cobertura de teste são mais simples e depuráveis.
O que vem a seguir
O mapeamento de dados é a base pouco glamorosa que torna a integração multicanal confiável. Quando sua camada de transformação lida com todos os casos extremos normalmente, o resto da sua pilha de integração opera com dados limpos, consistentes e validados – e as sessões de depuração noturnas desaparecem.
Explore os serviços de integração da ECOSIRE para mapeadores de dados pré-construídos que conectam o Odoo a mais de 15 mercados ou entre em contato com nossa equipe para discutir os requisitos de transformação personalizados para sua integração.
Publicado por ECOSIRE — ajudando empresas a escalar com soluções baseadas em IA em Odoo ERP, Shopify eCommerce e OpenClaw AI.
Escrito por
ECOSIRE TeamTechnical Writing
The ECOSIRE technical writing team covers Odoo ERP, Shopify eCommerce, AI agents, Power BI analytics, GoHighLevel automation, and enterprise software best practices. Our guides help businesses make informed technology decisions.
ECOSIRE
Amplie sua loja Shopify
Serviços personalizados de desenvolvimento, otimização e migração para comércio eletrônico de alto crescimento.
Artigos Relacionados
Geração de conteúdo de IA para comércio eletrônico: descrições de produtos, SEO e muito mais
Dimensione o conteúdo de comércio eletrônico com IA: descrições de produtos, meta tags de SEO, cópia de e-mail e mídia social. Estruturas de controle de qualidade e guia de consistência da voz da marca.
Preços dinâmicos baseados em IA: otimize a receita em tempo real
Implemente preços dinâmicos de IA para otimizar a receita com modelagem de elasticidade de demanda, monitoramento de concorrentes e estratégias de preços éticos. Guia de arquitetura e ROI.
Detecção de fraude por IA para comércio eletrônico: proteja a receita sem bloquear as vendas
Implemente a detecção de fraudes por IA que detecte mais de 95% das transações fraudulentas, mantendo as taxas de falsos positivos abaixo de 2%. Pontuação de ML, análise comportamental e guia de ROI.
Mais de eCommerce Integration
Comércio Composable: O Guia de Arquitetura MACH para 2026
Domine o comércio combinável com a arquitetura MACH em 2026. Aprenda microsserviços, estratégias API-first, nativas da nuvem e sem cabeça para comércio eletrônico escalonável.
Conector Odoo eBay: listagem, pedidos e sincronização de estoque
Configure o Odoo eBay Connector para Odoo 19. Gerencie listagens, automatize a sincronização de pedidos, sincronize estoque, lide com devoluções e gerencie contas de várias lojas do eBay no Odoo.
Integração Shopify + Odoo ERP: o guia completo
Guia abrangente para integrar Shopify com Odoo ERP – sincronização de estoque, gerenciamento de pedidos, dados de clientes, relatórios financeiros e fluxos de trabalho de automação.
Gerenciando devoluções e trocas no Shopify
Guia completo para gerenciamento de devoluções do Shopify: elaboração de políticas, fluxos de trabalho automatizados, logística reversa, processamento de trocas e redução lucrativa das taxas de devolução.
Headless Shopify com Hydrogen: crie vitrines personalizadas de alto desempenho
Guia completo para construir vitrines Shopify sem interface com estrutura Hydrogen, cobrindo Remix, API Storefront, hospedagem Oxygen e otimização de desempenho.
Sincronização de estoque multicanal: evitando rupturas de estoque e vendas excessivas
Guia de sincronização de inventário multicanal. Abrange métodos de sincronização em tempo real, alocação de estoque de segurança, integração de ERP, prevenção de vendas excessivas e gerenciamento de armazém.