{{indexmenu_n>0004}}
====== Импорт товаров на сайт - XML файл ======
На данной странице описана структура содержимого XML файла, использующегося для импорта товаров на сайт на платформе komiz.io из системы бухгалтерского учета, например "1C".
===== Общее описание =====
Ниже приведен сокращенный пример файла имеющего описываемый формат (полный пример приведен далее).
Наименование товара
White
15
10
auto
500.00
1
...
http://example.com/ahrc5dm7ado.jpg
ahrc5dm7ado.jpg
...
...
Символом "троеточие" обозначены участки файла, которые в действительном файле заполнены, но в примере выше упущены с целью улучшения понимания общего принципа организации файла.
Данные в файле содержатся в кодировке ''UTF-8''.
Ниже перечислены основные особенности структуры файла.
* Коренным тегом XML документа является ''offers''. Он является контейнером списка товаров, каждому из которых соответствует дочерний тег ''offer''.
* Тег ''offer'' в дочерних тегах и атрибутах содержит информацию о самом товаре, а также его вариантах (модификациях) и изображениях.
* Тег ''mods'' (который находится в теге ''offer'') содержит информацию о вариантах (модификациях) данного товара.
* Тег ''images'' (который находится в теге ''offer'') содержит информацию об изображениях данного товара (см. [[dev:as:ogranicheniia|ограничения]] и [[dev:as:tovari:ochered_zagruzki_izobrazhenii|очередь загрузки изображений]]).
* Информация о каждом варианте (модификации) товара заключена в тег ''mod'' являющимся дочерним для ''mods''.
* Информация о каждом файле изображения товара заключена в тег ''image'' являющимся дочерним для ''images''.
**ОБРАТИТЕ ВНИМАНИЕ!**
* Все атрибуты тегов должны обязательно присутствовать. Кроме исключительных случаев (см. описание атрибута).
* Большинство тегов могут отсутствовать. Исключением являются: коренной тег ''offers''; тег ''mods'' с как минимум одним вложенным тегом ''mod''. Если тегов ''mods'' и ''mod'' нет, то данный товар игнорируется. Если необязательного тега не передается, то соответствующее ему данное либо не изменяется (при существовании товара или его варианта (модификации) в базе данных сайта), либо заполняется "пустым значением" (в случае отсутствия товара или его вариантов (модификации) в базе данных сайта).
* Нужно учесть, что количество повторяемых тегов варьируется относительно количества отображаемых ими "сущностей". Например, количество тегов ''offer'' равно количеству товаров в данном файле (т.е. может быть равным нулю).
===== Работа с каталогами =====
Системой допускаются все основные операции над каталогами: создание, редактирование, а также перенос одного каталога в другой. Для задания иерархии каталогов необходимо верно сформировать ее из вложенных друг в друга тегов ''catalog''. В атрибуте ''asId'' каждого такого тега указывается идентификатор каталога в системе бухгалтерского учета. Если такой каталог будет найден, то его наименование будет изменено на то, что указано в атрибуте ''title''. Если же не найден, то будет создан новый каталог с данным наименованием (с учетом вложенности). Также, данный каталог будет перенесен в другой каталог, если это необходимо. **ПОМНИТЕ!** Перенос каталога возможен, только если соблюдается ряд условий, в том числе: каталог назначения не должен содержать ни товаров, ни параметров.
Если конечный каталог товара был изменен, то будет совершен перенос данного товара в указанный каталог.
===== Работа с брендами и сериями =====
Системой допускаются все основные операции над брендом: создание, редактирование. В атрибуте ''asId'' каждого тега ''brand'' указывается идентификатор бренда в системе бухгалтерского учета. Если такой бренд будет найден, то его наименование будет изменено на то, что указано в атрибуте ''title''. Если же не найден, то будет создан новый бренд с данным наименованием.
Сказанное выше справедливо и для серии бренда.
Указание тега ''brand'' не обязательно. Также не обязательно указание вложенного в него тега ''brandSeries''. Но, если последний указан, то соответствующая ему серия (если и бренд и серия существуют) должна принадлежать данному бренду. Т.е. перенос серии из одного бренда в другой запрещается.
Если бренд и/или серия были изменены у товара, то будет выполнен перенос данного товара в соответствующую серию и бренд.
**ОБРАТИТЕ ВНИМАНИЕ!** Система поддерживает работу только с сериями верхнего уровня (у серий есть неограниченная вложенность, но оперирование с ней посредствам описываемого механизма невозможно).
===== Описание тегов =====
Ниже приведен перечень всех XML тегов, используемых в описываемом файле, с указанием инструкций по их использованию. Теги перечислены в алфавитном порядке.
^ Тег ^ Контекст ^ Содержимое ^ Атрибуты ^ Описание ^
| ''additionalField'' | ''offer'' | Строка\\ 0-4294967296 | ''name'' - [строка: 1-255] - Значение поля "Имя в интерфейсе" для данного дополнительного поля. | "Дополнительное поле" товара |
| ''barcode'' | ''mod'' | Строка\\ 0-255 | | Значение поля "Штрих-код" варианта (модификации) товара |
| ''brand'' | ''offer'' | Дочерние теги | ''asId'' - [строка: 1-255] - Идентификатор бренда в системе бухгалтерского учета (accounting system id). Указание обязательно\\ ''title'' - [строка: 1-255] - Наименование бренда. Если указана пустая строка, то наименование бренда не меняется. | В атрибутах содержит информацию о бренде.\\ Может содержать дочерний тег ''brandSeries''. Таким образом указывается принадлежность данной серии бренда этому бренду |
| ''brandSeries'' | ''brand'' | Пустой тег | ''asId'' - [строка: 1-255] - Идентификатор серии бренда в системе бухгалтерского учета (accounting system id). Указание обязательно\\ ''title'' - [строка: 1-255] - Наименование серии бренда. Если указана пустая строка, то наименование серии бренда не меняется. | В атрибутах содержит информацию о серии бренда |
| ''catalog'' | ''catalogs'' | Дочерние теги | ''asId'' - [строка: 1-255] - Идентификатор каталога в системе бухгалтерского учета (accounting system id). Указание обязательно\\ ''title'' - [строка: 1-255] - Наименование каталога. Если указана пустая строка, то наименование каталога не меняется. | В атрибутах содержит информацию о каталоге (на данном уровне иерархии).\\ Может содержать дочерние теги ''catalog''. Таким образом указывается иерархия каталогов |
| ''catalogs'' | ''offer'' | Дочерние теги | | Контейнер тегов ''catalog'', которые содержат информацию о каталоге товара, с учетом иерархии, воспроизводимой вложением друг в друга |
| ''color'' | ''mod'' | Строка\\ 0-255 | | Значение поля "Цвет" варианта (модификации) товара. Примеры: Красный, темный, 123456. |
| ''dataModStatus'' | ''mod'' | Строка\\ 0-255 | | Статус остатка. Одно из значений: "Нет в наличии", "Есть в наличии", "Заканчивается" и "auto". Значение "auto" переключает в режим автоматического определения значения, которое зависит от значения поля "Остаток" |
| ''deleteImageKey'' | ''offer'' | Цифра 1 или 0 | | Флаг указывающий удалить ли изображения товара или нет. 1 - удалить. Все остальные значения игнорируются |
| ''deleteKey'' | ''mod'' | Цифра 1 или 0 | | Флаг указывающий удалить ли вариант (модификацию) товара или нет. 1 - удалить. Все остальные значения игнорируются. **ВНИМАНИЕ!** Удаление будет заблокировано, если товар содержит только один вариант (модификацию) |
| ''deleteKey'' | ''offer'' | Цифра 1 или 0 | | Флаг указывающий удалить ли товар или нет. 1 - удалить. Все остальные значения игнорируются. **ВНИМАНИЕ!** Даже в случае удаления товара, указание тегов ''mod'' обязательно |
| ''deleteMarkKey'' | ''offer'' | Цифра 1 или 0 | | Флаг указывающий удалить ли метки товара или нет. 1 - удалить. Все остальные значения игнорируются |
| ''deleteWobblerKey'' | ''offer'' | Цифра 1 или 0 | | Флаг указывающий удалить ли бейджы товара или нет. 1 - удалить. Все остальные значения игнорируются |
| ''image'' | ''images'' | Дочерние теги | | Содержит информацию об одном файле изображения товара. Если параметр ''type'' имеет значение ''import_as_xml'', то данный тег должен содержать адрес файла изображения товара на внешнем сервере, по которому его можно скачать. Если же параметр ''type'' имеет значение ''import_as_zip'', то данный тег может также содержать и путь к файлу изображения товара, относительно корневой директории передаваемого ZIP архива.\\ Первым в списке изображений идет так называемое "главное", далее сортировка по позиции. |
| ''images'' | ''offer'' | Дочерние теги | ''amount'' - [целое число: 1-2147483647] - Количество изображений данного товара. Соответствует количеству дочерних тегов ''image''. | Контейнер тегов ''image'', которые содержат информацию о файлах изображений товаров (см. [[dev:as:ogranicheniia|ограничения]] и [[dev:as:tovari:ochered_zagruzki_izobrazhenii|очередь загрузки изображений]]) |
| ''mark'' | ''marks'' | Строка\\ 1-255 | ''deleteKey'' - [Цифра 1 или 0] - Флаг указывающий удалить ли данную метку товара или нет. 1 - удалить. Все остальные значения игнорируются. Указание не обязательно | Наименование метки товара. Если атрибут ''deleteKey'' = ''1'', то происходит удаление связи метки с данным товаром. Во всех остальных случаях - связывание товара с данной меткой. Таких тегов может быть несколько. |
| ''marks'' | ''offer'' | Дочерние теги | ''amount'' - [целое число: 1-2147483647] - Количество меток данного товара. Соответствует количеству дочерних тегов ''mark''. | Контейнер тегов ''mark'', которые содержат информацию о метках товара |
| ''maxAmountInOrder'' | ''mod'' | Целое число\\ 0-2147483647 | | Значение поля "Максимальное количество в заказе" варианта (модификации) товара. Где 0 - не ограничено. Примеры: 0, 123, 1245. |
| ''maxDiscount'' | ''mod'' | Дробное число, разделитель "точка", максимум два символа после точки, если она есть\\ От 0 до 100.00 | | Значение поля "Максимальная скидка" варианта (модификации) товара. Примеры: 1, 1.23, 12.45. |
| ''minAmountInOrder'' | ''mod'' | Целое число\\ 1-2147483647 | | Значение поля "Минимальное количество в заказе" варианта (модификации) товара. Примеры: 1, 123, 1245. |
| ''mod'' | ''mods'' | Дочерние теги | ''article'' - [строка: 1-255] - Артикул - уникальный идентификатор варианта (модификации) товара (в рамках всей базы данных, а не одного товара). Указание обязательно, если в настройках сайта указан **Тип работы с системой бухгалтерского учета** = **Главный - артикул**\\ ''asId'' - [строка: 0-255] - Идентификатор варианта (модификации) в системе бухгалтерского учета (accounting system id). Указание обязательно, если в настройках сайта указан **Тип работы с системой бухгалтерского учета** = **Главный - идентификатор в системе бухгалтерского учета** | Содержит информацию о варианте (модификации) товара |
| ''mods'' | ''offer'' | Дочерние теги | ''amount'' - [целое число: 1-2147483647] - Количество вариантов (модификаций) данного товара. Соответствует количеству дочерних тегов ''mod'' (есть как минимум один). | Контейнер тегов ''mod'', которые содержат информацию о вариантах (модификациях) товара |
| ''offer'' | ''offers'' | Дочерние теги | ''catalogAsId'' - [строка: 0-255] - Идентификатор каталога в системе бухгалтерского учета. Если указано, то тег ''catalogs'' в теге ''offer'' игнорируется.\\ ''brandAsId'' - [строка: 0-255] - Идентификатор бренда в системе бухгалтерского учета. Если указано, то тег ''brand'' (и его дочерний тег ''brandSeries'') в теге ''offer'' игнорируется.\\ ''brandSeriesAsId'' - [строка: 0-255] - Идентификатор серии бренда в системе бухгалтерского учета. Если указано, то тег ''brandSeries'' дочерний для тега ''brand'', который находится в теге ''offer'', игнорируется. | Информация о товаре, включая информацию о вариантах (модификациях) товара и его изображениях |
| ''offers'' | ''Коренной'' | Дочерние теги | | Является контейнером для тегов товаров (''offer'') |
| ''param'' | ''params'' | Дочерние теги | ''asId'' - [строка: 1-255] - Идентификатор параметра в системе бухгалтерского учета\\ ''title'' - [строка: 1-255] - Наименование параметра | Контейнер тегов ''paramValue'', т.е. значений параметров с которыми связан данный товар. Таких тегов может быть несколько. |
| ''params'' | ''offer'' | Дочерние теги | | Контейнер тегов ''param'', которые содержат информацию о параметрах, со значениями которых связан данный товар |
| ''paramValue'' | ''param'' | Пустой тег | ''asId'' - [строка: 1-255] - Идентификатор значения параметра в системе бухгалтерского учета\\ ''title'' - [строка: 1-255] - Наименование значения параметра. Если указана пустая строка, то наименование параметра не меняется\\ ''deleteKey'' - [Цифра 1 или 0] - Флаг указывающий удалить ли связь товара с данным значением параметра. 1 - удалить. Все остальные значения игнорируются. Указание не обязательно | Указывает значение параметра, с которым связан данный товар. Таких тегов может быть несколько. |
| ''position'' | ''mod'' | Целое число\\ 0-2147483647 | | Значение поля "Позиция" варианта (модификации) товара. Примеры: 1, 3, 15. |
| ''price'' | ''mod'' | Дробное число, разделитель "точка", максимум два символа после точки, если она есть\\ От 0 до 99999999.99 | ''type'' - [строка: 1-255] - Имя типа цен. **ВНИМАНИЕ!** Атрибут должен присутствовать только, если данная цена связана с типом цен.\\ ''amountInOrder'' - [целое число: 2-2147483647] - Количество товара в заказе. **ВНИМАНИЕ!** Атрибут должен присутствовать только, если данная цена указана как одна из настроек зависимости цены товара от его количества в заказе. | Поле варианта (модификации) товара "Цена", а также поля цен связанных с "типами цен". Примеры: 1.00, 123.45 |
| ''priceOld'' | ''mod'' | Дробное число, разделитель "точка", максимум два символа после точки, если она есть\\ От 0 до 99999999.99 | ''type'' - [строка: 1-255] - Имя типа цен. **ВНИМАНИЕ!** Атрибут должен присутствовать только, если данная старая цена связана с типом цен. | Поле варианта (модификации) товара "Старая цена", а также поля старых цен связанных с "типами цен". Примеры: 1.00, 123.45 |
| ''prop'' | ''props'' | Пустой тег | ''title'' - [строка: 1-255] - Имя свойства товара | Указывает свойство товара. Количество тегов соответсвует количеству свойств товара. Максимум три. ВНИМАНИЕ! Должен соблюдаться точный порядок следования. При редактировании товара, таким образом можно изменить имя свойства. |
| ''props'' | ''offer'' | Дочерние теги | | Контейнер тегов ''prop'', которые содержат информацию о свойствах данного товара |
| ''propValues'' | ''mod'' | Дочерние теги | | Контейнер тегов ''propValue'', которые содержат информацию о значениях свойств данного товара, с которыми связан текущий вариант (модификация) |
| ''propValue'' | ''propValues'' | Пустой тег | ''title'' - [строка: 1-255] - Имя значения свойства товара. Если указана пустая строка, то наименование значения свойства не меняется | Значения свойств для данного варианта (модификации) товара. Указываются имена значений свойств. Таких тегов может быть несколько. Их порядок и количество должны строго соотвествовать порядку и количеству свойств в тегах ''prop''. |
| ''quantity'' | ''mod'' | Целое число\\ 0-2147483647 | | Значение поля "Остаток" варианта (модификации) товара. Примеры: 1, 123, 123456. |
| ''showKey'' | ''mod'' | Цифра 1 или 0 | | Флаг указывающий отображается ли вариант (модификация) на сайте или нет. 0 - не отображается; 1 - отображается. |
| ''size'' | ''mod'' | Строка\\ 0-255 | | Значение поля "Размер" варианта (модификации) товара. Примеры: XXL, большой, 52. |
| ''supplierArticle'' | ''mod'' | Строка\\ 0-255 | | Артикул товара у поставщика для поставщика "[ПО УМОЛЧАНИЮ]". |
| ''supplierArticleComplex'' | ''mod'' | Строка\\ 0-255 | | Артикул товара у поставщика для определенных поставщиков, заданный в следующем формате "Имя_поставщика1: Артикул_у_поставщика1; "Имя_поставщикаN: Артикул_у_поставщикаN;". |
| ''supplierTitle'' | ''mod'' | Строка\\ 0-255 | | Наименование товара у поставщика для поставщика "[ПО УМОЛЧАНИЮ]". |
| ''supplierArticleComplex'' | ''mod'' | Строка\\ 0-255 | | Наименование товара у поставщика для определенных поставщиков, заданное в следующем формате "Имя_поставщика1: Наименование_у_поставщика1; "Имя_поставщикаN: Наименование_у_поставщикаN;". |
| ''title'' | ''offer'' | Строка\\ 0-255 | | Поле товара "Наименование" |
| ''useDataModsKey'' | ''offer'' | Цифра 1 или 0 | | Флаг указывающий использует ли товар варианты (модификации) или нет. 1 - использует. Все остальные значения интерпритирутся как ноль. **ВНИМАНИЕ!** Если указывается данный флаг, равный единице, то заполнение тегов ''props'' и ''propValues'' обязательно. Также нужно помнить, что изменение данного флага не предусмотрено |
| ''weight'' | ''mod'' | Целое число\\ 0-2147483647 | | Значение поля "Вес" варианта (модификации) товара. Примеры: 1, 123, 123456. |
| ''wobbler'' | ''wobblers'' | Строка\\ 1-255 | ''deleteKey'' - [Цифра 1 или 0] - Флаг указывающий удалить ли данный бейдж товара или нет. 1 - удалить. Все остальные значения игнорируются. Указание не обязательно | Наименование бейджа товара. Если атрибут ''deleteKey'' = ''1'', то происходит удаление связи бейджа с данным товаром. Во всех остальных случаях - связывание товара с данным бейджем. Таких тегов может быть несколько. |
| ''wobblers'' | ''offer'' | Дочерние теги | ''amount'' - [целое число: 1-2147483647] - Количество бейджей данного товара. Соответствует количеству дочерних тегов ''wobbler''. | Контейнер тегов ''wobbler'', которые содержат информацию о бейджах товара |
===== Пример полного XML файла =====
Видеопроектор BIG VP2000
Данный проектор применяется для небольших помещений
1
100.00
1
0
0
0
Нет в наличии
6501.00
0.00
0
5000.00
0.00
6400.00
6300.00
http://example.com/ahrc5dm7ado.jpg
http://example.com/htec8dm9jur.jpg