Pular para o conteúdo principal

Mapeamento e transformação de dados: tratamento de diferentes APIs e formatos de dados

Domine o mapeamento de campos, normalização de dados, conversão de unidades, manipulação de moeda e mapeamento de taxonomia de categoria em APIs de comércio eletrônico e formatos de dados.

E
ECOSIRE Research and Development Team
|15 de março de 202614 min de leitura2.6k Palavras|

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.

Parte da nossa série eCommerce Integration

Leia o guia completo

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:

CampoTipoFonte: ShopifyFonte: AmazonasFonte: eBay
ID do pedido externocordapedido.idID do pedido da AmazonID do pedido
e-mail do clientecordapedido.e-mailBuyerInfo.BuyerEmailTransactionArray.Transaction.Buyer.Email
envioNomecordapedido.endereço_de_envio.nomeEndereçoEnvio.NomeEndereçoEnvio.Nome
itens de linha[].skucordaline_items[].skuItens do pedido[].SellerSKUTransactionArray.Transaction.Item.SKU
lineItems[].quantidadeinteiroitens_linha[].quantidadeItensPedido[].QuantidadeOrdenadoTransactionArray.Transaction.QuantityPurchased
lineItems[].priceInCentsinteiroline_items[].preço * 100OrderItems[].ItemPrice.Amount * 100TransactionArray.Transaction.TransactionPrice * 100
moedacadeia de caracteres (ISO 4217)ordem.moedaOrderTotal.CurrencyCodeTransactionArray.Transaction.AmountPaid.currencyID
método de envioenumpedido.shipping_lines[0].títuloNível de Serviço de NavioShippingServiceSelected.ShippingService
data do pedidocadeia de caracteres (ISO 8601)pedido.criado_atData de compraData 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.

DesafioExemploSolução
Campos ausenteseBay não envia e-mail de cliente para finalização de compra de convidadoPadrão para string vazia, sinalizador para revisão manual
Diferentes formatos de dataShopify: ISO 8601, Amazon: ISO 8601, eBay: formato dos EUA às vezesAnalise com uma biblioteca (dayjs, date-fns), armazene sempre como ISO 8601
Preço como float vs inteiroShopify: "19,99" (string), Amazon: 19,99 (flutuante)Multiplique por 100, arredonde e armazene como centavos inteiros
Divisão de nomesUm campo: "John Smith" vs dois campos: primeiro/últimoDividir no último espaço, tratar casos extremos (Jr., III, van der)
Formatação de endereçoEUA: indicar como código de duas letras, Reino Unido: sem estado, DE: formato diferenteNormalizar 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 pesoShopify: libras/onças, Amazon: configurável, eBay: variaConverta tudo em gramas internamente, converta saída por canal
HTML em campos de textoDescrição com tags HTML versus exigência de texto simplesRemover HTML para canais de texto simples, preservar para canais HTML
Incompatibilidades de enumStatus do pedido: "pago" vs "Concluído" vs "CONFIRMADO"Mapear para enum interno via tabela de pesquisa
String nula vs vaziaAlgumas 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

DePara gramasPara onçasPara LibrasPara Quilogramas
1 grama10,035270,0022050,001
1 onça28.349510,06250,02835
1 libra453.5921610,45359
1 quilograma100035.2742.204621

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: &amp; para &, &lt; 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:

  1. Analise endereços de texto livre em componentes estruturados (rua, cidade, estado, postal, país)
  2. Valide os códigos postais em relação às regras de formato do país
  3. Normalize o país para códigos ISO 3166-1 alfa-2 (EUA, GB, DE - não "Estados Unidos", "Reino Unido", "Alemanha")
  4. Normalize estado/província para abreviações padrão
  5. 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 erroEstratégiaExemplo
Campo obrigatório ausenteFalhar (rejeitar o registro)Encomende sem email do cliente
Campo opcional ausenteValor padrãoNenhum número de telefone — o padrão é nulo
Formato inválidoTentativa de correção, sinaliza se não for possívelData "15/03/2026" analisada como ISO
Valor fora do intervaloSinalizar para revisãoPeso de 0 gramas (provavelmente em falta)
Valor enum desconhecidoMapear para "outro", sinalizar para revisãoNovo método de envio não está na pesquisa
Problemas de codificaçãoLimpar e registrarMojibake em títulos de produtos
Incompatibilidade de versão do esquemaTransformar usando adaptador de versãoResposta 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:

  1. Validação de esquema: o registro corresponde à estrutura esperada?
  2. Validação de tipo: Os números são realmente números, as datas são realmente datas?
  3. Validação da regra de negócio: O total do pedido é positivo? O endereço de entrega é em um país que você atende?
  4. 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.

E

Escrito por

ECOSIRE Team

Technical 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.

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.

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.

Arquitetura de comércio sem cabeça: separando o front-end do back-end

Compare o comércio headless com o monolítico, explore o design API-first com a API Shopify Storefront, front-ends Next.js e opções de plataforma de comércio moderna.