Импорт товаров на сайт - XML файл
На данной странице описана структура содержимого XML файла, использующегося для импорта товаров на сайт на платформе komiz.io из системы бухгалтерского учета, например «1C».
Общее описание
Ниже приведен сокращенный пример файла имеющего описываемый формат (полный пример приведен далее).
<?xml version="1.0" encoding="utf-8"?> <offers amount="1"> <!-- Содержит теги товаров --> <offer> <!-- Содержит информацию об одном товаре --> <title>Наименование товара</title> <catalogs> <catalog asId="cat1" title="Холодильники"> <catalog asId="cat1.1" title="Двухкамерные"></catalog> </catalog> </catalogs> <brand asId="br1" title="Anesi"> <brandSeries asId="br_series_1" title="Юбилейная серия"></brandSeries> </brand> <mods amount="7"> <!-- Содержит теги вариантов (модификаций) --> <mod article="art8_1" asId=""> <!-- Содержит информацию об одном варианте (модификации) --> <size></size> <color>White</color> <weight>15</weight> <quantity>10</quantity> <dataModStatus>auto</dataModStatus> <price>500.00</price> <showKey>1</showKey> </mod> ... </mods> <images amount="2"> <!-- Содержит теги изображений --> <image>http://example.com/ahrc5dm7ado.jpg</image> <!-- Поддерживается при любом значении type --> <image>ahrc5dm7ado.jpg</image> <!-- Поддерживается при любом значении type --> ... </images> </offer> ... </offers>
Символом «троеточие» обозначены участки файла, которые в действительном файле заполнены, но в примере выше упущены с целью улучшения понимания общего принципа организации файла.
Данные в файле содержатся в кодировке UTF-8
.
Ниже перечислены основные особенности структуры файла.
- Коренным тегом XML документа является
offers
. Он является контейнером списка товаров, каждому из которых соответствует дочерний тегoffer
. - Тег
offer
в дочерних тегах и атрибутах содержит информацию о самом товаре, а также его вариантах (модификациях) и изображениях. - Тег
mods
(который находится в тегеoffer
) содержит информацию о вариантах (модификациях) данного товара. - Тег
images
(который находится в тегеoffer
) содержит информацию об изображениях данного товара (см. ограничения и очередь загрузки изображений). - Информация о каждом варианте (модификации) товара заключена в тег
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 , которые содержат информацию о файлах изображений товаров (см. ограничения и очередь загрузки изображений) |
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 файла
<?xml version="1.0" encoding="utf-8"?> <offers amount="5"> <offer> <title>Видеопроектор BIG VP2000</title> <catalogs> <catalog asId="proekcionnoe_oborudovanie_123123" title="Проекционное оборудование"> <catalog asId="videoproektori_123456" title="Видеопроекторы"></catalog> </catalog> </catalogs> <brand asId="987654321" title="BIG"> <brandSeries asId="58962487" title="BIG PRO"></brandSeries> </brand> <additionalField name="Описание">Данный проектор применяется для небольших помещений</additionalField> <useDataModsKey>1</useDataModsKey> <props> <prop title="Размер"></prop> </props> <mods amount="1"> <mod article="35130944" asId="123456789"> <propValues> <propValue title="Средний"></propValue> </propValues> <maxDiscount>100.00</maxDiscount> <minAmountInOrder>1</minAmountInOrder> <maxAmountInOrder>0</maxAmountInOrder> <weight>0</weight> <barcode></barcode> <quantity>0</quantity> <dataModStatus>Нет в наличии</dataModStatus> <price>6501.00</price> <priceOld>0.00</priceOld> <showKey>0</showKey> <price type="Тип цен 1">5000.00</price> <priceOld type="Тип цен 1">0.00</priceOld> <price amountInOrder="10">6400.00</price> <price amountInOrder="50">6300.00</price> </mod> </mods> <params> <param asId="954732" title="Световой поток"> <paramValue asId="47312874" title="800"></paramValue> <param> <param asId="3287532" title="Сфера использования"> <paramValue asId="239854" title="Презентации"></paramValue> <paramValue asId="834129" title="Кинотеатры"></paramValue> <param> </params> <images amount="2"> <image>http://example.com/ahrc5dm7ado.jpg</image> <image>http://example.com/htec8dm9jur.jpg</image> </images> </offer> </offers>