Импорт товаров на сайт - 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 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>