Импорт заказов на сайт - XML файл
На данной странице описана структура содержимого XML файла, использующегося для импорта заказов на сайт на платформе komiz.io из системы бухгалтерского учета, например «1C».
Общее описание
Ниже приведен сокращенный пример файла имеющего описываемый формат (полный пример приведен далее).
<?xml version="1.0" encoding="utf-8"?> <orders amount="2"> <!-- Содержит теги заказов --> <order code="12345678"> <!-- Содержит информацию об одном заказе --> <time_unixtime>1469606160</time_unixtime> <!-- Одно из полей заказа --> ... <offers amount="3"> <!-- Содержит теги товаров в заказе --> <offer article="art1" asId=""> <!-- Содержит информацию об одном товаре в заказе --> <title>Товар1</title> <!-- Одно из полей товара в заказе --> ... </offer> <offer article="art2" asId=""> ... </offer> <offer article="art3" asId=""> ... </offer> </offers> </order> <order code="87654321"> ... </order> </orders>
Символом «троеточие» обозначены участки файла, которые в действительном файле заполнены, но в примере выше упущены с целью улучшения понимания общего принципа организации файла.
Данные в файле содержатся в кодировке UTF-8
.
Ниже перечислены основные особенности структуры файла.
- Коренным тегом XML документа является
orders
. Он является контейнером списка заказов, каждому из которых соответствует дочерний тегorder
. - Тег
order
в дочерних тегах и атрибутах содержит информацию о самом заказе, а также информацию о товарах в данном заказе. - Тег
offers
(который находится в тегеorder
) содержит информацию о товарах в текущем заказе. - Информация о каждом товаре в заказе заключена в тег
offer
являющимся дочерним дляoffers
. - Каждой «сущности» в системе соответствует ее «уникальный идентификатор». Для заказа - это «код заказа» (содержится в атрибуте
code
тегаorder
); для товара - это «артикул» (содержится в атрибутеarticle
тегаoffer
).
ОБРАТИТЕ ВНИМАНИЕ!
- Все атрибуты тегов должны обязательно присутствовать.
- Большинство тегов могут отсутствовать. Исключением являются дочерние теги для тега
offer
и коренной тегorders
. Если необязательного тега не передается, то соответствующее ему данное либо не изменяется (при существовании заказа в базе данных сайта), либо заполняется «пустым значением» (в случае отсутствия заказа в базе данных сайта). - Нужно учесть, что количество повторяемых тегов варьируется относительно количества отображаемых ими «сущностей». Например, количество тегов
order
равно количеству заказов в данном файле (т.е. может быть равным нулю). А, например, количество теговoffer
равно количеству товаров в конкретном заказе (т.е. может быть равно нулю). - Если заказ уже существует в базе данных сайта, то отсутствие тега
offers
означает, что изменение информации о товарах в заказе не будет производиться. Для того, чтобы удалить все товары в заказе, нужно передать данный тег и указать ноль в его атрибутеamount
.
Описание тегов
Ниже приведен перечень всех XML тегов, используемых в описываемом файле, с указанием инструкций по их использованию. Теги перечислены в алфавитном порядке.
Тег | Контекст | Содержимое | Атрибуты | Описание |
---|---|---|---|---|
additionalField | offer | Строка 0-4294967296 | name - [строка: 1-255] - Значение поля «Имя в интерфейсе» для данного дополнительного поля. | «Дополнительное поле» товара |
additionalReceiver | order | Строка 0-255 | Поле заказа «Дополнительный получатель» | |
adminComment | order | Строка 0-255 | Поле заказа «Комментарий оператора» | |
amount | offer | Целое число 1-2147483647 | Поле товара в заказе «Количество». Количество этого товара в заказе. Не путать с атрибутом amount тега offers |
|
apartment | order | Строка 0-255 | Поле заказа «Квартира» | |
building | order | Строка 0-255 | Поле заказа «Дом» | |
bulk | order | Строка 0-255 | Поле заказа «Корпус» | |
city | order | Строка 0-255 | Поле заказа «Нас. пункт» | |
code | offer | Строка, состоящая из двух натуральных чисел разделенных «тире» Длина: 3-255 | Поле товара в заказе «Код». Первое число - это «идентификатор товара», второе - «идентификатор модификации» (могут быть равны). Пример: 123-987 |
|
customCity | order | Строка 0-255 | Поле заказа «Другой нас. пункт» (указывается как дополнительное поле, если «Нас. пункт» будет указан как «[Другой нас. пункт]», иначе содержит пустую строку) | |
country | order | Строка 0-255 | Поле заказа «Страна» | |
time | order | Строка Длина: 19 Формат: ISO 8601 | Поле заказа «Время создания» в формате ISO 8601 (но без буквы Т). Время создания заказа. Пример: 2016-07-27 17:05:30. ВНИМАНИЕ! Игнорируется, в случае, если заказ существует на сайте ВНИМАНИЕ! Игнорируется, в случае, если передается тег time_unixtime . |
|
time_unixtime | order | Целое число 0-2147483647 | Поле заказа «Время создания» в формате UNIXTIME. Время создания заказа. Пример: 495546300. ВНИМАНИЕ! Игнорируется, в случае, если заказ существует на сайте. |
|
dateSend | order | Строка 0 или 10 Формат: ISO 8601 | Поле заказа «Дата отправки». Дата отправки заказа. Пустая строка, если не указано. Пример: 2014-12-31 |
|
dateDelivery | order | Строка 0 или 10 Формат: ISO 8601 | Поле заказа «Дата доставки». Дата доставки заказа. Пустая строка, если не указано. Пример: 2014-12-31 |
|
deliveryServiceCode | order | Строка 0-255 | Поле заказа «Код заказа в системе службы доставки» | |
deliveryStatus | order | Строка 1-255 | Поле заказа «Статус доставки» | |
deliveryType | order | Строка 0-255 | Поле заказа «Тип доставки» | |
discount | order | Дробное число, разделитель «точка», максимум два символа после точки, если она есть От 0 до 100.00 | Поле заказа «Скидка на заказ», в процентах | |
district | order | Строка 0-255 | Поле заказа «Район» | |
email | order | Строка 0-255 | Поле заказа «Email» | |
firstName | order | Строка 0-255 | Поле заказа «Имя» | |
offer | offers | Дочерние теги | article - [строка: 1-255] - Артикул - уникальный идентификатор товара. Учитывается только, если не передается атрибут asId asId - [строка: 1-255] - Идентификатор товара в системе бухгалтерского учета (accounting system id) | Содержит информацию о товаре. Всей группе одинаковых товаров соответствует один этот тег. Количество таких товаров указано в дочернем теге amount |
offers | order | Дочерние теги | amount - [Целое число 0-2147483647] - Количество разных товаров в заказе. Соответствует количеству дочерних тегов offer (если равно нулю, значит их нет) | Контейнер тегов offer , которые содержат информацию о товарах в заказе, если таковые имеются |
lastName | order | Строка 0-255 | Поле заказа «Фамилия» | |
middleName | order | Строка 0-255 | Поле заказа «Отчество» | |
order | orders | Дочерние теги | code - [строка: 1-255] - Код заказа - уникальный идентификатор заказа | Информация о заказе, включая информацию о товарах в заказе. Если передается заказ с несуществующим кодом, то он будет создан на сайте |
orders | Коренной | Дочерние теги | Является контейнером для тегов заказов (order ) |
|
payStatus | order | Строка 1-255 | Поле заказа «Статус оплаты» | |
payType | order | Строка 0-255 | Поле заказа «Тип оплаты» | |
postIndex | order | Строка 0-255 | Поле заказа «Почтовый индекс» | |
price | offer | Дробное число, разделитель «точка», максимум два символа после точки, если она есть От 0 до 99999999.99 | Поле товара в заказе «Цена за один (без учета скидки)» | |
region | order | Строка 0-255 | Поле заказа «Область» | |
status | order | Строка 1-255 | Поле заказа «Статус» | |
storeAddress | order | Строка 0-255 | Поле заказа «Адрес склада» | |
street | order | Строка 0-255 | Поле заказа «Улица» | |
telephone | order | Строка 0-255 | Поле заказа «Телефон» | |
userComment | order | Строка 0-255 | Поле заказа «Комментарий пользователя» | |
userAsId | order | Строка 0-255 | Идентификатор пользователя в системе бухгалтерского учета, к которому привязан заказ | |
userId | order | Целое число 1-2147483647 | Идентификатор пользователя, к которому привязан заказ. Если равно 1 (единица), то это специальный пользователь (так называемый «незарегистрированный»). Учитывается только если не передается userAsId . |
Пример полного XML файла
<?xml version="1.0" encoding="utf-8"?> <orders amount="1"> <order code="2145386259"> <status>test</status> <payStatus>Оплачен</payStatus> <deliveryStatus>Получен</deliveryStatus> <time>2016-08-03 20:11:35</time> <time_unixtime>1470244295</time_unixtime> <orderPriceAll>20.10</orderPriceAll> <orderPriceResult>20.10</orderPriceResult> <orderPrice>22.33</orderPrice> <discount>10.00</discount> <userDiscount>0.00</userDiscount> <userId>7035</userId> <userAsId></userAsId> <telephone>011111111, 02222222</telephone> <email>[email protected]</email> <lastName>Иванов</lastName> <firstName>Петр</firstName> <middleName>Николаевич</middleName> <userComment></userComment> <adminComment>Клиент хочет, чтобы заказ доставили с 16:00 до 17:00 по указанному адресу</adminComment> <country>Австрия</country> <city>Вена</city> <deliveryType>Транспортной компанией Австрия-Экспресс</deliveryType> <payType>Налично при получении заказа</payType> <orderDeliveryPrice>0.00</orderDeliveryPrice> <orderDeliveryPriceName></orderDeliveryPriceName> <dateSend>2018-02-16</dateSend> <dateDelivery>2018-02-17</dateDelivery> <deliveryServiceCode></deliveryServiceCode> <storeAddress></storeAddress> <additionalReceiver></additionalReceiver> <postIndex>123123</postIndex> <region></region> <district></district> <street>Лесная</street> <building>8</building> <bulk></bulk> <apartment>9</apartment> <offers amount="1"> <offer article="35130944" asId="" action="0"> <offerId>5325</offerId> <amount>1</amount> <code>5325-6261</code> <title>Видеопроектор BIG VP2000</title> <size></size> <color></color> <material></material> <weight>0</weight> <price>22.33</price> <priceAll>22.33</priceAll> <priceResult>20.10</priceResult> <priceResultAll>20.10</priceResultAll> </offer> </offers> </order> </orders>