Cómo importar XML al catálogo consolidado

El catálogo consolidado reúne datos de proveedores en una sola estructura de productos. XML y YML son formatos habituales para proveedores y ERP.

El catálogo consolidado de Eofferix reúne productos, ofertas, categorías, atributos, precios, stock e imágenes de distintas fuentes en un solo catálogo de trabajo. Los proveedores suelen enviar catálogos en XML; ERP como SAP ERP, Oracle NetSuite, Microsoft Dynamics 365, Odoo, 1C/CommerceML y otros pueden exportar datos en el mismo formato. YML también es XML: usa sintaxis XML y una estructura de feed de productos.

La fuente se puede cargar desde el ordenador o recibirse automáticamente según una programación:

  • desde una URL directa o una URL con autorización;
  • desde email;
  • por FTP, FTPS o SFTP;
  • desde almacenamiento en la nube;
  • desde CommerceML, la API de un proveedor u otro módulo de fuente compatible;
  • desde un archivo ZIP si contiene un archivo XML/YML.

Después de seleccionar la fuente, Eofferix analiza el archivo y crea un snapshot XML. El snapshot muestra una versión compacta de los datos de origen: nodos, elementos, atributos únicos y ejemplos de valores, no todo el archivo completo.

1. Crea un perfil de importación al Catálogo consolidado

Abre app.eofferix.com/profiles, haz clic en "Nuevo perfil", introduce un nombre de perfil y añade una descripción breve de la fuente. El nombre suele identificar al proveedor o canal, por ejemplo Partner1. Después elige la carga al catálogo consolidado.

Creación de un perfil de importación al catálogo consolidado
Primero se crea el perfil de importación; después se configura su fuente de datos.

Si el archivo XML está en tu ordenador, elige "Subir un archivo nuevo" al crear el perfil de importación. Después de la carga, el perfil detecta el formato, prepara el XML de trabajo y abre los ajustes de importación al catálogo consolidado.

Carga de un archivo XML al crear un perfil de importación al catálogo consolidado
El archivo XML se puede cargar directamente en el perfil de importación.

Si el XML debe recibirse regularmente desde una URL, email, FTP/FTPS/SFTP, almacenamiento en la nube o CommerceML, primero crea una fuente en Fuentes y después selecciónala en el perfil de importación. La fuente puede actualizarse aparte de los ajustes de asignación.

2. Configura las claves con las que el servicio identificará el producto

Selecciona los campos de identificación del producto y de la oferta. Usa valores únicos y estables, como id, SKU, ID externo o una combinación de campos. Estas claves indican al perfil qué registro crear y qué registro actualizar en importaciones posteriores.

Selección de campos de identificación de producto y oferta para importación XML
Elige los campos con los que el servicio comparará los datos de la fuente con productos y ofertas.

Después configura las reglas de importación: si se crean productos y ofertas nuevos, si se actualizan los registros encontrados y qué hacer con valores vacíos, precio cero y stock cero. Estos parámetros son importantes para un feed XML regular porque definen cómo cada archivo nuevo afecta al catálogo existente.

Reglas de creación, actualización y valores vacíos durante la importación XML
Las reglas de importación controlan la creación, la actualización y el comportamiento con valores vacíos.

Los ajustes de limpieza definen qué ocurre con los registros que ya existen en el catálogo pero no están en el XML actual: dejarlos sin cambios, eliminarlos, quitarles la publicación o poner el stock a cero. El ámbito se selecciona aparte: fuente actual, registros de la fuente actual sin otros vínculos o todo el catálogo.

Ajustes de limpieza para registros ausentes después de la importación XML
La limpieza se aplica al ámbito seleccionado del catálogo después de procesar la fuente.

3. Configura el snapshot XML

Después de guardar el perfil se abre el snapshot XML: una versión compacta del archivo de origen donde se configuran la estructura final y las transformaciones.

