Parte de nuestra serie eCommerce Integration
Leer la guía completaMapeo y transformación de datos: manejo de diferentes API y formatos de datos
Cada plataforma de comercio electrónico habla un idioma diferente. Amazon envía pedidos como XML con objetos de dirección anidados. Shopify devuelve JSON con campos de cadena planos. eBay utiliza una combinación de REST y XML-RPC heredado. WooCommerce incorpora metadatos en matrices de valores clave. Su ERP espera que todo esté en un formato interno específico con tipos de datos validados.
El mapeo y la transformación de datos es la capa de traducción que hace que la integración multicanal funcione. Hágalo bien y los datos fluirán silenciosamente entre sistemas. Si lo hace mal, pasará horas depurando por qué los números de teléfono de los clientes están poblando el campo de la ciudad o por qué los pesos de los productos están desviados en un factor de 2,2.
Conclusiones clave
- Un modelo de datos canónico (estándar interno) elimina el mapeo N a N en favor de N a 1 más 1 a N
- Los errores de conversión de unidades son el error de mapeo de datos más común y más costoso en el comercio electrónico transfronterizo
- Análisis defensivo: valida cada campo, establece de forma predeterminada cada valor faltante y evita fallos en cascada
- Versione sus asignaciones junto con su código; Los cambios en la API rompen las integraciones silenciosamente sin esquemas versionados
El modelo de datos canónico
Sin un modelo canónico, conectar 5 canales a su ERP requiere 10 asignaciones únicas (5 entrantes + 5 salientes), cada una de las cuales maneja las peculiaridades del otro sistema. Agregar un sexto canal requiere 2 asignaciones más.
Con un modelo canónico, cada canal se asigna hacia y desde un único formato interno. Agregar un sexto canal requiere solo 1 nuevo mapeador entrante y 1 nuevo mapeador saliente, independientemente de cuántos otros canales existan.
Diseñando el modelo canónico
Su modelo canónico debería ser:
- Superconjunto de todos los canales: incluya todos los campos que cualquier canal pueda necesitar, incluso si algunos canales no usan todos los campos
- Fuertemente escrito: las fechas son ISO 8601, los pesos están en gramos, las monedas usan códigos ISO 4217, los precios son números enteros (centavos), no flotantes.
- Versionado: los cambios de esquema son explícitos y compatibles con versiones anteriores.
- Documentado: cada campo tiene una descripción, tipo de datos, regla de validación y mapeo de origen.
Ejemplo: modelo de orden canónico
Un orden canónico simplificado:
| Campo | Tipo | Fuente: Shopify | Fuente: Amazonas | Fuente: eBay |
|---|---|---|---|---|
| ID de pedido externo | cadena | pedido.id | ID de pedido de Amazon | ID de pedido |
| clienteCorreo electrónico | cadena | pedido.correo electrónico | Información del comprador.Correo electrónico del comprador | TransactionArray.Transaction.Buyer.Email |
| nombre de envío | cadena | pedido.dirección_envío.nombre | Dirección de envío.Nombre | Dirección de envío.Nombre |
| elementos de línea[].sku | cadena | elementos_linea[].sku | Artículos de pedido[].SellerSKU | TransactionArray.Transaction.Item.SKU |
| artículos de línea[].cantidad | entero | elementos_linea[].cantidad | ArtículosdePedido[].CantidadOrdenada | TransactionArray.Transaction.CantidadComprada |
| artículos de línea[].priceInCents | entero | line_items[].precio * 100 | Artículos de pedido[].Precio del artículo.Monto * 100 | TransactionArray.Transaction.TransactionPrice * 100 |
| moneda | cadena (ISO 4217) | orden.moneda | OrderTotal.CurrencyCode | TransactionArray.Transaction.AmountPaid.currencyID |
| método de envío | enumeración | pedido.líneas_envío[0].título | Nivel de servicio de envío | Servicio de envío seleccionado. Servicio de envío |
| fecha de pedido | cadena (ISO 8601) | order.created_at | Fecha de compra | Fecha de creación |
Observe cómo cada fuente se asigna a la misma estructura canónica. La transformación maneja diferencias de ruta (anidadas versus planas), diferencias de nombres (camelCase versus PascalCase versus Snake_case) y diferencias de formato (fechas, números, monedas).
Desafíos y soluciones comunes de mapeo
El mapeo de datos está lleno de casos extremos. A continuación se detallan los problemas más comunes y cómo solucionarlos.
| Desafío | Ejemplo | Solución |
|---|---|---|
| Campos faltantes | eBay no envía correo electrónico al cliente para realizar el pago como invitado | Predeterminado a cadena vacía, marca para revisión manual |
| Diferentes formatos de fecha | Shopify: ISO 8601, Amazon: ISO 8601, eBay: formato estadounidense a veces | Analizar con una biblioteca (dayjs, date-fns), almacenar siempre como ISO 8601 |
| Precio como flotante vs entero | Shopify: "19,99" (cadena), Amazon: 19,99 (flotante) | Multiplicar por 100, redondear, almacenar como centavos enteros |
| División de nombres | Un campo: "John Smith" vs dos campos: primero/último | Dividir en el último espacio, manejar casos extremos (Jr., III, van der) |
| Formato de dirección | EE. UU.: estado como código de dos letras, Reino Unido: sin estado, DE: formato diferente | Normalizar a dirección estructurada (línea1, línea2, ciudad, estado, postal, país) |
| Formatos de números de teléfono | "+1 (555) 123-4567" frente a "5551234567" frente a "+15551234567" | Elimina los números que no sean dígitos, analiza con libphonenumber y almacena en formato E.164 |
| Unidades de peso | Shopify: libras/onzas, Amazon: configurable, eBay: varía | Convierta todo a gramos internamente, convierta las salidas por canal |
| HTML en campos de texto | Descripción con etiquetas HTML versus requisito de texto sin formato | Eliminar HTML para canales de texto sin formato, conservar para canales HTML |
| Discrepancias de enumeración | Estado del pedido: "pagado" frente a "Completado" frente a "CONFIRMADO" | Mapa a enumeración interna mediante tabla de búsqueda |
| Cadena nula vs vacía | Algunas API distinguen nulo (no proporcionado) de "" (explícitamente vacío) | Normalizar a nulo si falta, "" si está explícitamente vacío |
Conversión de unidades
Los errores de conversión de unidades causan daños financieros reales. Un producto que pesa 2,2 kg en su sitio y que aparece como 2,2 libras en Amazon significa que las estimaciones de los costos de envío son incorrectas, los cálculos del peso dimensional son incorrectos y los clientes reciben un producto dos veces más pesado de lo esperado.
Conversión de peso
| Desde | a gramos | a onzas | a libras | a kilogramos |
|---|---|---|---|---|
| 1 gramo | 1 | 0,03527 | 0,002205 | 0,001 |
| 1 onza | 28.3495 | 1 | 0,0625 | 0,02835 |
| 1 libra | 453.592 | 16 | 1 | 0,45359 |
| 1 kilogramo | 1000 | 35.274 | 2.20462 | 1 |
Regla: Almacene todos los pesos en gramos internamente. Convierta las salidas a cualquier unidad que requiera cada canal. Nunca confíe en la etiqueta de la unidad de los datos entrantes: valide que el valor tenga sentido para la categoría del producto. Una computadora portátil que pesa 2 gramos obviamente está en kilogramos.
Conversión de dimensión
Las dimensiones son igualmente traicioneras. Amazon EE.UU. espera pulgadas. Amazon DE espera centímetros. Es posible que su software de envío necesite milímetros.
Regla: Almacene todas las dimensiones en milímetros internamente. Convertir salidas por canal. Validar que las dimensiones sean físicamente plausibles.
Conversión de moneda
El manejo de múltiples divisas añade otra capa. Su modelo canónico almacena los precios en la unidad más pequeña de la moneda base (céntimos de USD, peniques de GBP, céntimos de EUR).
Para pedidos transfronterizos, almacene tanto el monto en moneda original como el monto en moneda base convertido con el tipo de cambio utilizado. Esto crea una pista de auditoría para las discrepancias relacionadas con la moneda.
Patrones de normalización de datos
Los datos brutos del mercado son confusos. La normalización lo limpia antes de que ingrese a su modelo canónico.
Normalización de texto
- Recortar espacios en blanco: los espacios iniciales y finales son comunes en las respuestas API
- Normalizar Unicode: convierta caracteres de ancho completo, comillas tipográficas y caracteres especiales a sus equivalentes ASCII cuando corresponda
- Estandarización de casos: almacene datos internos en un formato coherente (por ejemplo, SUPERIOR para códigos de país, Título para nombres, inferior para correos electrónicos)
- Decodificación de entidades HTML:
&a&,<a<, etc.
Normalización de direcciones
Las direcciones son el tipo de datos más inconsistente entre canales. Un proceso de normalización debería:
- Analice direcciones de texto libre en componentes estructurados (calle, ciudad, estado, postal, país)
- Validar códigos postales según las reglas de formato de país
- Normalizar el país según los códigos ISO 3166-1 alfa-2 (EE. UU., GB, DE, no "Estados Unidos", "Reino Unido", "Alemania")
- Normalizar el estado/provincia a abreviaturas estándar
- Validar que las combinaciones ciudad/estado/postal sean geográficamente consistentes
Normalización de SKU
Los SKU de diferentes fuentes pueden usar diferentes formatos para el mismo producto:
- Proveedor: "ABC-001-BLK-L"
- Amazonas: "ABC001BLKL"
- Shopify: "abc-001-negro-grande"
- eBay: "ABC 001 Negro L"
Su modelo canónico debe utilizar un único formato de SKU interno y mantener una tabla de búsqueda que asigne formatos de SKU externos a ID internos.
Manejo del formato API
Diferentes API devuelven datos en diferentes formatos. Tu capa de transformación debe manejarlos todos.
JSON (Shopify, Walmart, Tienda TikTok)
La mayoría de las API modernas utilizan JSON. El análisis es sencillo, pero tenga cuidado con:
- Precisión numérica: los números JSON pueden perder precisión para números enteros grandes (ID de pedido superiores a 2^53). Analice como cadenas si es necesario.
- Estructuras anidadas: Shopify anida direcciones de envío dentro de los pedidos dentro de la respuesta. Utilice la navegación de ruta adecuada.
- Paginación: basada en cursor (Shopify) o basada en páginas. Manejar la limitación de velocidad entre páginas.
XML (informes SP-API de Amazon, eBay)
XML agrega complejidad con espacios de nombres, atributos versus elementos y declaraciones de codificación.
- Manejo de espacios de nombres: los informes de Amazon utilizan espacios de nombres XML que deben registrarse antes de que funcionen las consultas XPath.
- Secciones CDATA: el contenido de texto puede estar empaquetado en CDATA, que algunos analizadores eliminan y otros conservan.
- Codificación de caracteres: analizar siempre como UTF-8. Algunas fuentes heredadas declaran ISO-8859-1.
CSV/TSV (Google Shopping, archivos planos de Amazon)
Los canales basados en feeds aceptan datos tabulares.
- El orden de las columnas importa: algunos feeds dependen de la posición, no del encabezado
- Escapando: los campos que contienen comas deben estar entre comillas. Los campos que contengan comillas deben utilizar comillas dobles.
- Codificación: BOM (marca de orden de bytes) al inicio del archivo provoca errores de análisis en algunos sistemas. Desnúdalo.
- Finales de línea: Windows (CRLF) vs Unix (LF). Normalizar antes de analizar.
EDI (minorista empresarial, 3PL)
El intercambio electrónico de datos todavía lo utilizan los grandes minoristas y los 3PL. Los documentos EDI (orden de compra 850, aviso de envío anticipado 856, factura 810) utilizan formatos de ancho fijo o separados por delimitadores definidos por los estándares X12 o EDIFACT.
Manejo de errores en la transformación
Cuando los datos no coinciden con el esquema esperado, la capa de transformación debe decidir: fallar, predeterminado o marcar.
Matriz estratégica
| Tipo de error | Estrategia | Ejemplo |
|---|---|---|
| Falta campo obligatorio | Fallar (rechazar el registro) | Pedido sin correo electrónico del cliente |
| Falta campo opcional | Valor predeterminado | Sin número de teléfono: el valor predeterminado es nulo |
| Formato no válido | Intentar corregir, marcar si no se puede | Fecha "15/03/2026" analizada como ISO |
| Valor fuera de rango | Marcar para revisión | Peso de 0 gramos (probablemente faltante) |
| Valor de enumeración desconocido | Mapa a "otro", marcar para revisión | Nuevo método de envío no disponible en la búsqueda |
| Problemas de codificación | Limpiar y registrar | Mojibake en títulos de productos |
| La versión del esquema no coincide | Transformar usando el adaptador de versión | Respuesta de API v2 al controlador v3 |
Canal de validación
Cada registro debe pasar por un proceso de validación después de la transformación:
- Validación del esquema: ¿El registro coincide con la estructura esperada?
- Validación de tipo: ¿Son los números en realidad números y las fechas en realidad fechas?
- Validación de reglas de negocio: ¿El pedido es total positivo? ¿La dirección de envío está en un país al que presta servicio?
- Validación referencial: ¿Existe el SKU en tu catálogo de productos?
Los registros que no superan la validación se ponen en cuarentena: se almacenan en una cola de errores para su revisión manual en lugar de eliminarlos o procesarlos silenciosamente con datos incorrectos.
Para monitorear estos errores de validación, consulte Monitoreo de integración.
Control de versiones y gestión de cambios
Las API cambian. Shopify presenta una nueva versión de API cada trimestre. Amazon actualiza los modelos SP-API periódicamente. eBay desaprueba los puntos finales heredados. Su capa de mapeo debe manejar estos cambios sin tiempo de inactividad.
Estrategia de control de versiones
- Pinar versiones de API: especifique siempre la versión de API a la que está llamando. Shopify te permite solicitar
2025-01. Amazon SP-API utiliza versiones de modelos fechadas. - Versiona tus mapeadores: cuando la API de un canal cambia, crea una nueva versión del mapeador en lugar de modificar la existente. Ejecute ambas versiones en paralelo durante la transición.
- Pruebas de regresión automatizadas: para cada asignador, mantenga un conjunto de entradas de muestra y salidas esperadas. Cuando un asignador cambia, las pruebas detectan regresiones no deseadas.
- Monitoreo de obsolescencia: suscríbase a los registros de cambios de API y a las notificaciones de extinción. Planifique las migraciones 60 días antes de las fechas de desuso.
Para conocer la arquitectura de integración completa, consulte la publicación principal: La guía definitiva de integración de comercio electrónico.
Preguntas frecuentes
¿Cómo manejo los campos que existen en un canal pero no en otro?
Su modelo canónico incluye el superconjunto de todos los campos. Al transformar datos entrantes de un canal que carece de un campo, configúrelo en nulo o en un valor predeterminado sensato. Al transformar el canal saliente a un canal que no acepta un campo, simplemente omítalo. El modelo canónico actúa como un traductor universal: no todos los idiomas tienen una palabra para cada concepto, y eso está bien.
¿Cuál es la mejor biblioteca para la transformación de datos en una pila de Node.js?
Para transformaciones JSON, bibliotecas como JSONata, Lodash (para manipulación y acceso a rutas) y Zod (para validación) cubren la mayoría de las necesidades. Para XML, utilice fast-xml-parser para analizar y xmlbuilder2 para construcción. Para CSV, Papa Parse maneja bien los casos extremos. Para canalizaciones ETL complejas, considere Apache NiFi o funciones de transformación personalizadas con pruebas unitarias exhaustivas.
¿Cómo pruebo las asignaciones de datos sin acceder a las API activas?
Registre respuestas API reales como accesorios y utilícelas en pruebas unitarias. Cada mapeador debe tener un conjunto de pruebas completo con ejemplos del mundo real, casos extremos (campos vacíos, longitudes máximas, caracteres especiales) y casos de error (datos con formato incorrecto). Ejecute estas pruebas en CI/CD en cada confirmación que modifique el código de asignación. Herramientas como Nock (Node.js) o WireMock (Java) pueden simular puntos finales de API para pruebas de integración.
¿Debería utilizar una herramienta ETL o escribir un código de transformación personalizado?
Para integraciones de comercio electrónico estándar con plataformas conocidas, el código personalizado en su capa de aplicación (Node.js/TypeScript o Python) es más fácil de mantener que una herramienta ETL separada. Las plataformas ETL (Fivetran, Airbyte, Apache NiFi) agregan valor cuando se integran más de 20 fuentes de datos con procesos de transformación complejos. Para integraciones de comercio electrónico de 3 a 8 canales, los mapeadores diseñados específicamente con una buena cobertura de prueba son más simples y más depurables.
¿Qué sigue?
El mapeo de datos es la base poco glamorosa que hace que la integración multicanal sea confiable. Cuando su capa de transformación maneja cada caso extremo con elegancia, el resto de su pila de integración opera con datos limpios, consistentes y validados, y las sesiones de depuración nocturnas desaparecen.
Explore los servicios de integración de ECOSIRE para obtener mapeadores de datos prediseñados que conecten Odoo con más de 15 mercados, o comuníquese con nuestro equipo para analizar los requisitos de transformación personalizados para su integración.
Publicado por ECOSIRE: ayuda a las empresas a escalar con soluciones impulsadas por IA en Odoo ERP, Shopify eCommerce y 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
Escala tu tienda Shopify
Servicios personalizados de desarrollo, optimización y migración para comercio electrónico de alto crecimiento.
Artículos relacionados
Generación de contenido de IA para comercio electrónico: descripciones de productos, SEO y más
Escale el contenido del comercio electrónico con IA: descripciones de productos, metaetiquetas SEO, textos de correo electrónico y redes sociales. Marcos de control de calidad y guía de coherencia de la voz de marca.
Precios dinámicos impulsados por IA: optimice los ingresos en tiempo real
Implemente precios dinámicos de IA para optimizar los ingresos con modelos de elasticidad de la demanda, monitoreo de la competencia y estrategias de precios éticos. Guía de arquitectura y ROI.
Detección de fraude mediante IA para el comercio electrónico: proteja los ingresos sin bloquear las ventas
Implemente una detección de fraude mediante IA que detecte más del 95 % de las transacciones fraudulentas y mantenga las tasas de falsos positivos por debajo del 2 %. Puntuación de ML, análisis de comportamiento y guía de ROI.
Más de eCommerce Integration
Comercio componible: la guía de arquitectura MACH para 2026
Domine el comercio componible con arquitectura MACH en 2026. Aprenda estrategias de microservicios, API primero, nativas de la nube y sin cabeza para el comercio electrónico escalable.
Conector Odoo eBay: listado, pedidos y sincronización de inventario
Configure Odoo eBay Connector para Odoo 19. Administre listados, automatice la sincronización de pedidos, sincronice inventario, administre devoluciones y administre cuentas de eBay de múltiples tiendas desde Odoo.
Integración de Shopify + Odoo ERP: la guía completa
Guía completa para integrar Shopify con Odoo ERP: sincronización de inventario, gestión de pedidos, datos de clientes, informes financieros y flujos de trabajo de automatización.
Gestionar devoluciones y cambios en Shopify
Guía completa para la gestión de devoluciones de Shopify: diseño de políticas, flujos de trabajo automatizados, logística inversa, procesamiento de cambios y reducción de las tasas de devoluciones de manera rentable.
Shopify sin cabeza con hidrógeno: cree escaparates personalizados de alto rendimiento
Guía completa para crear escaparates Shopify sin cabeza con el marco Hydrogen que cubre Remix, Storefront API, alojamiento Oxygen y optimización del rendimiento.
Sincronización de inventario multicanal: prevención de desabastecimientos y sobreventas
Guía de sincronización de inventario multicanal. Cubre métodos de sincronización en tiempo real, asignación de existencias de seguridad, integración de ERP, prevención de sobreventa y gestión de almacenes.