Экспорт заказов с сайта - XML файл
На данной странице описана структура содержимого XML файла, использующегося для экспорта заказов с сайта на платформе komiz.io в систему бухгалтерского учета, например «1C».
Общее описание
Ниже приведен сокращенный пример файла имеющего описываемый формат (полный пример приведен далее).
<?xml version="1.0" encoding="utf-8"?>
<orders amount="2" sessionId="1234567890"> <!-- Содержит теги заказов -->
<order code="12345678"> <!-- Содержит информацию об одном заказе -->
<time>2014-12-31 08:32:59</time> <!-- Одно из полей заказа -->
...
<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).
ОБРАТИТЕ ВНИМАНИЕ! Все теги (и их атрибуты) обязательно присутствуют в файле (в рамках своего контекста, т.е. родительского тега). Но также нужно учесть, что количество повторяемых тегов варьируется относительно количества отображаемых ими «сущностей». Например, количество тегов order равно количеству заказов в данном файле (т.е. может быть равным нулю). А, например, количество тегов offer равно количеству товаров в конкретном заказе (т.е. может быть равно нулю).
Описание тегов
Ниже приведен перечень всех XML тегов, используемых в описываемом файле, с указанием инструкций по их использованию. Теги перечислены в алфавитном порядке.
| Тег | Контекст | Содержимое | Атрибуты | Описание |
|---|---|---|---|---|
additionalField | order | Строка 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 | Поле заказа «Населенный пункт» | |
cityId | order | Строка 0-255 | Идентификатор населенного пункта в системе службы доставки | |
code | offer | Строка 1-255 | Поле товара в заказе «Код». Первое число - это «идентификатор товара», второе - «идентификатор варианта» (могут быть равны). Пример: 123-987 | |
color | offer | Строка 0-255 | Значение свойства «Цвет» товара в заказе | |
country | order | Строка 0-255 | Поле заказа «Страна» | |
time | order | Строка в формате ISO 8601 19 | Дата и время создания заказа. Пример: 2014-12-31 08:32:59 | |
time_unixtime | order | Целое число 0-2147483647 | Время создания заказа в формате UNIXTIME. Пример: 495546300 | |
dateSend | order | Строка в формате ISO 8601 0 или 10 | Дата отправки заказа. Пустая строка, если не указано. Пример: 2014-12-31 | |
dateDelivery | order | Строка в формате ISO 8601 0 или 10 | Дата доставки заказа. Пустая строка, если не указано. Пример: 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 | Поле заказа «Имя» | |
material | offer | Строка 0-255 | Значение свойства «Материал» товара в заказе | |
offer | offers | Дочерние теги | article - [строка: 1-255] - Артикул - уникальный идентификатор товара.asId - [строка: 0-255] - Идентификатор товара в системе бухгалтерского учета (accounting system id). Может быть равен пустой строке, т.е. быть не указан.action - [цифра 1 или 0] - Является ли товар акционным, 0 - не является; 1 - является | Содержит информацию о товаре. Количество таких товаров указано в атрибуте amount. Если товар является акционным, то это специальный товар, который не учитывается во всех расчетных данных заказа |
offerId | offer | Целое число 1-2147483647 | Идентификатор товара. Уникален. Пример: 123 | |
offers | order | Дочерние теги | amount - [цело число: 0-2147483647] - Количество разных товаров в заказе. ВНИМАНИЕ! Акционные товары не учитываются | Контейнер тегов offer, которые содержат информацию о товарах в заказе, если таковые имеются |
lastName | order | Строка 0-255 | Поле заказа «Фамилия» | |
middleName | order | Строка 0-255 | Поле заказа «Отчество» | |
order | orders | Дочерние теги | code - [строка: 1-255] - Код заказа - уникальный идентификатор заказа | Информация о заказе, включая информацию о товарах в заказе |
orderDeliveryPrice | order | Дробное число, разделитель «точка», максимум два символа после точки, если она есть 0-99999999.99 | Поле заказа «Стоимость доставки» | |
orderDeliveryPriceName | order | Строка 0-255 | Наименование «строки сетки стоимости доставки». Если пустая строка, значит система не нашла строку соответствующую данным заказа либо это поле не заполнено пользователем | |
orderPriceAll | order | Дробное число, разделитель «точка», максимум два символа после точки, если она есть 0-99999999.99 | Поле заказа «Общая стоимость заказа» (orderPriceResult + orderDeliveryPrice) | |
orderPrice | order | Дробное число, разделитель «точка», максимум два символа после точки, если она есть 0-99999999.99 | Поле заказа «Стоимость всех товаров (без учета скидки)» | |
orderPriceResult | order | Дробное число, разделитель «точка», максимум два символа после точки, если она есть 0-99999999.99 | Поле заказа «Стоимость всех товаров (с учетом скидки)». ВНИМАНИЕ! Акционные товары не учитываются. | |
orders | Коренной | Дочерние теги | amount - (цело число: 0-2147483647) - Количество заказов, которые передаются в рамках данного запроса (максимум данного числа определяется ограничениями)amountAll - (цело число: 0-2147483647) - Общее количество заказов, которые готовы к передачеsessionId - (строка: 10) - Идентификатор сессии обмена данными с системой бухгалтерского учета | Является контейнером для тегов заказов (order) |
payStatus | order | Строка 1-255 | Поле заказа «Статус оплаты» | |
payType | order | Строка 0-255 | Поле заказа «Способ оплаты» | |
postIndex | order | Строка 0-255 | Поле заказа «Почтовый индекс» | |
price | offer | Дробное число, разделитель «точка», максимум два символа после точки, если она есть 0-99999999.99 | Поле товара в заказе «Цена за один (без учета скидки)» | |
priceAll | offer | Дробное число, разделитель «точка», максимум два символа после точки, если она есть 0-99999999.99 | Поле товара в заказе «Цена за все (без учета скидки)» (price*amount) |
|
priceResult | offer | Дробное число, разделитель «точка», максимум два символа после точки, если она есть 0-99999999.99 | Поле товара в заказе «Цена за один (с учетом скидки)». Нужно учесть, что скидка на данный товар может быть меньше общей «скидки на заказ (discount)», так как существует понятие «максимальной скидки на товар» |
|
priceResultAll | offer | Дробное число, разделитель «точка», максимум два символа после точки, если она есть 0-99999999.99 | Поле товара в заказе «Цена за все (с учетом скидки)» (priceResult*amount) |
|
quantityOperation | order | Одна из строк none, minus, plus | Последняя операция с остатками (none - не выполнялось никакой операции; minus - списание остатков; plus - возврат остатков |
|
region | order | Строка 0-255 | Поле заказа «Регион» | |
size | offer | Строка 0-255 | Значение свойства «Размер» товара в заказе | |
status | order | Строка 1-255 | Поле заказа «Статус» | |
storeAddress | order | Строка 0-255 | Поле заказа «Адрес склада» или «Отделение» службы доставки, если таковая связана с заказом | |
street | order | Строка 0-255 | Поле заказа «Улица» | |
telephone | order | Строка 0-255 | Поле заказа «Телефон» | |
title | offer | Строка 1-255 | Поле товара в заказе «Наименование» | |
userComment | order | Строка 0-255 | Поле заказа «Комментарий пользователя» | |
userDiscount | order | Дробное число, разделитель «точка», максимум два символа после точки, если она есть 0-99999999.99 | Скидка пользователя, к которому прикреплен заказ | |
userAsId | order | Строка 0-255 | Идентификатор пользователя в системе бухгалтерского учета, к которому привязан заказ | |
userId | order | Целое число 1-2147483647 | Идентификатор пользователя, к которому привязан заказ. Если равно 1 (единица), то это специальный пользователь (так называемый «незарегистрированный») | |
warehouseId | order | Строка 0-255 | Идентификатор отделения службы доставки | |
weight | offer | Целое число 0-2147483647 | Поле товара в заказе «Вес». Обычно указывается в граммах, но для системы это просто целое число |
Пример полного XML файла
<?xml version="1.0" encoding="utf-8"?>
<orders amount="1" sessionId="5782325740">
<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>
<cityId>12345-12345-122345-112414</cityId>
<warehouseId>98764-95634-9575435-4444</warehouseId>
<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>