Экспорт заказов с сайта - 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>