XML

El formato XML es el que más posibilidades nos ofrece a la hora de importar nuestros productos, vamos a ver todos los ejemplos posibles para que no haya dudas a la hora de mapear nuestras columnas con este formato.

NOTA: Para los ejemplos vamos a usar capturas de un feed real con estructura YML, la cual es muy popular entre Ecommerces. Al ser una de las estructuras más complejas, podremos ver un ejemplo de cada tipo de columna. 

XML Nodes (Nodos XML)

Antes de lanzarnos a configurar nuestro "Column mapping" (mapeo de columnas) tenemos que tener claro qué es el "XML Node" y cómo extraerlo de nuestro archivo.

Nodo XML: Se trata del "árbol" de etiquetas que hay hasta la etiqueta cuyas sub-etiquetas queremos importar.

Ejemplos de Nodos XML

En este archivo XML vemos que podemos extraer 2 nodos:

  1. yml_catalog>shop>categories>category : Si queremos importar las categorías.
  2. yml_catalog>shop>offers>offer : Si queremos importar los productos.

El Nodo XML se debe asignar en el campo "XML Node" que aparecerá automáticamente cuando le digamos que nuestro perfil utiliza el tipo de archivo ".xml", ejemplo:

Opencart Import Export PRO Node XML example

Column mapping - Ejemplos

Vamos a usar el mismo archivo que vimos en el ejemplo de los nodos, vamos a ver un ejemplo de mapeo columnas para las categorías y productos que contiene ese archivo.

Mapeo de columnas para las categorías

Paso 1 - Obtener el Nodo XML

Opencart Import Export PRO XML Node categories example

Como ya vimos en el tutorial de "Nodes XML" el nodo para procesar las categorías sería yml_catalog>shop>categories>category.

Una vez establecido el nodo, podremos acceder a las siguientes etiquetas:

  • category: Accederemos al valor de cada etiqueta "category" (Cars, Combustion cars...)
  • category@id: Accederemos al atributo de cada etiqueta "category" llamado "id" (1,2,3..)
  • category@parentId: Del mismo modo, accederemos a los valores del atributo llamado "parentId" (1)

Paso 2 - Configurar el column mapping

Hemos coloreado los campos de texto para poder explicarlo mejor:

  1. Cuadros de texto verdes: Son los nombres de columna que podemos encontrar en nuestro archivo XML.
  2. Cuadros de texto amarillos: Queremos que las columnas "Name" y "Meta title" tenga el mismo valor que el nombre de la categoría (columna "category"), para ello tenemos que poner en "Default value" el nombre de la columna entre corchetes en (aparecen 2 de cada una porque estamos configurando este ejemplo en un Opencart que tiene 2 idiomas instalados "en_gb" y "ru_ru"). Los nombres de las columnas los dejamos tal cual (name_ru_ru, meta_title_en_gb, meta_title_ru_ru) ya que al no existir cogerá por defecto lo que valga la columna "category", la cual si que existe.
  3. Cuadros de texto azules: Aquí hemos puesto el valor por defecto "1" para la columna "status" (la cual no existe en el archivo), de este modo cogerá por defecto el valor "1" para todas las categorías, si no hubiéramos hecho esto, las categorías hubieran sido importadas como deshabilitadas.

Opencart Import Export PRO Categories column mapping example

Mapeo de columnas para los productos

Paso 1 - Obtener el Nodo XML

Opencart Import Export PRO XML Node proudcts example

Como ya vimos en el tutorial de "Nodes XML" el nodo para procesar los productos sería yml_catalog>shop>offers>offer.

Una vez establecido el nodo, podremos acceder a las siguientes etiquetas:

  • @id: Accederemos al atributo "id" de cada etiqueta "offer". (En nuestro ejemplo: "1")
  • @available: Accederemos al atributo "available" de cada etiqueta "offer". (En nuestro ejemplo: "true")
  • model: 3
  • name: Tesla model 3
  • vendor: Tesla
  • prices>price: 35000
  • prices>discount: 60000
  • prices>discount_unit: 2
  • categoryId>0: 1
  • categoryId>1: 3
  • pictures>0: https://mivendor.org/tm3_01.jpg (NOTA: Se requiere configuración adicional, más adelante lo explicamos)
  • pictures>1: https://mivendor.org/tm3_02.jpg (NOTA: Se requiere configuración adicional, más adelante lo explicamos)
  • pictures>2: https://mivendor.org/tm3_03.jpg (NOTA: Se requiere configuración adicional, más adelante lo explicamos)
  • params>param>0@name: Autonomy
  • params>param>0@unit: km
  • params>param>0: 500
  • params>param>1@name: Power
  • params>param>1@unit: kW
  • params>param>1: 147
  • keyword>0@name: Car
  • keyword>1@name: Electric
  • keyword>2@name: super Chargers

Paso 2 - Configurar el column mapping

Hemos coloreado los campos de texto para poder explicarlo mejor:

  1. Cuadros de texto verdes: Son los nombres de columna que podemos encontrar en nuestro archivo XML.
  2. Cuadros de texto rojo: Estas columnas no están en nuestro archivo, pero las habilitamos para que formen parte de la importación mediante los valores por defecto o valores condicionales.
  3. Cuadros de texto amarillos: Valores por defecto.
  4. Cuadros de texto lilas: Valores condicionales.

Información sobre los campos en rojo

Las columnas rojas no existen en nuestro archivo XML, aun así las hemos habilitado y hemos establecido una serie de valores por defecto y valores condicionales para este tutorial, los explicamos a continuación:

  • Meta title (meta_title): Queremos que esta columna adquiera el valor de la columna "Name" (name), por lo que hemos puesto en el valor por defecto (color amarillo) el nombre de la columna "Name" entre corchetes [name].
  • Dis. 1 Priority Default (dis_1_priority_default): Queremos que el valor por defecto de esta columna sea "5", por  lo que lo hemos puesto en el valor por defecto (color amarillo).
  • Dis. 1 Date start Default (dis_1_date_start_default): Queremos que el valor por defecto de esta columna sea "2019-01-01", por  lo que lo hemos puesto en el valor por defecto (color amarillo).
  • Quantity (quantity): Queremos que el valor de esta columna sea "5" cuando el valor de la columna "Status" (@available) sea "true", el caso contrario adquirirá el valor "0". Se trata de un valor condicional (campo de texto lila) aquí está la condición: (@available==true=5:0)

 

Opencart Import Export PRO column mapping import product profile example