El formato ICML es una extensión del formato YML . Le permite cargar información técnica sobre productos al sistema (ID e ID XML de productos, información sobre stock), así como una estructura compleja de catálogos con ofertas comerciales (SKU). Puede generar el archivo de carga usted mismo en el lado de su tienda en línea como se describe a continuación. Para varios CMS hay módulos de integración listos para usar que pueden generar ICML con un catálogo de productos.
Descripción del formato
<?xml version="1.0" encoding="UTF-8"?>
<yml_catalog date="2013-06-20 10:09:18">
<shop>
<name>Интернет-магазин</name>
<company>Интернет-магазин</company>
<categories>
<category id="2">Офисная мебель</category>
<category id="3" parentId="2">
<name>Стеллажи</name>
<picture>http://testbitrix.test/upload/iblock/d2b/d2b25cbdc1f76b8b1672f5e8d1ec6589.JPG</picture>
<picture>http://testbitrix.test/upload/iblock/d2b/d2b25cbdc1f76b8b1672f5e8d1ec6590.JPG</picture>
</category>
<category id="4" parentId="2">Рабочие места</category>
<category id="5" parentId="2">Стулья и кресла</category>
<category id="6">Мягкая мебель</category>
<category id="7" parentId="6">Диваны</category>
<category id="8" parentId="6">Кровати</category>
<category id="9">Мебель для сада</category>
<category id="10">Зеркала</category>
<category id="11">Освещение</category>
<category id="12">Текстиль</category>
</categories>
<offers>
<offer id="115" productId="43" quantity="16">
<url>http://testbitrix.test/catalog/shelves/rack_2_sectional/</url>
<price>14000.00</price>
<purchasePrice>13200.00</purchasePrice>
<categoryId>3</categoryId>
<picture>http://testbitrix.test/upload/iblock/d2b/d2b25cbdc1f76b8b1672f5e8d1ec6589.JPG</picture>
<picture>http://testbitrix.test/upload/iblock/d2b/d2b25cbdc1f76b8b1672f5e8d1ec6590.JPG</picture>
<picture>http://testbitrix.test/upload/iblock/d2b/d2b25cbdc1f76b8b1672f5e8d1ec6591.JPG</picture>
<name>Стеллаж 2-х секционный</name>
<xmlId>82</xmlId>
<productName>Стеллаж 2-х секционный</productName>
<param name="Артикул" code="article">789789</param>
<param name="Размер" code="size">двухъярусный</param>
<param name="Цвет" code="color">белый</param>
<vendor>Abagure</vendor>
<param name="Вес" code="weight">50</param>
<unit code="pcs" name="Штука" sym="шт." />
<vatRate>18</vatRate>
<dimensions>100/50.8/150</dimensions>
<barcode>012485ab</barcode>
<markable>Y</markable>
</offer>
<offer id="116" productId="43" quantity="25">
<url>http://testbitrix.test/catalog/shelves/rack_2_sectional/</url>
<price>14500.00</price>
<purchasePrice>11000.00</purchasePrice>
<categoryId>3</categoryId>
<picture>http://testbitrix.test/upload/iblock/d2b/d2b25cbdc1f76b8b1672f5e8d1ec1501.JPG</picture>
<name>Стеллаж 2-х секционный (оранжевый)</name>
<xmlId>83</xmlId>
<productName>Стеллаж 2-х секционный</productName>
<param name="Артикул" code="article">789789</param>
<param name="Размер" code="size">двухъярусная</param>
<param name="Цвет" code="color">черный</param>
<vendor>Cologio</vendor>
<param name="Вес" code="weight">60</param>
<unit code="pcs" name="Штука" sym="шт." />
<vatRate>none</vatRate>
<dimensions>100/50.8/150</dimensions>
<barcode>012485ab</barcode>
<markable>Y</markable>
</offer>
<offer id="253" productId="155" quantity="20">
<url>http://testbitrix.loc/catalog/textile/sheet_beige/</url>
<price>200.00</price>
<purchasePrice>175.00</purchasePrice>
<categoryId>12</categoryId>
<picture>http://testbitrix.loc/upload/iblock/be7/be7139e39cda62e8c032f3b2ed0106e4.JPG</picture>
<name>Ткань льняная бежевая</name>
<xmlId>66</xmlId>
<productName>Ткань льняная бежевая</productName>
<param name="Артикул" code="article">151642</param>
<param name="Ширина" code="width">150</param>
<param name="Цвет" code="color">бежевый</param>
<unit code="meter" name="Метр" sym="м" />
<vatRate>10</vatRate>
<weight>2.05</weight>
</offer>
<offer id="56" productId="56" quantity="30">
<productActivity>N</productActivity>
<url>http://testbitrix.loc/catalog/summer_collection/rocker/</url>
<price>4250.00</price>
<categoryId>9</categoryId>
<picture>http://testbitrix.loc/upload/iblock/68b/68b955690e0f1f9dacb96cc4248e9c44.jpg</picture>
<name>Кресло-качалка</name>
<xmlId>104</xmlId>
<productName>Кресло-качалка</productName>
<param name="Артикул" code="article">891081</param>
<vendor>Riotto</vendor>
<unit code="pcs" name="Штука" sym="шт." />
</offer>
</offers>
</shop>
</yml_catalog>
Encabezado XML
<?xml version="1.0" encoding="..."?>
El archivo ICML es un documento XML y debe ir precedido de un encabezado XML, por ejemplo, <?xml version="1.0" encoding="UTF-8"?>
. Se recomienda utilizar UTF-8 como codificación.
Elemento <yml_catalog>
<yml_catalog date="2013-08-08 17:00">
<shop>
...
</shop>
</yml_catalog>
El elemento <yml_catalog>
se utiliza como elemento ICML raíz. Solo puede haber uno de esos elementos en un archivo. La etiqueta tiene un atributo obligatorio date
, cuyo valor debe coincidir con la fecha y la hora en que se generó el archivo. Para almacenar y transferir varios directorios, recomendamos utilizar varios documentos xml similares.
Elemento <shop>
<shop>
<name>Мой интернет-магазин</name>
<company>Моя компания</company>
<categories>… </categories>
<offers>… </offers>
</shop>
```
El elemento `<shop>` contiene una descripción de la tienda en línea y el catálogo de productos. La tienda se describe mediante los siguientes elementos:
`<name>`: el nombre de la tienda en línea; Longitud máxima 255 caracteres;
`<company>`: nombre de la empresa;
`<categories>`: un contenedor que contiene categorías de productos;
`<offers>`: un contenedor que contiene descripciones de todos los productos de la tienda en línea.
Todos los elementos no deben duplicarse.
### Elemento `<categories>`
```php
<categories>
<category id="2">Офисная мебель</category>
<category id="3" parentId="2">
<name>Стеллажи</name>
<picture>http://testbitrix.test/upload/iblock/d2b/d2b25cbdc1f76b8b1672f5e8d1ec6589.JPG</picture>
<picture>http://testbitrix.test/upload/iblock/d2b/d2b25cbdc1f76b8b1672f5e8d1ec6590.JPG</picture>
</category>
<category id="4" parentId="2">Рабочие места</category>
<category id="5" parentId="2">Стулья и кресла</category>
<category id="6">Мягкая мебель</category>
<category id="7" parentId="6">Диваны</category>
<category id="8" parentId="6">Кровати</category>
<category id="9">Мебель для сада</category>
<category id="10">Зеркала</category>
<category id="11">Освещение</category>
<category id="12">Текстиль</category>
</categories>
```
El elemento `<categories>` contiene una lista de categorías de productos para la tienda en línea. El elemento `<category>` describe una sola categoría y contiene su nombre. El nombre no debe exceder los 255 caracteres. Cada elemento debe tener el atributo `id` - identificador de categoría, debe ser una secuencia única de caracteres de no más de 255 caracteres. Además, cada elemento `<category>` puede contener el atributo `parentId` - el identificador de la categoría principal, su valor debe ser uno de los identificadores de categoría existentes. Este atributo le permite describir la estructura del directorio anidado. Si la descripción de una categoría de producto no contiene el atributo parentId, la categoría se considera raíz. Además, una categoría se puede describir mediante los siguientes elementos:
* `<name>`: nombre de la categoría, longitud máxima de 255 caracteres.
* `<picture>`: URL de la imagen de la categoría. La etiqueta se puede repetir. La longitud máxima del enlace es de 2000 caracteres.
### Elemento
```php
<offers>
<offer>… </offer>
…
</offers>
El elemento <offers>
contiene una lista de productos y ofertas de productos de la tienda en línea. Cada elemento <offer>
describe el producto y la oferta. El elemento <offers>
debe ser único y los elementos <offer>
pueden ser tantos como desee.
Elemento <offer>
<offer id="115" productId="43" quantity="16">
<url>http://testbitrix.test/catalog/shelves/rack_2_sectional/</url>
<price>14000.00</price>
<purchasePrice>13200.00</purchasePrice>
<categoryId>3</categoryId>
<picture>http://testbitrix.test/upload/iblock/d2b/d2b25cbdc1f76b8b1672f5e8d1ec6589.JPG</picture>
<picture>http://testbitrix.test/upload/iblock/d2b/d2b25cbdc1f76b8b1672f5e8d1ec6590.JPG</picture>
<name>Стеллаж 2-х секционный</name>
<xmlId>82</xmlId>
<productName>Стеллаж 2-х секционный</productName>
<param name="Артикул" code="article">789789</param>
<param name="Размер" code="size">двухъярусная</param>
<param name="Цвет" code="color">белый</param>
<vendor>Riotto</vendor>
<param name="Вес" code="weight">50</param>
<unit code="pcs" name="Штука" sym="шт." />
<vatRate>none</vatRate>
<dimensions>100/50.8/150</dimensions>
<weight>50</weight>
<barcode>012485ab</barcode>
<markable>Y</markable>
</offer>
```
El elemento `<offer>` contiene campos que describen las propiedades tanto del producto como de la oferta, lo que permite que el elemento `<offer>` sea tanto un producto como una oferta comercial. El elemento contiene los atributos obligatorios `id` (ID externo de la propuesta comercial en el sistema) y `productId`, que corresponden al ID de la propuesta comercial y el producto. Si no hay ofertas comerciales en la tienda en línea, los identificadores pueden coincidir. `id` y `productId` no deben tener más de 255 caracteres. Tenga en cuenta que el identificador de la propuesta comercial debe ser único y si, durante la generación, el identificador del producto se copia en el identificador de la propuesta comercial, el identificador puede coincidir con el identificador de otra propuesta comercial, lo que puede tener consecuencias irreparables.
```php
<!-- Конфликт идентификаторов торговых предложений. -->
<offer id="115" productId="43" quantity="16">… </offer>
<offer id="115" productId="115" quantity="18">… </offer>
El elemento <offer>
puede contener el atributo quantity
, que corresponde a la cantidad de un producto (oferta comercial). Cada oferta comercial puede tener su propio número. El número debe ser un número entero o fraccionario con precisión de hasta 3 posiciones decimales, en el rango de 0 a 99,999,999.
Una oferta comercial (producto) se describe mediante los siguientes elementos: <productActivity>
- un indicador de la actividad del producto, el elemento es opcional, si falta el elemento, el producto se considera activo; Para un artículo inactivo, debe enviar N
, en otros casos puede enviar Y
u omitir el elemento; Para desactivar un producto, debe indicar este elemento para todas las ofertas de productos de este producto; Las ofertas de productos individuales no se pueden desactivar; '' 'Tenga en cuenta' '' que si un producto tiene una oferta comercial inactiva, el producto y todas las ofertas comerciales se consideran inactivos.
<url>
: página de la oferta comercial (producto) en la tienda en línea. Es importante especificar el protocolo correcto (http://
o https://
) y el dominio (con o sin www
). Esta URL se utiliza para determinar los productos visualizados por el cliente dentro de la [[Usuarios / GoogleAnalytics | integración con Google Analytics]]; La longitud máxima del enlace es de 2000 caracteres;
<price>
: precio de una oferta comercial (productos); El precio puede ser entero o fraccionario con una precisión de hasta 2 lugares decimales en el rango de 0 a 99,999,999;
<purchasePrice>
: el precio de compra de la oferta comercial (productos), opcional; Si no hay una etiqueta en el archivo, el valor no se restablecerá; El precio de compra puede ser entero o fraccionario con una precisión de hasta 2 posiciones decimales en el rango de 0 a 99,999,999;
<categoryId>
- identificador de la categoría a la que pertenece la oferta comercial (producto); el valor debe ser uno de los identificadores de categoría, si la oferta comercial (producto) está en varias categorías, entonces puede haber varios de esos elementos;
<picture>
- URL de la imagen de la oferta comercial (producto), la etiqueta se puede repetir, no es obligatorio. Se utiliza para mostrar imágenes de vista previa. Puede especificar imágenes en formato jpg, png de no más de 2 MB de tamaño. Es importante especificar el protocolo correcto (http://
o https://
) y el dominio (con o sin www
); de lo contrario, el sistema no podrá mostrar vistas previas del producto. También es importante que el enlace al producto sea directo y que no se realicen redireccionamientos cuando acceda a él. La longitud máxima del enlace es de 2000 caracteres;
<name>
: el nombre de la oferta comercial; Longitud máxima 255 caracteres;
<productName>
: nombre del producto; Longitud máxima 255 caracteres;
<xmlId>
- identificador externo del producto, el elemento es opcional - si la tienda en línea utiliza la descarga de la gama de productos del sistema de almacén (1C, MoySklad), entonces el valor de este elemento corresponde al identificador del producto en este sistema; El campo es una secuencia de caracteres de no más de 255;
<param name="..." code="...">
: parámetro de elemento, donde:
name
: nombre del parámetro del producto; Longitud máxima 255 caracteres;
code
- código de parámetro alfanumérico, caracteres permitidos: a-Z0-9_
, otros caracteres se cortarán, por ejemplo: color
, size
. La longitud máxima del código es de 50 caracteres. Consulte también [[# offer-param-special | parámetros con tratamiento especial]]. La longitud del valor de propiedad de un producto no debe superar los 255 caracteres.
<vendor>
: fabricante del producto, el elemento es opcional; Longitud máxima 255 caracteres;
<unit>
: unidad de medida del artículo, el elemento es opcional;
code
- código alfanumérico de la unidad de medida, caracteres permitidos: a-Z0-9_-
, el primer carácter debe ser a-z
; Longitud máxima 255 caracteres;
name
- nombre completo de la unidad de medida, elemento opcional - si está ausente, al crear, el código se toma como nombre, para la unidad de medida existente no es necesario transferir; Longitud máxima 255 caracteres;
sym
- nombre corto de la unidad de medida, elemento opcional - si está ausente, al crear, el código se toma como el nombre corto, para la unidad de medida existente no es necesario transferir; La longitud máxima es de 5 caracteres;
<vatRate>
: la tasa del impuesto al valor agregado (IVA) para el producto en porcentaje; Para transferir el valor "Sin IVA" utilice none
; el elemento es opcional;
<dimensions>
- Dimensiones del producto en formato Largo / Ancho / Alto. La unidad de medida para cada dimensión es centímetro. Formato: tres números positivos hasta milésimas (0,001), separador de punto decimal. Los números deben estar separados por "/" sin espacios. Si especifica una precisión mayor, el valor se redondea automáticamente al tercer decimal (inclusive) en la parte fraccionaria. El valor máximo permitido es 999 999 999 cm. Al cargar el catálogo, las dimensiones se convertirán en milímetros, ya que la unidad de dimensiones en el sistema son milímetros.
<weight>
: peso del artículo. La unidad de medida es el kilogramo. Formato: un número positivo con una precisión de 0,001 (o 0,000001, según la configuración del CRM "Precisión de peso": gramos o miligramos, respectivamente), el separador de las partes enteras y fraccionarias es un punto. Si especifica una precisión mayor, el valor se redondea automáticamente al tercer decimal (inclusive) en la parte fraccionaria. El valor máximo permitido es 9,999,999 kg. Al cargar el catálogo, el peso se convertirá a gramos, ya que la unidad de peso en el sistema son los gramos. '''Nota'''. El peso se puede especificar con este elemento o con el parámetro de manejo especial <param name="Вес" code="weight"></param>
. Este último se mantuvo por compatibilidad con versiones anteriores. Si el peso para el mismo producto se especifica tanto con el elemento como con el parámetro, se tomará el último valor encontrado. También tenga en cuenta que para un parámetro es posible indicar la unidad de peso, para este elemento (<weight>
) la unidad de medida es siempre kilogramo, y no es necesario especificarlo.
<barcode>
: código de barras del producto. Se puede especificar usando este elemento o usando un parámetro con manejo especial <param name="Штрих-код" code="barcode"></param>
. Formato: cadena de hasta 255 caracteres inclusive, que consta solo de números y letras latinas.
<markable>
: bandera de la necesidad de marcar los productos. Si los productos van a ser marcados, debe enviar Y
; de lo contrario, debe enviar N
u omitir el elemento. Si esta característica difiere para las ofertas comerciales del mismo producto, se establecerá el valor de la última oferta comercial.
El valor del elemento <xmlId>
se usa cuando se intercambian datos sobre productos y pedidos con el sistema de almacén (1C, MyStore).
Parámetros con tratamiento especial
La lista contiene code
parámetros que tienen un manejo especial en el sistema:
article
: artículo de propuesta comercial; Una cadena arbitraria;
weight
: peso de la oferta en gramos; El peso convertido a gramos debe ser un número entero o fraccionario con una precisión de 3 decimales en el rango de 0 a 9 999 999 999;
description
: descripción de la oferta comercial;
barcode
: código de barras de propuesta comercial.
Tenga en cuenta que el campo description
no se muestra en el sistema. Se puede utilizar en [[Desarrolladores / Twig | plantillas de twig]]. Por ejemplo, para salida en formularios impresos.
<param name="Вес" code="weight">50</param>
también se permite indicar valores de peso con indicación de unidades de peso abreviadas (g, q, t)
<param name="Вес" code="weight">1.02</param>
<param name="Вес" code="weight">0.2 т</param>
al cargar el catálogo, el peso se convertirá a gramos, ya que la unidad de medida de peso en el sistema es gramos.