En el snapshot XML, primero encuentra el nodo que se repite para cada producto. Puede ser product, offer, item u otro nodo propio del proveedor. Identifica visualmente el nodo de producto, haz clic en él y asígnale el rol "Producto". Si el XML tiene ofertas separadas, asigna el rol "Oferta" al nodo repetido de la oferta.

Después haz clic en los valores dentro del nodo XML seleccionado y elige qué campo del catálogo consolidado debe recibirlos: nombre, SKU, precio, stock, categoría, descripción, imagen o atributo.

Animación de configuración del snapshot XML: seleccionar nodo de producto y asignar SKU
Primero el nodo XML product se marca como producto; después el valor sku se asigna al campo SKU del producto.

Asignaciones habituales en una importación XML:

  • name - nombre del producto;
  • sku, vendorCode o article - SKU;
  • price - precio o precio de compra;
  • stock o quantity - stock;
  • category o ruta de categoría - categoría del catálogo;
  • image o picture - imagen del producto;
  • property, param o nodos similares - atributos del producto.

Si los atributos llegan como una lista repetida, donde un nodo XML contiene el nombre del atributo y un nodo vecino contiene el valor, usa el ajuste "Atributos". Allí se selecciona el nodo repetido de propiedad, la ruta al nombre y la ruta al valor. Si un atributo llega como un nodo fijo separado, se puede asignar como campo separado o crear un nuevo atributo del catálogo.

4. Qué se puede transformar durante la importación

La asignación no tiene por qué copiar el valor exactamente como llega. Para cada valor XML se pueden configurar transformaciones secuenciales: limpiar texto, eliminar espacios extra, reemplazar valores, convertir números, redondear precios, calcular margen o descuento, usar un valor de un nodo XML vecino, crear un campo nuevo o crear una variable.

También se pueden procesar imágenes: guardar el archivo en el servicio, convertirlo a JPG, PNG o WebP, cambiar su tamaño, procesar varios enlaces y aplicar una marca de agua. Asigna un campo de imagen solo cuando la imagen debe entrar en el catálogo o procesarse con estas reglas del perfil.

Crear un nombre de producto más largo

Por ejemplo, el XML puede contener valores separados para nombre, SKU, material y país de fabricación. En los ajustes del campo "Nombre", toma primero el nombre de origen y después añade solo los valores no vacíos: SKU, material entre paréntesis y país.

Transformaciones secuenciales para un nombre de producto compuesto
Las reglas añaden solo los valores XML que no están vacíos.

Antes

<name>Escritorio Nordic</name>
<sku>DESK-NORD-01</sku>
<material>roble macizo</material>
<country>Italia</country>

Después

Escritorio Nordic DESK-NORD-01 (roble macizo), Italia

Preparar un precio paso a paso

Ejemplo de transformaciones secuenciales para el campo Precio. Las transformaciones pueden usar no solo el valor actual, sino también otros nodos del documento para los cálculos: primero limpiar el valor, después comprobar condiciones, usar otro nodo, cambiar el valor y redondear el resultado.

Transformaciones secuenciales de precio usando un nodo XML vecino
Las reglas se ejecutan de arriba abajo y pueden usar nodos XML vecinos.

Antes

<price>129.00</price>
<stock>14</stock>

Después

144

5. Qué ocurre después de la ejecución

Después de la ejecución, el perfil crea o actualiza productos, ofertas, categorías, atributos, precios, stock e imágenes en el catálogo consolidado. El vínculo con la fuente se conserva, por lo que las ejecuciones posteriores actualizan registros coincidentes por las claves seleccionadas en lugar de crear duplicados.

Catálogo consolidado después de ejecutar el perfil de importación Partner1
La columna de fuentes muestra el nombre corto del perfil Partner1 para el producto cargado.

Si el mismo producto llega desde distintas fuentes - XML, tablas, JSON, CommerceML u otro perfil - puede seguir siendo una sola ficha de producto. Los precios y el stock de distintas fuentes se pueden separar por grupos de precios y grupos de almacenes.

Ficha de producto con varios grupos de precios y almacenes después de la importación
Un producto puede almacenar valores de varias fuentes en distintos grupos de precios y almacenes.