Экспорт заказов с сайта - 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 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>user@site.com</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>