ennubo

Catálogos xChange

¿Qué es xChange

El nuevo estándar para trasmisión de catálogos en formato digital de ETIM.

El formato JSON

Estándar para trasmisión de información.

xChange vs BMEcat

Diferencias entre BMEcat y xChange.

Catálogos xChange

Catálogos digitales de producto conforme al nuevo estándar.

¿Qúe es xChange?

xChange es una nueva especificación para transmisión de catálogos de producto, promovida por ETIM.

En un principio ETIM utilizó un estándard abierto de transmisión de catálogos ya existente (BMEcat), al que era posible añadir las definiciones pertinentes para trasnsmitir datos ETIM mediante características establecidas por el usuario, definidas en el propio estándar BMEcat (UDX).

Con el paso del tiempo y en el año 2024, ETIM International, ha creado un estándar propio para trasnsmisión de catálogos, que ha denomindado xChange.

xChange utiliza ficheros con codificación JSON, y envía toda la información relativa a los productos, mediante la misma.

El formato JSON

JSON es un formato de intercambio de datos muy ligero, que proporciona una forma estandarizada y eficiente para que los sitemas de información intercambien datos.

JSON es el acrónimo de JavaScript Object Notation, y ha sido el lenguaje JavaScript el que ha desarrollado este tipo de notación para sus objetos, pero en un periódo de tiempo muy breve, este tipo de notación se impuso a XML, y todos los sistemas y lenguajes lo manejan, ya que presenta evidentes ventajas frente a él.

No es nuestro propósito explicar la sintaxis de los fichero JSON, pero su estructura es tan sencilla y evidente, que le podemos echar un rápido vistazo con un ejemplo.

Supongamos que queremos organizar la información de nuestra biblioteca. De cada libro queremos indicar su autor, su título y el número de páginas que contiene. La información estructurada con notación JSON para un libro, sería algo como esto:


{
	"titulo" : "Platero y yo",
	"autor" : "Juan Ramón Jimenez",
	"paginas" : 120
}
							

Cada elemento "libro" es un objeto JSON en si mismo, con unas determinadas propiedades definidas: título, autor y páginas.

Los valores de las propiedades de estos objetos JSON, pueden ser alfanumericos (como título), numéricos (como páginas), logicos (con valores true o false) e incluso otro objeto JSON.

De esta manera, un objeto "biblioteca" puede ser una colección (array) de objetos "libro":


{
	[
	 {
		"titulo" : "Platero y yo",
		"autor" : "Juan Ramón Jimenez",
		"paginas" : 120
	 },
	 {
		"titulo" : "Matar a un Ruiseño",
		"autor" : "Harper Lee",
		"paginas" : 315
	 }
	]
}
							

Este nivel de "anidación" interna no tiene límite, ya que cualquier elemento de un objeto JSON puede ser a su vez otro objeto JSON, o una lista de objetos, o un simple valor, y resulta muy sencillo y eficiente, representar structuras muy complejas como las que pueden ser necesarias para un catálogo de artícilos con todos sus datos.

xChange vs BMEcat

La principal diferencia entre las especificación BMEcat y xChange es la tecnología de intercambio de datos utilizada, XML para BMEcat y JSON para xChange.

Este ascpecto en principio es algo que no nos debe preocupar: la aplicación que utilicemos para generar los ficheros que necesitamos para transmitir nuestro catálogo en uno u otro formato, se encargará de generar el fichero según la especificación correspondiente.

Otra diferencia, es que al ser xChange una definición más reciente (año 2024), icluye nuevas características y atributos para los artículos que en BMEcat no estaban definidias, sobre todo en lo relativo a información de seguridad y medioambiental.

Si bien estas diferencias no deben ser de gran preocupación para nosotros y el programa que utilicemos para generar uno u otro formato ya se encargará de tratarlas, solicitarnos los datos adecuados y validarlos antes de su envío, hay una diferencia sustancial en cuanto a la organización de nuestro catálogo se refiere y que debemos conocer.

En un catálogo BMEcat hay artículos que tienen carcaterísticas técnicas, que tienen precios, que se presentan en diferentes embalejes, que a su vez pueden tener accesorios... toda la información está estructurada en torno al artículo.

xChange introduce un nuevo concepto: EL PRODUCTO. En xChange se manejan productos (products en la definición original) y por otra parte se manejan lo que denominaremos ARTÍCULOS (trade items en la definición original). El producto es que que tiene los datos técnicos, y el artículo es el objeto que vendemos y por tanto es el que tiene los precios, los embalejes... Un producto puede dar lugar a muchos artículos, y un artículo solo puede estar formado por un producto.

A menudo se presenta este aspecto como una facilidad para manejar diferentes tamaños o colores de un artículo, pero no se trata de eso, es mucho más y completamente diferente. Un color (por ejemplo) es una propiedad técnica de nuestro objeto, y si el color cambia también lo hace nuestro producto.

Intentaremos clarificar la dieferencia con un ejemplo. Supongamos que nuestra actividad es la de una central lechera. Recibimos una materia prima que es la leche que proviene de nuestras vacas y que sometemos a determinados procesos de filtrado, higienización, centrifugado,... (todos nuestros procesos productivos) con los que obtenemos determinados PRUDUCTOS: leche entera, leche desnatada, nata y mantequilla. ¿Termina aquí nuestro proceso de fabricación? ¿Son estos productos lo que vendemos? La respuesta a ambas cuestiones es NO, porque en realidad, la leche la envasamos en tetrabricks y en botellas de plástico, y aunque el producto es el mismo en ambos envases (lecha entera o lehe desnatada), el artículo (trade item) es diferente: tetrabrick de leche entera, botella de leche desnatada, ...

Seguramente los tatrabricks se emblistarán de 6 en 6 y se harán palets de un determindo número de unidades, pero eso ya son "embalajes" de cada uno de los artículos (trade items). Lo importante es darnos cuenta que las características epecíficas que definen la leche (densidad, contenido en grasa, kCal/gr, ... ) son del producto y no del artículo y por tanto se definirán a nivel de producto (lenche entera, leche desnatada) y no a nivel de artliculo (tetrabrick, botella)

Otro ejemplo de un entorno más industrial de este tipo de diferenciación entre producto y artículo, puede ser el caso de una bombilla (producto) , que podemos vender empaquetadas en cajas con 1 unidad (artículo) o emblistados con 3 unidades en cada paquete. Nuestro producto es la bombilla y será el que tenga sus caraterísticas ETIM definidas ( consumo, flujo lumínico, temperatura de color,...) mientras que nuestros artículos (trade items) serán la caja de una unbidad y el blister de 3 bombillas, que serán los que a su vez tengan definidos los precios, los embalejes, etc...

Catálogos xChange

Un catálogo xChange constará de un fichero JSON que definirá con su gerarquía obligatoria las caracteristicas de los artículos que se van a transmitir. Esta gerarquía incluye las características ETIM de los productos convenientemente codificadas, así como toda la infomación adicional de los artículos: fotos, certificados, declaraciones,...

Igual que en BMEcat existen diferentes tipos de transacciones para enviar catálogos completos o parte de los mismos, en xChange existe un campo denominado "CatalogueType" quer puede tomar 2 valores: FULL o CHANGE.

El tipo FULL indica al receptor que el catálogo es completo, todo lo que no esté en el catálogo no existe y ha de considerarse como anulado. Con el tipo CHANGE se indica que el catálogo es parcial y modifica un catálogo anterior, y es obligatorio indicar la versión del catálogo al que modifica.

Puede obtener información más detallada sobre el formato xChange, el el sitio web de ETIM Internacional.