Содержание
Команды API
Введение
API предназначен для управления данными в АнтиСклад из внешних приложений.
Это позволяет синхронизировать работу интернет-магазинов с управленческим учётом в АнтиСклад.
API реализован основываясь на принципах REST.
Обмен осуществляется в формате XML по протоколу HTTPS посредством запросов GET, PUT, DELETE, POST.
Авторизация запросов:
- Basic-авторизация - логин и пароль зарегистрированного в системе пользователя
- С помощью token-ключа - генерируется системой в момент инсталляции приложения (см. раздел «Приложения») и передается в заголовке запроса «Karkas_token».
Форма запросов:
POST https://<домен>.antisklad.ru/admin/clients.xml GET https://<домен>.antisklad.ru/admin/client/<id>.xml ...
Подписки на события представляет собой возможность получать уведомления об изменениях на складе путем отправки http-запроса. При возникновении события по указанному в подписке адресу будет выполнен POST-запрос, в теле которого будет передано описание события в формате XML.
Приложения
Приложения в системе «Антисклад» могут быть двух видов: общие и частные. Общие приложения доступны для всех клиентов «Антисклад». Частные приложения доступны только их авторам или заказчикам.
Общие положения:
- Изначально разработка приложения производится на собственном хосте разработчика, но при необходимости, разработчику может быть предоставлен выделенный хостинг на сервере АнтиСклад, где будет доступен удобный PHP-класс для работы с крон-службами.
- Разработка может вестись с использованием PHP, а для хранения информации использоваться СУБД Postgres, MySQL или текстовые файлы
- Настройка приложения производится администратором(владельцем) домена через форму создания нового приложения (см. ниже) в настройках Антисклад.
- Первоначально приложение рассматривается как частное (доступно только в домене, где оно создано)
- По окончании тестирования приложение становится общим (доступно всем доменам для установки и настройки)
Фактически, приложение может находится где угодно, важно лишь правильно настроить URL установки, входа и удаления.
После того как пользователь нажал ссылку установки приложения в настройках приложений, генерируется уникальный token-ключ, который отправляется в качестве GET-параметра по указанному URL установки приложения (см. форму редактирования свойств приложения). Помимо параметра «token» отправляется также GET-параметр «domain» c названием текущего домена. В этот момент, полученный token-ключ необходимо сохранить и использовать для token-авторизации для API-запросов (передавать в заголовке «Karkas_token» с каждым запросом).
Чтобы настроить приложение, администратору необходимо заполнить соответствующие поля, нажав кнопку создания нового приложения в списке приложений (меню Настройки / Приложения):
- Классификация приложения
- Название приложения (будет показываться в списке приложений)
- URL логотипа приложения
- URL сайта приложения
- URL описания приложения
- Текст краткого описания приложения (в html формате, будет показываться в списке приложений)
- URL для установки приложения (например http://myapp.ru/install)
- URL страницы входа в приложение, куда попадает пользователь после нажатия кнопки входа в приложение (например http://myapp.ru/login)
- URL страницы приложения, куда отправляется запрос после нажатия кнопки удаления приложения (например http://myapp.ru/uninstall)
- Контакты для пользователей.
В дальнейшем, при необходимости сделать разрабатываемое приложение общим для всех клиентов, необходимо получить согласие от администрации. Приложение может быть как бесплатным, так и платным - в зависимости от тарифа и договоренности с администрацией.
Склады и магазины
Получение списка складов
Запроc:
GET /admin/stores.xml
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<stores type="array">
<store id="1">
<name>Главный склад</name>
<is_self>1</is_self>
<read_only>0</read_only>
</store>
<store id="2">
<name>Дополнительный склад</name>
<is_self>0</is_self>
<read_only>1</read_only>
</store>
</stores>
Добавление склада
Тег <read_only> является признаком только чтения, который не дает право пользователю изменять основные свойства склада: название, признак собственного склада.
Тег <is_self> является признаком собственного склада, который может использоваться внешними приложениями при сопоставлении складов, например со складами маркетплейса.
Запрос:
POST /admin/shops.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?> <store> <name>Склад магазина</name> <read_only>0</read_only> <is_self>1</is_self> </store>
Ответ:
<?xml version="1.0" encoding="UTF-8"?> <store id="2"> <name>Склад магазина</name> <read_only>0</read_only> <is_self>1</is_self> </store>
Получение списка магазинов
Запроc:
GET /admin/shops.xml
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<shops type="array">
<shop id="1">
<name>Мой интернет-магазин</name>
<store>1</store>
<read_only>0</read_only>
</shop>
<shop id="2">
<name>Моя розничная точка</name>
<store>1</store>
<read_only>0</read_only>
</shop>
</shops>
Добавление магазина
Тег <read_only> является признаком только чтения, который не дает право пользователю изменять основные свойства магазина: название, принадлежность к складу, признак розничного магазина, признак интернет-магазина, принадлежность к маркетплейсу.
Запроc:
POST /admin/shops.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?> <shop> <name>Новый магазин</name> <read_only>1</read_only> <ns>ozon</ns> </shop>
Ответ:
<?xml version="1.0" encoding="UTF-8"?> <shop id="3"> <name>Новый магазин</name> <store>2</store> <read_only>1</read_only> </shop>
Изменение магазина
Запроc:
PUT /admin/shops/1.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?> <shop> <name>Другое название магазина</name> <store>2</store> </shop>
Ответ:
<?xml version="1.0" encoding="UTF-8"?> <shop id=5> <name>Другое название магазина</name> <store>2</store> </shop>
Получение товарных остатков у конкретного склада
Помимо общего состояния склада имеется возможность получить вместо полного списка только те позиции, которые подверглись изменению на складе, начиная с указанной даты. К измененным остаткам относится товар, у которого изменились количественно-стоимостные показатели.
Запроc:
GET /admin/stores/1.xml?parameter=value
Параметры:
- page - номер страницы, начиная с нуля. Используется для листания списка. Чтобы получить все нужно в цикле листать страницы пока не закончатся позиции.
- page-size - размер страницы (количество модификаций товаров на странице). По-умолчанию и не может превышать 250.
- changed-from=<date time> - только те остатки, которые подверглись изменению с указанной даты. Удаленные товары будут указаны с количеством = 0. Дату можно указать как в формате 'YYYY-MM-DD HH:II:SS', так и указав timestamp.
- product-id=<N> - остатки только по одному товару с идентификатором N
- extId=<N> - остатки только по одному товару с внешнем кодом N
- products=detail - развернутые теги <product>
- show-barcodes - признак наличия штрих-кодов в ответе
- with-totals=1 - признак того, что в ответе нужно показать общее кол-во позиций на складе (атрибут totalItemsCount тега store).
- category - ID категории (фильтр)
- article - маска поиска по артикулу (фильтр).
- name - маска поиска по названию (фильтр)
- barcode - поиск по штрих-коду (фильтр)
- good-filter - фильтр по параметрам товара в формате JSON. Например: {«parameters»:[{«ns»:«wb»,«name»:«Комплектация», «value»:«кеды»}, {«name»:«Торговая марка», «value»:«Vorsh»}], «name»:«%Кроссовки V534%»,«article»:«V534 черн CITY»}
Например, чтобы отобрать все товары, у которых артикул начинается на «2», используйте в запросе параметр: …&article=2%25 , где %25 в url-кодировке (символ % ) означает любую последовательность символов
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<store type="array">
<items type="array">
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product id="123" extId="3004">Товар 1</product>
<modification>
<parameter name="Размер">55</parameter>
</modification>
<quantity>100</quantity>
<price>10</price>
<cost>2</cost>
<currency>RUB</currency>
<rate>1</rate>
<discount>0</discount>
<barcodes>
<barcode>2047308355270</barcode>
</barcodes>
</item>
<item id="010ef0a8841bd2490a7e39a474cfed03">
<product id="123" extId="3004">Товар 1</product>
<modification>
<parameter name="Размер">57</parameter>
</modification>
<quantity>10</quantity>
<price>10</price>
<cost>2</cost>
<currency>RUB</currency>
<rate>1</rate>
</item>
</items>
</store>
Получение товарных остатков сразу по нескольким складам
Помимо общего состояния указанных складов имеется возможность получить вместо полного списка только те позиции, которые подверглись изменению на указанных складах, начиная с указанной даты. К измененным остаткам относится товар, у которого изменились количественно-стоимостные показатели.
Запроc:
GET|POST /admin/stores_items.xml?parameter=value
Параметры: … - теже параметры, что у предыдущего запроса
- stores - идентификаторы рассматриваемых складов, указанные через запятую.
- filter - тело запроса, переданное методом POST. Реализует фильтрацию по списку штрих-кодов: <filter><barcodes><barcode>12334…</barcode>…</barcodes></filter>.
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<items type="array">
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product id="123" extId="3004">Товар 1</product>
<modification>
<parameter name="Размер">55</parameter>
</modification>
<quantity>100</quantity>
<price>10</price>
<cost>2</cost>
<currency>RUB</currency>
<rate>1</rate>
<barcodes>
<barcode>2047308355270</barcode>
</barcodes>
</item>
<item id="010ef0a8841bd2490a7e39a474cfed03">
<product id="123" extId="3004">Товар 1</product>
<modification>
<parameter name="Размер">57</parameter>
</modification>
<quantity>10</quantity>
<price>10</price>
<cost>2</cost>
<currency>RUB</currency>
<rate>1</rate>
</item>
</items>
Получение торговых предложений (формат ICML)
Атрибут «quantity» тега <offer> в ответе содержит количество товарной позиции на всех складах.
Запроc:
GET /admin/icml.xml
Параметры:
- stores - идентификаторы рассматриваемых складов, указанные через запятую.
- good-filter - фильтр по параметрам товара в формате JSON. Например: {«parameters»:[{«ns»:«wb»,«name»:«Комплектация», «value»:«кеды»}, {«name»:«Торговая марка», «value»:«Vorsh»}], «name»:«%Кроссовки V534%»,«article»:«V534 черн CITY»}
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<yml_catalog date="2013-06-20 10:09:18">
<shop>
<name>Vorsh</name>
<company>Интернет-магазин Vorsh</company>
<categories>
<category id="12">Кроссовки</category>
<category id="13">Мокасины</category>
<category id="14">Туфли</category>
<category id="15">Ботинки</category>
<category id="16">Сабо</category>
<category id="17">Сандалеты</category>
<category id="18">Полусапоги</category>
</categories>
<offers>
<offer id="97709e3f36e134e02ca69192ba8414da" productId="5970" quantity="0">
<price>4700.00</price>
<xmlId>97709e3f36e134e02ca69192ba8414da</xmlId>
<purchasePrice>2150.00</purchasePrice>
<categoryId>12</categoryId>
<name>Vorsh Кроссовки V534 черн CITY "черная кожа шнурки" (Размер 39)</name>
<productName>Vorsh Кроссовки V534 черн CITY "черная кожа шнурки"</productName>
<picture>http://localhost/clients_as/vmens/images/3338.jpg</picture>
<picture>http://localhost/clients_as/vmens/images/3170.jpg</picture>
<param name="Артикул" code="article">V534 черн CITY</param>
<param name="Размер" is-modificator="1">39</param>
<param name="Цвет" is-modificator="0">Черный</param>
<param name="Подкладка" is-modificator="0">натур. кожа</param>
<param name="Материал верха" is-modificator="0">натур. кожа</param>
<param name="Производство" is-modificator="0">Bochetti</param>
<param name="Тип товара" is-modificator="0">обычный</param>
<barcode>2083782861821</barcode>
</offer>
<offer id="c5febc1bc1e95d99622e53069b51f3f6" productId="5970" quantity="2">
<price>4700.00</price>
<xmlId>c5febc1bc1e95d99622e53069b51f3f6</xmlId>
<purchasePrice>2150.00</purchasePrice>
<categoryId>12</categoryId>
<name>Vorsh Кроссовки V534 черн CITY "черная кожа шнурки" (Размер 40)</name>
<productName>Vorsh Кроссовки V534 черн CITY "черная кожа шнурки"</productName>
<picture>http://localhost/clients_as/vmens/images/3338.jpg</picture>
<picture>http://localhost/clients_as/vmens/images/3170.jpg</picture>
<param name="Артикул" code="article">V534 черн CITY</param>
<param name="Размер" is-modificator="1">40</param>
<param name="Цвет" is-modificator="0">Черный</param>
<param name="Подкладка" is-modificator="0">натур. кожа</param>
<param name="Материал верха" is-modificator="0">натур. кожа</param>
<param name="Производство" is-modificator="0">Bochetti</param>
<param name="Тип товара" is-modificator="0">обычный</param>
<barcode>2092300603737</barcode>
</offer>
<offer id="1430b747b8dfae0894c1b72443553aad" productId="5970" quantity="1">
<price>4700.00</price>
<xmlId>1430b747b8dfae0894c1b72443553aad</xmlId>
<purchasePrice>2150.00</purchasePrice>
<categoryId>12</categoryId>
<name>Vorsh Кроссовки V534 черн CITY "черная кожа шнурки" (Размер 41)</name>
<productName>Vorsh Кроссовки V534 черн CITY "черная кожа шнурки"</productName>
<picture>http://localhost/clients_as/vmens/images/3338.jpg</picture>
<picture>http://localhost/clients_as/vmens/images/3170.jpg</picture>
<param name="Артикул" code="article">V534 черн CITY</param>
<param name="Размер" is-modificator="1">41</param>
<param name="Цвет" is-modificator="0">Черный</param>
<param name="Подкладка" is-modificator="0">натур. кожа</param>
<param name="Материал верха" is-modificator="0">натур. кожа</param>
<param name="Производство" is-modificator="0">Bochetti</param>
<param name="Тип товара" is-modificator="0">обычный</param>
<barcode>2090315165004</barcode>
</offer>
</offers>
</shop>
</yml_catalog>
Категории товаров
Получение списка категорий
Запроc:
GET /admin/categories.xml
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<categories type="array">
<category id=23>
<name>Брюки</name>
<created type="timestamp">2012-01-01 01:01:01 +0400</created>
</category>
<category id=25>
<name>Сапоги</name>
<created type="timestamp">2012-01-01 01:01:01 +0400</created>
</category>
</categories>
Запрос категории
Запроc :
GET /admin/categories/25.xml
Ответ:
<?xml version="1.0" encoding="UTF-8"?> <category id=25> <name>Одежда/Костюмы</name> <created type="timestamp">2012-01-01 01:01:01 +0400</created> </category>
Добавление категории
Запроc:
POST /admin/categories.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?> <category> <name>Одежда/Мужская/Сорочки</name> </category>
Ответ:
<?xml version="1.0" encoding="UTF-8"?> <category id="56"> <name>Одежда/Мужская/Сорочки</name> <created type="timestamp">2012-01-01 01:01:01 +0400</created> </category>
Изменение категории
Запроc:
PUT /admin/categories/55.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?> <category> <name>Сапоги</name> </category>
Ответ:
<?xml version="1.0" encoding="UTF-8"?> <category id=55> <name>Сапоги</name> <created type="timestamp">2012-01-01 01:01:01 +0400</created> </category>
Удаление категории
Запроc:
DELETE /admin/categories/77.xml
Ответ:
HTTP/1.1 200 OK
Товары
Получение списка товаров
Запроc:
GET /admin/products.xml?parameter=value
По-умолчанию, список сортируется по времени создания товара. Чтобы поменять направление сортировки используйте параметр order-by-creation=desc
Параметры:
- page - номер страницы, начиная с нуля. Используется для листания списка. Чтобы получить все, нужно в цикле листать страницы пока не закончатся позиции.
- page-size - размер страницы (количество товаров на странице). По-умолчанию и не может превышать 250.
- order-by-creation - сортировать по времени создания товара. Возможные значения desc (по-убыванию) и asc (по-возрастанию).
- stores - признак наличия товара на одном из указанных складов (перечислите id складов через запятую) (фильтр)
- category - ID категории (фильтр)
- article - маска поиска по артикулу (фильтр).
- name - маска поиска по названию (фильтр)
- barcode - поиск по штрих-коду (фильтр)
- extId - поиск по внешнему коду
Например, чтобы отобрать все товары, у которых артикул начинается на «2», используйте в запросе параметр: …&article=2%25 , где %25 в url-кодировке (символ % ) означает любую последовательность символов
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<products type="array">
<product id="234234" hidden="false" extId="3004">
<category id="3333">Одежда/Мужская/Сорочки</category>
<name>Сорочка мужская B101</name>
<article>W-101/202</article>
<description>Полное описание товара</description>
<short-description>Краткое описание</short-description>
<created>2009-06-04 14:22:34 +0400</created>
<parameters>
<parameter name="Торговая марка">Velaner</parameter>
<parameter name="Производитель">Россия, ООО "Ромашка"</parameter>
<parameter name="Состав">100% хлопок</parameter>
<parameter name="Дата производства">2014-02-13</parameter>
</parameters>
<default-prices>
<cost>856</cost>
<price>1500</price>
<old-price>2000</old-price>
</default-prices>
<vendor id="10">Chili Technologies S.L.</vendor>
<modifications>
<modification>
<parameter name="Размер">XS</parameter>
<barcodes>
<barcode>2046497976600</barcode>
<barcode>4602347974121</barcode>
</barcodes>
</modification>
<modification>
<parameter name="Размер">S</parameter>
<barcodes>
<barcode>2046497345345</barcode>
</barcodes>
</modification>
<modification>
<parameter name="Размер">M</parameter>
<barcodes>
<barcode>2046497345764</barcode>
<barcode>2046497345466</barcode>
</barcodes>
</modification>
</modifications>
<images>
<image id="123123">
<original-url>image.png</original-url>
<url>https://image.antisklad.ru/12349.jpg</url>
<description/>
</image>
<image id="123321">
<original-url>image.png</original-url>
<url>https://image.antisklad.ru/12349.jpg</url>
<description/>
</image>
</images>
</product>
<product id="234234" extId="3005">
<category id="3333">Одежда/Мужская/Брюки</category>
<name>Брюки мужские B2101</name>
<article>W-1014/2002</article>
<description>Полное описание товара</description>
<created>2009-06-04 14:22:34 +0400</created>
<parameters>
<parameter name="Торговая марка">Velaner</parameter>
<parameter name="Производитель">Россия, ООО "Ромашка"</parameter>
<parameter name="Состав">70% хлопок</parameter>
<parameter name="Дата производства">2014-02-14</parameter>
</parameters>
<default-prices>
<cost>786</cost>
<price>2000</price>
<old-price>2400</old-price>
</default-prices>
<vendor id="10">Chili Technologies S.L.</vendor>
<modifications>
<modification>
<parameter name="Размер">44</parameter>
<parameter name="Рост">2</parameter>
<barcodes>
<barcode>2046495345355</barcode>
<barcode>2046345345554</barcode>
</barcodes>
</modification>
<modification>
<parameter name="Размер">44</parameter>
<parameter name="Рост">3</parameter>
<barcodes>
<barcode>2046497345345</barcode>
</barcodes>
</modification>
<modification>
<parameter name="Размер">46</parameter>
<parameter name="Рост">2</parameter>
<barcodes/>
</modification>
</modifications>
<images>
<image id="1234">
<original-url>image4.png</original-url>
<url>https://image.antisklad.ru/1259.jpg</url>
<description/>
</image>
<image id="1231">
<original-url>image5.png</original-url>
<url>https://image.antisklad.ru/123.jpg</url>
<description/>
</image>
</images>
</product>
</products>
Запрос товарной позиции
Запроc:
GET /admin/products/234234.xml
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<product id="234234" hidden="false" extId="3004">
<category id="3333">Одежда/Мужская/Сорочки</category>
<name>Сорочка мужская B101</name>
<article>W-101/202</article>
<description><p><span style="font-family: 'Times New Roman'; font-size: 16px;"> </span></p></description>
<short-description>Тут краткое описание товара</short-description>
<created>2009-06-04 14:22:34 +0400</created>
<parameters>
<parameter name="Торговая марка">Velaner</parameter>
<parameter name="Производитель">Россия, ООО "Ромашка"</parameter>
<parameter name="Состав">100% хлопок</parameter>
<parameter name="Дата производства">2014-02-13</parameter>
</parameters>
<default-prices>
<cost>786</cost>
<price>2000</price>
<old-price>2400</old-price>
</default-prices>
<vendor id="10">Chili Technologies S.L.</vendor>
<modifications>
<modification itemId="60a70f9aeb399bec32500d331bbe4152">
<parameter name="Размер">XS</parameter>
<barcodes>
<barcode>2046497976600</barcode>
<barcode>4602347974121</barcode>
</barcodes>
</modification>
<modification itemId="b78f692708305e860c1068819a74457e">
<parameter name="Размер">S</parameter>
<barcodes>
<barcode>2046497972345</barcode>
</barcodes>
</modification>
<modification itemId="5bb39ec9322f1a831f6c1d3f7bd883ac">
<parameter name="Размер">M</parameter>
<barcodes>
<barcode>2046497976600</barcode>
</barcodes>
</modification>
</modifications>
<images>
<image id="123123">
<original-url>image.png</original-url>
<url>https://image.antisklad.ru/12349.jpg</url>
<description/>
</image>
<image id="123321">
<original-url>image.png</original-url>
<url>https://image.antisklad.ru/12349.jpg</url>
<description/>
</image>
</images>
</product>
Добавление товара
Запрос:
POST /admin/products.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?>
<product extId="123123123">
<categoryId>202</categoryId> или <category>Одежда/Мужская/Сорочки</category>
<name>Сорочка мужская B101</name>
<article>W-101/202</article>
<description>Полное описание товара</description>
<short-description>Краткое описание</short-description>
<default-prices>
<cost>856</cost>
<price>1500</price>
<old-price>2000</old-price>
</default-prices>
<parameters>
<parameter name="Торговая марка">Velaner</parameter>
<parameter name="Производитель">Россия, ООО "Ромашка"</parameter>
<parameter name="Состав">100% хлопок</parameter>
<parameter name="Дата производства">2014-02-13</parameter>
</parameters>
<barcodes><barcode>2055566611122</barcode></barcodes> /* если без модификаций товаров */
<modifications>
<modification itemId="03f544613917945245041ea1581df0c2">
<parameter name="Размер">XS</parameter>
<barcodes>
<barcode>2046497345345</barcode>
</barcodes>
</modification>
<modification itemId="a20695d961021da9ca2faca910b5d7de">
<parameter name="Размер">S</parameter>
<barcodes>
<barcode>2046497375454</barcode>
</barcodes>
</modification>
<modification itemId="9f36407ead0629fc166f14dde7970f68">
<parameter name="Размер">M</parameter>
<barcodes>
<barcode>2046498767834</barcode>
</barcodes>
</modification>
</modifications>
<images>
<image>
<original-url>http://site.ru/image1.png</original-url>
<description>Вид сбоку</description>
</image>
<image>
<original-url>http://site.ru/image2.png</original-url>
<description/>
</image>
</images>
</product>
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<product id="234234">
<created>2009-06-04 14:22:34 +0400</created>
<category id="3333">Одежда/Мужская/Сорочки</category>
<name>Сорочка мужская B101</name>
<article>W-101/202</article>
<description>Полное описание товара</description>
<short-description>Краткое описание</short-description>
<parameters>
<parameter name="Торговая марка">Velaner</parameter>
<parameter name="Производитель">Россия, ООО "Ромашка"</parameter>
<parameter name="Состав">100% хлопок</parameter>
<parameter name="Дата производства">2014-02-13</parameter>
</parameters>
<modifications>
<modification>
<parameter name="Размер">XS</parameter>
<barcodes>
<barcode>2046497345345</barcode>
</barcodes>
</modification>
<modification>
<parameter name="Размер">S</parameter>
<barcodes>
<barcode>2046497375454</barcode>
</barcodes>
</modification>
<modification>
<parameter name="Размер">M</parameter>
<barcodes>
<barcode>2046498767834</barcode>
</barcodes>
</modification>
</modifications>
<images>
<image id="123123">
<original-url>http://site.ru/image1.png</original-url>
<url>https://image.antisklad.ru/12349.png</url>
<description>Вид сбоку</description>
</image>
<image id="123321">
<original-url>http://site.ru/image2.png</original-url>
<url>https://image.antisklad.ru/12349.png</url>
<description/>
</image>
</images>
</product>
В случае, если добавляемый товар с указанным extId уже имеется в списке действующих товаров или в списке удаленных (в корзине), то возвращается ошибка 409 с XML конфликтующего товара. Чтобы отличить удаленный товар от действующего, используйте атрибут deleted=0|1 тега <product/> конфликтующего товара.
Добавление множества товаров
При необходимости добавить в рамках одной транзакции множество товаров, необходимо их передавать в корневом тэге <products> Разрешается создавать в одном запросе не более 300 товаров.
Запрос:
POST /admin/products.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?> <products> <product>...</product> ... <product>...</product> </products>
Ответ:
HTTP/1.1 200 OK <products> <product>...</product> ... <product>...</product> </products>
Изменение товара
Запроc:
PUT /admin/products/234234.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?>
<product>
<extId>3004</extId>
<categoryId>202</categoryId>
<name>Сорочка мужская B101</name>
<article>W-101/202</article>
<description>Полное описание товара</description>
<short-description>Краткое описание</short-description>
<parameters>
<parameter name="Торговая марка">Velaner</parameter>
<parameter name="Производитель">Россия, ООО "Ромашка"</parameter>
<parameter name="Состав">100% хлопок</parameter>
<parameter name="Дата производства">2014-02-13</parameter>
</parameters>
<modifications>
<modification>
<parameter name="Размер">XS</parameter>
<barcodes>
<barcode>2046497345345</barcode>
</barcodes>
</modification>
<modification>
<parameter name="Размер">S</parameter>
<barcodes/>
</modification>
<modification>
<parameter name="Размер">M</parameter>
<barcodes>
<barcode>2046498767834</barcode>
</barcodes>
</modification>
</modifications>
<images>
<image>
<original-url>http://site.ru/image1.png</original-url>
<description>Вид сбоку</description>
</image>
<image>
<original-url>http://site.ru/image2.png</original-url>
<description/>
</image>
</images>
</product>
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<product id="234234" extId="3004">
<created>2009-06-04 14:22:34 +0400</created>
<category id="3333">Одежда/Мужская/Сорочки</category>
<name>Сорочка мужская B101</name>
<article>W-101/202</article>
<description>Полное описание товара</description>
<short-description>Краткое описание</short-description>
<parameters>
<parameter name="Торговая марка">Velaner</parameter>
<parameter name="Производитель">Россия, ООО "Ромашка"</parameter>
<parameter name="Состав">100% хлопок</parameter>
<parameter name="Дата производства">2014-02-13</parameter>
</parameters>
<modifications>
<modification>
<parameter name="Размер">XS</parameter>
<barcodes>
<barcode>2046497345345</barcode>
</barcodes>
</modification>
<modification>
<parameter name="Размер">S</parameter>
<barcodes/>
</modification>
<modification>
<parameter name="Размер">M</parameter>
<barcodes>
<barcode>2046498767834</barcode>
</barcodes>
</modification>
</modifications>
<images>
<image id="123123">
<original-url>http://site.ru/image1.png</original-url>
<url>https://image.antisklad.ru/12349.png</url>
<description>Вид сбоку</description>
</image>
<image id="123321">
<original-url>http://site.ru/image2.png</original-url>
<url>https://image.antisklad.ru/12349.png</url>
<description/>
</image>
</images>
</product>
Удаление товара
Запроc:
DELETE /admin/products/12343.xml
Ответ:
HTTP/1.1 200 OK
Клиенты
Получение списка клиентов
Запроc:
GET /admin/clients.xml?parameter=value
Параметры:
- page - номер страницы, начиная с нуля. Используется для листания списка. Чтобы получить все нужно в цикле листать страницы пока не закончатся позиции.
- page-size - размер страницы (количество клиентов на странице). По-умолчанию и не может превышать 250.
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<clients type="array">
<client id="167">
<name>Иванов Иван Иванович</name>
<created>2013-08-25 20:32:08+04</created>
<phone>+79115554126</phone>
<card>26323</card>
<discount>5</discount>
<address>ул.Ленина д.5</address>
<email>ivanov@mail.ru</email>
<comment/>
<birthday>1996-01-25</birthday>
</client>
<client id="185">
<name>Сидоров Сидр Сидорович</name>
<created>2013-09-24 12:05:20+04</created>
<phone>+79125550252</phone>
<card>27652</card>
<discount>5</discount>
<address/>
<email>sidr@yandex.ru</email>
<comment/>
<birthday/>
</client>
</clients>
Получение параметров клиента
Запрос:
GET /admin/clients/167.xml
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<client id="167">
<type>person</type>
<name>Иванов Иван Иванович</name>
<created>2013-08-25 20:32:08+04</created>
<phone>+79115554126</phone>
<card>26323</card>
<discount>5</discount>
<start-sales-sum>2000</start-sales-sum>
<address>ул.Ленина д.5</address>
<email>ivanov@mail.ru</email>
<comment/>
<sex>1</sex>
<birthday>1996-01-25</birthday>
</client>
Добавление клиента
Запрос:
POST /admin/clients.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?>
<client>
<name>Иванов Иван Иванович</name>
<phone>+79115554126</phone>
<card>26323</card>
<discount>5</discount>
<address>ул.Ленина д.5</address>
<email>ivanov@mail.ru</email>
<comment/>
<birthday>1996-01-25</birthday>
</client>
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<client id="167">
<name>Иванов Иван Иванович</name>
<created>2013-08-25 20:32:08+04</created>
<phone>+79115554126</phone>
<card>26323</card>
<discount>5</discount>
<address>ул.Ленина д.5</address>
<email>ivanov@mail.ru</email>
<comment/>
<birthday>1996-01-25</birthday>
</client>
Изменение клиента
Запрос:
PUT /admin/clients/167.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?>
<client>
<name>Иванов Иван Иванович</name>
<phone>+79115554126</phone>
<card>26323</card>
<discount>5</discount>
<address>ул.Ленина д.5</address>
<email>ivanov@mail.ru</email>
<comment/>
<birthday>1996-01-25</birthday>
</client>
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<client id="167">
<name>Иванов Иван Иванович</name>
<created>2013-08-25 20:32:08+04</created>
<phone>+79115554126</phone>
<card>26323</card>
<discount>5</discount>
<address>ул.Ленина д.5</address>
<email>ivanov@mail.ru</email>
<comment/>
<birthday>1996-01-25</birthday>
</client>
Удаление клиента
Запроc:
DELETE /admin/clients/234.xml
Ответ:
HTTP/1.1 200 OK
Пользователи
Получение списка пользователей
Запроc:
GET /admin/users.xml?parameter=value
Параметры:
- page - номер страницы, начиная с нуля. Используется для листания списка. Чтобы получить все нужно в цикле листать страницы пока не закончатся позиции.
- page-size - размер страницы (количество пользователей на странице). По-умолчанию и не может превышать 250.
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<users type="array">
<user id="1">
<name>Наталья Иванова</name>
<created>2013-08-25 20:32:08+04</created>
<phone>+79115554126</phone>
<email>ivanov@mail.ru</email>
</user>
<user id="2">
<name>Марина Петрова</name>
<created>2013-09-24 12:05:20+04</created>
<phone>+79125550252</phone>
<email>sidr@yandex.ru</email>
</user>
</users>
Добавление пользователя
Запроc:
POST /admin/users.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?> <user> <first_name>Мария</first_name> <login>Мария</login> <password>md5(явный_пароль)</password> </user>
Ответ:
<?xml version="1.0" encoding="UTF-8"?> <shop id="3"> <name>Новый магазин</name> <created type="timestamp">2012-01-01 01:01:01 +0400</created> </category>
Получение параметров пользователя
Запрос:
GET /admin/users/1.xml
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<user id="1">
<name>Наталья Иванова</name>
<created>2013-08-25 20:32:08+04</created>
<phone>+79115554126</phone>
<email>ivanov@mail.ru</email>
</user>
Заказы
Список заказов
Запрос:
GET /admin/orders.xml?parameter=value
Параметры:
- page - номер страницы, начиная с нуля. Используется для листания списка. Чтобы получить все нужно в цикле листать страницы пока не закончатся заказы.
- page-size - размер страницы (количество заказов на странице). По-умолчанию и не может превышать 250.
- id - список идентификаторов заказов, перечисленных через запятую без пробелов
- products=detail - развернутые теги <product>
- show-barcodes - признак наличия штрих-кодов в ответе
В ответе присутствует информация о резерве, если заказ еще не отправлен:
<reserved-percent type="integer">73</reserved-percent> - показывает процент реального наполнения товаром по заказу <reserved-all>0</reserved-all> - означает признак полного резервированная (заказ можно отправлять клиенту) <reserve id="21153">Резерв по заказу №16</reserve> - краткую информацию о резерве. Для получения полной информации по резерву необходимо выполнить соответствующий запрос admin/reserves/16.xml
Ответ:
<orders type="array">
<order id="16">
<shop id="1">Магазин "Ромашка"</shop>
<number>10003</number>
<client id="148">
<name>Сидоров Сидр Сергеевич</name>
<created>2013-08-15 20:05:41+04</created>
<phone>+79215454545</phone>
<card>26725</card>
<discount>5</discount>
<address>ул. Сидорова 55 кв.44</address>
<email>sidr@mail.ru</email>
<comment/>
<birthday>1984-12-23</birthday>
</client>
<created>2014-06-26 21:44:27+04</created>
<status>new</status>
<summa>3360.15</summa>
<delivery-type id="4">Курьером</delivery-type>
<delivery-cost>300.15</delivery-cost>
<delivery-address>на деревню дедушке</delivery-address>
<delivery-begin-time/>
<delivery-end-time>2012-12-12 00:00:00+04</delivery-end-time>
<pay-time/>
<pay-type>Наличными</pay-type>
<comment>оплачено 1000р осталось 2360,15р.</comment>
<items type="array">
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product id="1056" ext="4334">
<name>Рубашка Апельсин 33549 в полоску</name>
<article>33549</article>
<category id="3">Рубашка</category>
<parameters>
<parameter name="Торговая марка">Апельсин</parameter>
<parameter name="Производитель">Китай</parameter>
</parameters>
<images>
<image id="1037">
<original-url>u2ccsAso5FM.jpg</original-url>
<url>https://demo.antisklad.ru/?image=1037</url>
<description>Вид сверху</description>
</image>
</images>
<created>2013-02-26 20:15:00+04</created>
</product>
<modification>
<parameter name="Размер">40</parameter>
</modification>
<price>2400</price>
<discount>0</discount>
<quantity>1</quantity>
<barcodes>
<barcode>2032914541315</barcode>
</barcodes>
</item>
<item id="010ef0a8841bd2490a7e39a474cfed03">
<product id="2557">
<name>Чулки а-355</name>
<article>а-355</article>
<category id="76">Чулки</category>
<parameters>
<parameter name="Торговая марка">Колобок</parameter>
<parameter name="Производитель">Россия</parameter>
</parameters>
<images>
<image id="1037">
<original-url>chulki-355.jpg</original-url>
<url>https://demo.antisklad.ru/?image=3455</url>
<description/>
</image>
</images>
<created>2013-06-16 22:16:00+04</created>
</product>
<modification>
<parameter name="Рост">30</parameter>
<parameter name="Цвет">Красный</parameter>
</modification>
<price>400</price>
<discount>70</discount>
<quantity>2</quantity>
</item>
</items>
<reserved-percent type="integer">73</reserved-percent>
<reserved-all>0</reserved-all>
<reserve id="21153">Резерв по заказу №16</reserve>
</order>
</orders>
Информация о заказе
Запрос:
GET /admin/orders/16.xml?parameter=value
Параметры:
- products=detail - развернутые теги <product>
- show-barcodes - признак наличия штрих-кодов в ответе
В ответе присутствует информация о резерве, если заказ еще не отправлен:
<reserved-percent type="integer">73</reserved-percent> - показывает процент реального наполнения товаром по заказу <reserved-all>0</reserved-all> - означает признак полного резервированная (заказ можно отправлять клиенту) <reserve id="21153">Резерв по заказу №16</reserve> - краткую информацию о резерве.
Для получения полной информации по резерву необходимо выполнить соответствующий запрос admin/reserves/16.xml
Ответ:
<order id="16">
<shop id="1">Магазин "Ромашка"</shop>
<number>10003</number>
<client id="148">
<name>Сидоров Сидр Сергеевич</name>
<created>2013-08-15 20:05:41+04</created>
<phone>+79215454545</phone>
<card>26725</card>
<discount>5</discount>
<address>ул. Сидорова 55 кв.44</address>
<email>sidr@mail.ru</email>
<comment/>
<birthday>1984-12-23</birthday>
</client>
<created>2014-06-26 21:44:27+04</created>
<status>new</status>
<dispatch-required-time/>
<summa>3360.15</summa>
<delivery-type id="4">Курьером</delivery-type>
<delivery-cost>300.15</delivery-cost>
<delivery-address>на деревню дедушке</delivery-address>
<delivery-begin-time/>
<delivery-end-time>2012-12-12 00:00:00+04</delivery-end-time>
<pay-time/>
<pay-type>Наличными</pay-type>
<comment>оплачено 1000р осталось 2360,15р.</comment>
<items type="array">
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product id="1056" ext="4333">
<name>Рубашка Апельсин 33549 в полоску</name>
<article>33549</article>
<category id="3">Рубашка</category>
<parameters>
<parameter name="Торговая марка">Апельсин</parameter>
<parameter name="Производитель">Китай</parameter>
</parameters>
<images>
<image id="1037">
<original-url>u2ccsAso5FM.jpg</original-url>
<url>https://demo.antisklad.ru/?image=1037</url>
<description>Вид сверху</description>
</image>
</images>
<created>2013-02-26 20:15:00+04</created>
</product>
<modification>
<parameter name="Размер">40</parameter>
</modification>
<price>2400</price>
<discount>0</discount>
<quantity>1</quantity>
<barcodes>
<barcode>2032914541315</barcode>
</barcodes>
</item>
<item id="010ef0a8841bd2490a7e39a474cfed03">
<product id="2557">
<name>Чулки а-355</name>
<article>а-355</article>
<category id="76">Чулки</category>
<parameters>
<parameter name="Торговая марка">Колобок</parameter>
<parameter name="Производитель">Россия</parameter>
</parameters>
<images>
<image id="1037">
<original-url>chulki-355.jpg</original-url>
<url>https://demo.antisklad.ru/?image=3455</url>
<description/>
</image>
</images>
<created>2013-06-16 22:16:00+04</created>
</product>
<modification>
<parameter name="Рост">30</parameter>
<parameter name="Цвет">Красный</parameter>
</modification>
<price>400</price>
<discount>70</discount>
<quantity>2</quantity>
</item>
</items>
<reserved-percent type="integer">73</reserved-percent>
<reserved-all>0</reserved-all>
<reserve id="21153">Резерв по заказу №16</reserve>
</order>
Изменение заказа
Запрос:
PUT /admin/orders/16.xml
При указании тега <reserved-all>1</reserved-all> система попытается зарезервировать полностью товар для заказа. Если это не удается, то возвращается ошибка.
Тело запроса:
<order>
<number>10003</number>
<client>148</client>
<dispatch-required-time/>
<status>accepted</status>
<delivery-type>Курьером</delivery-type>
<delivery-cost>300.15</delivery-cost>
<delivery-address>на деревню дедушке</delivery-address>
<delivery-begin-time/>
<delivery-end-time>2012-12-12 00:00:00+04</delivery-end-time>
<pay-time/>
<pay-type>Наличными</pay-type>
<comment>заказ изменен</comment>
<items type="array">
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product>2557</product>
<modification>
<parameter name="Рост">30</parameter>
<parameter name="Цвет">Зеленый</parameter>
</modification>
<price>400</price>
<discount>70</discount>
<quantity>5</quantity>
</item>
</items>
<reserved-all>1</reserved-all>
</order>
Ответ:
<order id="16">
<shop>1</shop>
<number>10003</number>
<client id="148">
<name>Сидоров Сидр Сергеевич</name>
<created>2013-08-15 20:05:41+04</created>
<phone>+79215454545</phone>
<card>26725</card>
<discount>5</discount>
<address>ул. Сидорова 55 кв.44</address>
<email>sidr@mail.ru</email>
<comment/>
<birthday>1984-12-23</birthday>
</client>
<created>2014-06-26 21:44:27+04</created>
<status>new</status>
<dispatch-required-time/>
<summa>1960.15</summa>
<delivery-type id="4">Курьером</delivery-type>
<delivery-cost>300.15</delivery-cost>
<delivery-address>на деревню дедушке</delivery-address>
<delivery-begin-time/>
<delivery-end-time>2012-12-12 00:00:00+04</delivery-end-time>
<pay-time/>
<pay-type>Наличными</pay-type>
<comment>заказ изменен</comment>
<items type="array">
<item id="010ef0a8841bd2490a7e39a474cfed03">
<product id="2557" ext="4334">
<name>Чулки а-355</name>
<article>а-355</article>
<category id="76">Чулки</category>
<parameters>
<parameter name="Торговая марка">Колобок</parameter>
<parameter name="Производитель">Россия</parameter>
</parameters>
<images>
<image id="1037">
<original-url>chulki-355.jpg</original-url>
<url>https://demo.antisklad.ru/?image=3455</url>
<description/>
</image>
</images>
<created>2013-06-16 22:16:00+04</created>
</product>
<modification>
<parameter name="Рост">30</parameter>
<parameter name="Цвет">Красный</parameter>
</modification>
<price>400</price>
<discount>70</discount>
<quantity>5</quantity>
</item>
</items>
<reserved-percent type="integer">100</reserved-percent>
<reserved-all>1</reserved-all>
<reserve id="21153">Резерв по заказу №16</reserve>
</order>
Добавление заказа
Запрос:
POST /admin/orders.xml
Товарную позицию можно идентифицировать 3-мя способами перечисленными в разделе добавления поступления.
- independent-purchase: указывает, что при создании заказа необходимо выполнить поступление соответствующего товара на склад, в результате чего товар в свободном остатке не изменится.
- find-impersonal-reserve: указывает, что прежде чем пытаться резервировать товар под заказ, сначала пытаться найти ранее сформированный резерв, соответствующий этому заказу.
- all: указывает, что пользователь не может менять статус во всех случаях.
- перечисленные через запятую статусы: указывает, что пользователь не может менять статус только тем заказам, статус которых указан в перечислении.
Тело запроса:
<order ns="ozon">
<shop>1</shop>
<number>10150</number>
<creation-time>2023-01-22 00:00:00+04</creation-time>
<status>packing</status>
<status-time>2023-01-23 00:00:00+04</status-time>
<client>238</client>
<dispatch-required-time/>
<delivery-type id="8">Самовывоз</delivery-type>
<delivery-cost>500</delivery-cost>
<delivery-address>на деревню бабушке</delivery-address>
<delivery-begin-time/>
<delivery-end-time>2023-01-25 00:00:00+04</delivery-end-time>
<pay-time/>
<pay-type>Наличными</pay-type>
<comment>новый супер заказ</comment>
<items type="array">
<item> /* запись по id товара и модификации без кода позиции */
<product>6557</product>
<modification>
<parameter name="Цвет">Синий</parameter>
</modification>
<price>300</price>
<discount>60</discount>
<quantity>1</quantity>
</item>
<item id="010ef0a8841bd2490a7e39a474cfed03"> /* запись по коду позиции */
<price>1300</price>
<discount>0</discount>
<quantity>2</quantity>
</item>
</items>
<reserved-all>1</reserved-all>
</order>
Ответ:
<order id="26" ns="ozon">
<shop>1</shop>
<number>10150</number>
<client id="238">
<name>Иванов Иван Сергеевич</name>
<created>2013-03-25 10:05:31+04</created>
<phone>+79291212121</phone>
<card>3425</card>
<discount>3</discount>
<address>ул. Иванова 55 кв.44</address>
<email>ivan@mail.ru</email>
<comment/>
<birthday>1904-10-23</birthday>
</client>
<created>2012-06-26 21:44:27+04</created>
<dispatch-required-time/>
<status>new</status>
<summa>3140</summa>
<delivery-type id="8">Самовывоз</delivery-type>
<delivery-cost>500</delivery-cost>
<delivery-address>на деревню бабушке</delivery-address>
<delivery-begin-time/>
<delivery-end-time>2013-12-12 00:00:00+04</delivery-end-time>
<pay-time/>
<pay-type>Наличными</pay-type>
<comment>новый супер заказ</comment>
<items type="array">
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product id="6557">
<name>Носки б-355</name>
<article>б-355</article>
<category id="54">Носки</category>
<parameters>
<parameter name="Торговая марка">Колобок</parameter>
<parameter name="Производитель">Россия</parameter>
</parameters>
<images/>
<created>2013-01-16 02:06:10+04</created>
</product>
<modification>
<parameter name="Цвет">Синий</parameter>
</modification>
<price>300</price>
<discount>60</discount>
<quantity>1</quantity>
</item>
<item id="010ef0a8841bd2490a7e39a474cfed03">
<product id="67">
<name>Табурет</name>
<article>2125м</article>
<category id="58">Мебель</category>
<parameters>
<parameter name="Цвет">Красный</parameter>
</parameters>
<images/>
<created>2013-06-24 22:06:10+04</created>
</product>
<modification/>
<price>1300</price>
<discount>0</discount>
<quantity>2</quantity>
</item>
</items>
<reserved-percent type="integer">100</reserved-percent>
<reserved-all>1</reserved-all>
<reserve id="21153">Резерв по заказу №16</reserve>
</order>
Удаление заказа
Запрос:
DELETE /admin/orders/16.xml
Ответ:
HTTP/1.1 200 OK
Список статусов заказов
Запрос:
GET /admin/orders-statuses.xml
Ответ:
<orders-statuses type="array"> <status id="new">Новый</status> <status id="accepted">В обработке</status> <status id="approved">Согласован</status> <status id="packing">На комплектации</status> <status id="packed">Готов к отправке</status> <status id="dispatched">Отправлен</status> <status id="delivered">Выполнен</status> <status id="declined">Отменен</status> </orders-statuses>
Список типов оплаты
Запрос:
GET /admin/pay-types.xml
Ответ:
<pay-types type="array">
<pay-type id="bn">Безналичный расчет</pay-type>
<pay-type id="cash">Наличными</pay-type>
</pay-types>
Список типов доставки
Запрос:
GET /admin/delivery-types.xml
Ответ:
<delivery-types type="array">
<delivery-type id="1">Доставка курьером в черте города</delivery-type>
<delivery-type id="2">Самовывоз</delivery-type>
</delivery-types>
Продажи
Список продаж
Запрос:
GET /admin/sales.xml?parameter=value
Параметры:
- page - номер страницы, начиная с нуля. Используется для листания списка. Чтобы получить все нужно в цикле листать страницы пока не закончатся продажи.
- page-size - размер страницы (количество продаж на странице). По-умолчанию и не может превышать 250.
- products=detail - развернутые теги <product>
- show-barcodes - признак наличия штрих-кодов в ответе
Ответ:
<sales type="array">
<sale id="16">
<shop id="1">Ромашка</shop>
<store id="1">Склад "Ромашка"</store>
<client id="148">Сидоров Сидр Сергеевич</client>
<created>2014-06-26 21:44:27+04</created>
<action-time>2014-06-26 21:44:27+04</action-time>
<summa>3360.15</summa>
<cash>3360.15</cash>
<comment>оплачено наличными</comment>
<items type="array">
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product id="1056">
<name>Рубашка Апельсин 33549 в полоску</name>
<article>33549</article>
<category id="3">Рубашка</category>
<parameters>
<parameter name="Торговая марка">Апельсин</parameter>
<parameter name="Производитель">Китай</parameter>
</parameters>
<images>
<image id="1037">
<original-url>u2ccsAso5FM.jpg</original-url>
<url>https://demo.antisklad.ru/?image=1037</url>
<description>Вид сверху</description>
</image>
</images>
<created>2013-02-26 20:15:00+04</created>
</product>
<modification>
<parameter name="Размер">40</parameter>
</modification>
<price>2400</price>
<discount>0</discount>
<quantity>1</quantity>
<barcodes>
<barcode>2032914541315</barcode>
</barcodes>
</item>
<item id="010ef0a8841bd2490a7e39a474cfed03">
<product id="2557">
<name>Чулки а-355</name>
<article>а-355</article>
<category id="76">Чулки</category>
<parameters>
<parameter name="Торговая марка">Колобок</parameter>
<parameter name="Производитель">Россия</parameter>
</parameters>
<images>
<image id="1037">
<original-url>chulki-355.jpg</original-url>
<url>https://demo.antisklad.ru/?image=3455</url>
<description/>
</image>
</images>
<created>2013-06-16 22:16:00+04</created>
</product>
<modification>
<parameter name="Рост">30</parameter>
<parameter name="Цвет">Красный</parameter>
</modification>
<price>400</price>
<discount>70</discount>
<quantity>2</quantity>
</item>
</items>
</sale>
</sales>
Информация о продаже
Запрос:
GET /admin/sales/16.xml
Параметры:
- products=detail - развернутые теги <product>
- show-barcodes - признак наличия штрих-кодов в ответе
Ответ:
<sale id="16">
<shop id="1">Ромашка</shop>
<store id="1">Склад "Ромашка"</store>
<client id="148">Сидоров Сидр Сергеевич</client>
<created>2014-06-26 21:44:27+04</created>
<action-time>2014-06-26 21:44:27+04</action-time>
<summa>3360.15</summa>
<cash>3360.15</cash>
<comment>оплачено наличными</comment>
<items type="array">
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product id="1056">
<name>Рубашка Апельсин 33549 в полоску</name>
<article>33549</article>
<category id="3">Рубашка</category>
<parameters>
<parameter name="Торговая марка">Апельсин</parameter>
<parameter name="Производитель">Китай</parameter>
</parameters>
<images>
<image id="1037">
<original-url>u2ccsAso5FM.jpg</original-url>
<url>https://demo.antisklad.ru/?image=1037</url>
<description>Вид сверху</description>
</image>
</images>
<created>2013-02-26 20:15:00+04</created>
</product>
<modification>
<parameter name="Размер">40</parameter>
</modification>
<price>2400</price>
<discount>0</discount>
<quantity>1</quantity>
<barcodes>
<barcode>2032914541315</barcode>
</barcodes>
</item>
<item id="010ef0a8841bd2490a7e39a474cfed03">
<product id="2557">
<name>Чулки а-355</name>
<article>а-355</article>
<category id="76">Чулки</category>
<parameters>
<parameter name="Торговая марка">Колобок</parameter>
<parameter name="Производитель">Россия</parameter>
</parameters>
<images>
<image id="1037">
<original-url>chulki-355.jpg</original-url>
<url>https://demo.antisklad.ru/?image=3455</url>
<description/>
</image>
</images>
<created>2013-06-16 22:16:00+04</created>
</product>
<modification>
<parameter name="Рост">30</parameter>
<parameter name="Цвет">Красный</parameter>
</modification>
<price>400</price>
<discount>70</discount>
<quantity>2</quantity>
</item>
</items>
</sale>
Добавление продажи
Запрос:
POST /admin/sales.xml
Каждая товарная позиция может быть идентифицирована как уникальным атрибутом <item id='…'>, полученным ранее, так и тегом <product> с тегом модификации, при необходимости. Атрибут <item id='…'> считается более приоритетным над тегами <product> + <modification>
Тело запроса:
<sale uuid="8d2a202e-4d6b-4d3c-9813-6728dc29baa6">
<shop>1</shop>
<fin_doc_number>1001240016</fin_doc_number>
<client>238</client>
<user>23</user>
<seller>24</seller>
<action-time>2018-10-20 10:36:00</action-time>
<cash>500</cash>
<comment>новая супер продажа</comment>
<items type="array">
<item>
<product>6557</product>
<modification>
<parameter name="Цвет">Синий</parameter>
</modification>
<price>300</price>
<discount>60</discount>
<quantity>1</quantity>
</item>
<item>
<product>67</product>
<modification/>
<price>1300</price>
<discount>0</discount>
<quantity>2</quantity>
</item>
</items>
</sale>
Ответ:
<sale id="26768">
<shop>1</shop>
<fin_doc_number>1001240016</fin_doc_number>
<user id="23">
<name>Иванова Лариса</name>
</user>
<client id="238">
<name>Иванов Иван Сергеевич</name>
<created>2013-03-25 10:05:31+04</created>
<phone>+79291212121</phone>
<card>3425</card>
<discount>3</discount>
<address>ул. Иванова 55 кв.44</address>
<email>ivan@mail.ru</email>
<comment/>
<birthday>1904-10-23</birthday>
</client>
<created>2012-06-26 21:44:27+04</created>
<summa>2840</summa>
<cash>500</cash>
<comment>новая супер продажа</comment>
<items type="array">
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product id="6557">
<name>Носки б-355</name>
<article>б-355</article>
<category id="54">Носки</category>
<parameters>
<parameter name="Торговая марка">Колобок</parameter>
<parameter name="Производитель">Россия</parameter>
</parameters>
<images/>
<created>2013-01-16 02:06:10+04</created>
</product>
<modification>
<parameter name="Цвет">Синий</parameter>
</modification>
<price>300</price>
<discount>60</discount>
<quantity>1</quantity>
</item>
<item id="010ef0a8841bd2490a7e39a474cfed03">
<product id="67">
<name>Табурет</name>
<article>2125м</article>
<category id="58">Мебель</category>
<parameters>
<parameter name="Цвет">Красный</parameter>
</parameters>
<images/>
<created>2013-06-24 22:06:10+04</created>
</product>
<modification/>
<price>1300</price>
<discount>0</discount>
<quantity>2</quantity>
</item>
</items>
</sale>
Отмена продажи
Запрос:
DELETE /admin/sales/16.xml
Ответ:
HTTP/1.1 200 OK
Возвраты от клиентов
Список возвратов от клиентов
Запрос:
GET /admin/refunds.xml?parameter=value
Параметры:
- page - номер страницы, начиная с нуля. Используется для листания списка. Чтобы получить все нужно в цикле листать страницы пока не закончатся возвраты.
- page-size - размер страницы (количество возвратов на странице). По-умолчанию и не может превышать 250.
- products=detail - развернутые теги <product>
- show-barcodes - признак наличия штрих-кодов в ответе
Ответ:
<refunds type="array">
<refund id="16">
<saleId>35623</saleId>
<shop id="1">Ромашка</shop>
<store id="1">Склад "Ромашка"</store>
<client id="148">Сидоров Сидр Сергеевич</client>
<created>2014-06-26 21:44:27+04</created>
<action-time>2014-06-26 21:44:27+04</action-time>
<summa>2300</summa>
<cash>0</cash>
<comment>возвращено по безналу</comment>
<items type="array">
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product id="1056">
<name>Рубашка Апельсин 33549 в полоску</name>
<article>33549</article>
<category id="3">Рубашка</category>
</product>
<modification>
<parameter name="Размер">40</parameter>
</modification>
<price>2400</price>
<discount>100</discount>
<quantity>1</quantity>
<barcodes>
<barcode>2032914541315</barcode>
</barcodes>
</item>
</items>
</refund>
</refunds>
Информация о возврате
Запрос:
GET /admin/refunds/16.xml
Параметры:
- products=detail - развернутые теги <product>
- show-barcodes - признак наличия штрих-кодов в ответе
Ответ:
<refund id="16">
<saleId>35623</saleId>
<shop id="1">Ромашка</shop>
<store id="1">Склад "Ромашка"</store>
<client id="148">Сидоров Сидр Сергеевич</client>
<created>2014-06-26 21:44:27+04</created>
<action-time>2014-06-26 21:44:27+04</action-time>
<summa>2300</summa>
<cash>0</cash>
<comment>возвращено по безналу</comment>
<items type="array">
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product id="1056">
<name>Рубашка Апельсин 33549 в полоску</name>
<article>33549</article>
<category id="3">Рубашка</category>
</product>
<modification>
<parameter name="Размер">40</parameter>
</modification>
<price>2400</price>
<discount>100</discount>
<quantity>1</quantity>
<barcodes>
<barcode>2032914541315</barcode>
</barcodes>
</item>
</items>
</refund>
Добавление возврата
Запрос:
POST /admin/refunds.xml
- reserve: указывает, что при создании возврата необходимо вернуть товар в резерв на склад, в результате чего товар в свободном остатке не изменится.
- default: является значением по-умолчанию и указывает на необходимо вернуть товар в свободный остаток склада.
Тело запроса:
<refund>
<sale>35623</sale>
<user>23</user>
<cash>500</cash>
<comment>возврат брака</comment>
<items type="array">
<item>
<product>6557</product>
<modification>
<parameter name="Цвет">Синий</parameter>
</modification>
<price>300</price>
<discount>60</discount>
<quantity>1</quantity>
</item>
<item>
<product>67</product>
<modification/>
<price>1300</price>
<discount>0</discount>
<quantity>2</quantity>
</item>
</items>
</refund>
Ответ:
<refund id="16">
<saleId>35623</saleId>
<user id="23"></user>
<shop id="1">Ромашка</shop>
<store id="1">Склад "Ромашка"</store>
<client id="148">Сидоров Сидр Сергеевич</client>
<created>2014-06-26 21:44:27+04</created>
<action-time>2014-06-26 21:44:27+04</action-time>
<summa>2300</summa>
<cash>500</cash>
<comment>возвращено по безналу</comment>
<items type="array">
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product id="1056">Рубашка Апельсин 33549 в полоску</product>
<modification>
<parameter name="Размер">40</parameter>
</modification>
<price>2400</price>
<discount>100</discount>
<quantity>1</quantity>
</item>
</items>
</refund>
Отмена возврата
Запрос:
DELETE /admin/refunds/16.xml
Ответ:
HTTP/1.1 200 OK
Поступления и закупки от поставщиков
Закупка от поставщика отличается от обычного поступления только наличием тега <vendor>. Тег <cost> определяет суммарную закупочную стоимость всех позиций поступления.
Список поступлений
Запрос:
GET /admin/purchases.xml
Параметры:
- page - номер страницы, начиная с нуля. Используется для листания списка. Чтобы получить все нужно в цикле листать страницы пока не закончатся поступления.
- page-size - размер страницы (количество поступлений на странице). По-умолчанию и не может превышать 250.
- products=detail - развернутые теги <product>
- show-barcodes - признак наличия штрих-кодов в ответе
Ответ:
<purchases type="array">
<purchase id="16">
<store id="1">Склад "Ромашка"</store>
<vendor id="22">ИП "Иванов И.И."</vendor>
<user id="23">Иванов Андрей</user>
<created>2014-06-26 21:44:27+04</created>
<action-time>2014-06-26 21:44:27+04</action-time>
<cost>3200</cost>
<currency>RUB</currency>
<rate>1</rate>
<quantity>3</quantity>
<comment>возврат брака</comment>
<items type="array">
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product id="1056">
<name>Рубашка Апельсин 33549 в полоску</name>
<article>33549</article>
<category id="3">Рубашка</category>
<parameters>
<parameter name="Торговая марка">Апельсин</parameter>
<parameter name="Производитель">Китай</parameter>
</parameters>
<images>
<image id="1037">
<original-url>u2ccsAso5FM.jpg</original-url>
<url>https://demo.antisklad.ru/?image=1037</url>
<description>Вид сверху</description>
</image>
</images>
<created>2013-02-26 20:15:00+04</created>
</product>
<modification>
<parameter name="Размер">40</parameter>
</modification>
<cost>2400</cost>
<currency>RUB</currency>
<rate>1</rate>
<quantity>1</quantity>
<barcodes>
<barcode>2032914541315</barcode>
</barcodes>
</item>
<item id="010ef0a8841bd2490a7e39a474cfed03">
<product id="2557">
<name>Чулки а-355</name>
<article>а-355</article>
<category id="76">Чулки</category>
<parameters>
<parameter name="Торговая марка">Колобок</parameter>
<parameter name="Производитель">Россия</parameter>
</parameters>
<images>
<image id="1037">
<original-url>chulki-355.jpg</original-url>
<url>https://demo.antisklad.ru/?image=3455</url>
<description/>
</image>
</images>
<created>2013-06-16 22:16:00+04</created>
</product>
<modification>
<parameter name="Рост">30</parameter>
<parameter name="Цвет">Красный</parameter>
</modification>
<cost>400</cost>
<currency>RUB</currency>
<rate>1</rate>
<quantity>2</quantity>
</item>
</items>
</purchase>
</purchases>
Информация о поступлении
Запрос:
GET /admin/purchases/16.xml
Параметры:
- products=detail - развернутые теги <product>
- show-barcodes - признак наличия штрих-кодов в ответе
Ответ:
<purchase id="16">
<store id="1">Склад "Ромашка"</store>
<vendor id="22">ИП "Иванов И.И."</vendor>
<created>2014-06-26 21:44:27+04</created>
<action-time>2014-06-26 21:44:27+04</action-time>
<cost>3200</cost>
<currency>RUB</currency>
<rate>1</rate>
<quantity>3</quantity>
<comment>возврат брака</comment>
<items type="array">
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product id="1056">
<name>Рубашка Апельсин 33549 в полоску</name>
<article>33549</article>
<category id="3">Рубашка</category>
<parameters>
<parameter name="Торговая марка">Апельсин</parameter>
<parameter name="Производитель">Китай</parameter>
</parameters>
<images>
<image id="1037">
<original-url>u2ccsAso5FM.jpg</original-url>
<url>https://demo.antisklad.ru/?image=1037</url>
<description>Вид сверху</description>
</image>
</images>
<created>2013-02-26 20:15:00+04</created>
</product>
<modification>
<parameter name="Размер">40</parameter>
</modification>
<cost>2400</cost>
<currency>RUB</currency>
<rate>1</rate>
<quantity>1</quantity>
<barcodes>
<barcode>2032914541315</barcode>
</barcodes>
</item>
<item id="010ef0a8841bd2490a7e39a474cfed03">
<product id="2557">
<name>Чулки а-355</name>
<article>а-355</article>
<category id="76">Чулки</category>
<parameters>
<parameter name="Торговая марка">Колобок</parameter>
<parameter name="Производитель">Россия</parameter>
</parameters>
<images>
<image id="1037">
<original-url>chulki-355.jpg</original-url>
<url>https://demo.antisklad.ru/?image=3455</url>
<description/>
</image>
</images>
<created>2013-06-16 22:16:00+04</created>
</product>
<modification>
<parameter name="Рост">30</parameter>
<parameter name="Цвет">Красный</parameter>
</modification>
<cost>400</cost>
<currency>RUB</currency>
<rate>1</rate>
<quantity>2</quantity>
</item>
</items>
</purchase>
Добавление поступления
Запрос:
POST /admin/purchases.xml
Закупка от поставщика отличается от обычного поступления только наличием тега <vendor>. Тег <cost> определяет закупочную стоимость позиций поступления/возврата.
Тег <currency> определяет валюту текущего поступления. Одно из значений (RUB, USD, EUR, BYN, KZT, UAH).
Тег <rate> определяет курс указанной валюты для текущего поступления.
Товарную позицию можно идентифицировать 3-мя способами (в порядке приоритета):
- явно передать id товарной позиции (атрибут id тега item)
- явно передать ШК товарной позиции (атрибут barcode тега item)
- передать id карточки товара (тег product) + модификацию (тег modification)
Тело запроса:
<purchase>
<store>1</store>
<vendor>22</vendor>
<user>23</user>
<action-time>2020-06-26 21:53</action-time>
<comment>новое супер-поступление</comment>
<currency>RUB</currency>
<rate>1</rate>
<items>
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product>1056</product>
<modification>
<parameter name="Размер">40</parameter>
</modification>
<cost>2400</cost>
<quantity>1</quantity>
</item>
<item id="010ef0a8841bd2490a7e39a474cfed03">
<product>2557</product>
<modification>
<parameter name="Рост">30</parameter>
<parameter name="Цвет">Красный</parameter>
</modification>
<cost>400</cost>
<quantity>2</quantity>
</item>
</items>
</purchase>
Ответ:
<purchase id="116">
<store id="1">Склад "Ромашка"</store>
<vendor id="22">ИП "Иванов И.И."</vendor>
<user id="23">Иванов Андрей</user>
<created>2014-06-26 21:44:27+04</created>
<action-time>2014-06-26 21:44:27+04</action-time>
<cost>3200</cost>
<currency>RUB</currency>
<rate>1</rate>
<quantity>3</quantity>
<comment>возврат брака</comment>
<items type="array">
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product id="1056">
<name>Рубашка Апельсин 33549 в полоску</name>
<article>33549</article>
<category id="3">Рубашка</category>
<parameters>
<parameter name="Торговая марка">Апельсин</parameter>
<parameter name="Производитель">Китай</parameter>
</parameters>
<images>
<image id="1037">
<original-url>u2ccsAso5FM.jpg</original-url>
<url>https://demo.antisklad.ru/?image=1037</url>
<description>Вид сверху</description>
</image>
</images>
<created>2013-02-26 20:15:00+04</created>
</product>
<modification>
<parameter name="Размер">40</parameter>
</modification>
<cost>2400</cost>
<currency>RUB</currency>
<rate>1</rate>
<quantity>1</quantity>
</item>
<item id="010ef0a8841bd2490a7e39a474cfed03">
<product id="2557">
<name>Чулки а-355</name>
<article>а-355</article>
<category id="76">Чулки</category>
<parameters>
<parameter name="Торговая марка">Колобок</parameter>
<parameter name="Производитель">Россия</parameter>
</parameters>
<images>
<image id="1037">
<original-url>chulki-355.jpg</original-url>
<url>https://demo.antisklad.ru/?image=3455</url>
<description/>
</image>
</images>
<created>2013-06-16 22:16:00+04</created>
</product>
<modification>
<parameter name="Рост">30</parameter>
<parameter name="Цвет">Красный</parameter>
</modification>
<cost>400</cost>
<currency>RUB</currency>
<rate>1</rate>
<quantity>2</quantity>
</item>
</items>
</purchase>
Изменение поступления
Если поступление еще не проведено (планируемое поступление), то в нем можно менять все.
Если поступление проведено (находится в архиве), то изменить в нем можно все, кроме склада и количества.
Запрос:
PUT /admin/purchases/116.xml
Тело запроса:
<purchase>
<store>1</store>
<vendor>22</vendor>
<user>23</user>
<action-time>2020-06-26 21:53</action-time>
<comment>новое супер-поступление</comment>
<currency>RUB</currency>
<rate>1</rate>
<items>
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product>1056</product>
<modification>
<parameter name="Размер">40</parameter>
</modification>
<cost>2400</cost>
<quantity>1</quantity>
</item>
<item id="010ef0a8841bd2490a7e39a474cfed03">
<product>2557</product>
<modification>
<parameter name="Рост">30</parameter>
<parameter name="Цвет">Красный</parameter>
</modification>
<cost>400</cost>
<quantity>2</quantity>
</item>
</items>
</purchase>
Ответ: Аналогичен, ответу на добавление поступления.
Удаление поступления
Запрос:
DELETE /admin/purchases/116.xml
Ответ:
HTTP/1.1 200
<?xml version="1.0"?>
<purchase id="8284">
<store id="1">2-oй Муринский пр. 38</store>
<vendor id="3">жанна произвдство</vendor>
<created>2022-01-29 17:29:07+03</created>
<action-time/>
<cost>0</cost>
<currency>RUB</currency>
<rate>1.00</rate>
<quantity>20</quantity>
<comment>новое супер-поступление</comment>
<items type="array" count="1">
<item id="93a47e2f8219b9304ae61eb25496c7fe">
<product id="48">Халат жен. 215(сатори)</product>
<modification>
<parameter name="size">40</parameter>
<parameter name="colour-sleeve">белый-2</parameter>
</modification>
<cost>111</cost>
<rate>77</rate>
<cost_nat>8547</cost_nat>
<price>3990</price>
<discount>1000</discount>
<quantity>20</quantity>
</item>
</items>
</purchase>
Перемещения
Список перемещений
Запрос:
GET /admin/migrations.xml?parameter=value
Параметры:
- page - номер страницы, начиная с нуля. Используется для листания списка. Чтобы получить все нужно в цикле листать страницы пока не закончатся перемещения.
- page-size - размер страницы (количество перемещений на странице). По-умолчанию и не может превышать 250.
- products=detail - развернутые теги <product>
- show-barcodes - признак наличия штрих-кодов в ответе
Ответ:
<migrations type="array">
<migration id="16">
<store_from id="1">Склад "Ромашка"</store>
<store_to id="2">Главный склад</store>
<created>2014-06-26 21:44:27+04</created>
<action-time>2014-06-26 21:44:27+04</action-time>
<cost>3360.15</cost>
<quantity>3</quantity>
<comment>оплачено наличными</comment>
<items type="array">
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product id="1056">
<name>Рубашка Апельсин 33549 в полоску</name>
<article>33549</article>
<category id="3">Рубашка</category>
<parameters>
<parameter name="Торговая марка">Апельсин</parameter>
<parameter name="Производитель">Китай</parameter>
</parameters>
<images>
<image id="1037">
<original-url>u2ccsAso5FM.jpg</original-url>
<url>https://demo.antisklad.ru/?image=1037</url>
<description>Вид сверху</description>
</image>
</images>
<created>2013-02-26 20:15:00+04</created>
</product>
<modification>
<parameter name="Размер">40</parameter>
</modification>
<price>2400</price>
<discount>0</discount>
<quantity>1</quantity>
<barcodes>
<barcode>2032914541315</barcode>
</barcodes>
</item>
<item id="010ef0a8841bd2490a7e39a474cfed03">
<product id="2557">
<name>Чулки а-355</name>
<article>а-355</article>
<category id="76">Чулки</category>
<parameters>
<parameter name="Торговая марка">Колобок</parameter>
<parameter name="Производитель">Россия</parameter>
</parameters>
<images>
<image id="1037">
<original-url>chulki-355.jpg</original-url>
<url>https://demo.antisklad.ru/?image=3455</url>
<description/>
</image>
</images>
<created>2013-06-16 22:16:00+04</created>
</product>
<modification>
<parameter name="Рост">30</parameter>
<parameter name="Цвет">Красный</parameter>
</modification>
<price>400</price>
<discount>70</discount>
<quantity>2</quantity>
</item>
</items>
</migration>
</migrations>
Информация о перемещении
Запрос:
GET /admin/migrations/16.xml
Параметры:
- products=detail - развернутые теги <product>
- show-barcodes - признак наличия штрих-кодов в ответе
Ответ:
<migration id="16">
<store_from id="1">Склад "Ромашка"</store>
<store_to id="2">Главный склад</store>
<created>2014-06-26 21:44:27+04</created>
<action-time>2014-06-26 21:44:27+04</action-time>
<cost>3360.15</cost>
<comment>оплачено наличными</comment>
<items type="array">
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product id="1056">
<name>Рубашка Апельсин 33549 в полоску</name>
<article>33549</article>
<category id="3">Рубашка</category>
<parameters>
<parameter name="Торговая марка">Апельсин</parameter>
<parameter name="Производитель">Китай</parameter>
</parameters>
<images>
<image id="1037">
<original-url>u2ccsAso5FM.jpg</original-url>
<url>https://demo.antisklad.ru/?image=1037</url>
<description>Вид сверху</description>
</image>
</images>
<created>2013-02-26 20:15:00+04</created>
</product>
<modification>
<parameter name="Размер">40</parameter>
</modification>
<price>2400</price>
<discount>0</discount>
<quantity>1</quantity>
<barcodes>
<barcode>2032914541315</barcode>
</barcodes>
</item>
<item id="010ef0a8841bd2490a7e39a474cfed03">
<product id="2557">
<name>Чулки а-355</name>
<article>а-355</article>
<category id="76">Чулки</category>
<parameters>
<parameter name="Торговая марка">Колобок</parameter>
<parameter name="Производитель">Россия</parameter>
</parameters>
<images>
<image id="1037">
<original-url>chulki-355.jpg</original-url>
<url>https://demo.antisklad.ru/?image=3455</url>
<description/>
</image>
</images>
<created>2013-06-16 22:16:00+04</created>
</product>
<modification>
<parameter name="Рост">30</parameter>
<parameter name="Цвет">Красный</parameter>
</modification>
<price>400</price>
<discount>70</discount>
<quantity>2</quantity>
</item>
</items>
</migration>
Добавление перемещения
Запрос:
POST /admin/migrations.xml
Тело запроса:
<migration>
<store_from>1</store_from>
<store_to>2</store_to>
<user>23</user>
<comment>новое супер-перемещение</comment>
<items type="array">
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product>6557</product>
<modification>
<parameter name="Цвет">Синий</parameter>
</modification>
<quantity>1</quantity>
</item>
<item id="010ef0a8841bd2490a7e39a474cfed03">
<product>67</product>
<modification/>
<quantity>2</quantity>
</item>
</items>
</migration>
Ответ:
<migration id="116">
<store_from>1</store_from>
<store_to>2</store_to>
<user id="23">Иванова Лариса</user>
<created>2012-06-26 21:44:27+04</created>
<cost>2840</cost>
<comment>новое супер-перемещение</comment>
<items type="array">
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product id="6557">
<name>Носки б-355</name>
<article>б-355</article>
<category id="54">Носки</category>
<parameters>
<parameter name="Торговая марка">Колобок</parameter>
<parameter name="Производитель">Россия</parameter>
</parameters>
<images/>
<created>2013-01-16 02:06:10+04</created>
</product>
<modification>
<parameter name="Цвет">Синий</parameter>
</modification>
<price>300</price>
<discount>60</discount>
<quantity>1</quantity>
</item>
<item id="010ef0a8841bd2490a7e39a474cfed03">
<product id="67">
<name>Табурет</name>
<article>2125м</article>
<category id="58">Мебель</category>
<parameters>
<parameter name="Цвет">Красный</parameter>
</parameters>
<images/>
<created>2013-06-24 22:06:10+04</created>
</product>
<modification/>
<price>1300</price>
<discount>0</discount>
<quantity>2</quantity>
</item>
</items>
</migration>
Отмена перемещения
Запрос:
DELETE /admin/migrations/116.xml
Ответ:
HTTP/1.1 200 OK
Списания и возвраты поставщикам
Возврат поставщику отличается от обычного списания только наличием тега <vendor>. Тег <cost> определяет закупочную стоимость списания и его позиций.
Список списаний
Запрос:
GET /admin/restores.xml
Параметры:
- page - номер страницы, начиная с нуля. Используется для листания списка. Чтобы получить все нужно в цикле листать страницы пока не закончатся списания.
- page-size - размер страницы (количество списаний на странице). По-умолчанию и не может превышать 250.
- products=detail - развернутые теги <product>
- show-barcodes - признак наличия штрих-кодов в ответе
Ответ:
<restores type="array">
<restore id="16">
<store id="1">Склад "Ромашка"</store>
<vendor id="22">ИП "Иванов И.И."</vendor>
<user id="23">Иванов Андрей</user>
<created>2014-06-26 21:44:27+04</created>
<action-time>2014-06-26 21:44:27+04</action-time>
<cost>3200</cost>
<quantity>3</quantity>
<comment>возврат брака</comment>
<items type="array">
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product id="1056">
<name>Рубашка Апельсин 33549 в полоску</name>
<article>33549</article>
<category id="3">Рубашка</category>
<parameters>
<parameter name="Торговая марка">Апельсин</parameter>
<parameter name="Производитель">Китай</parameter>
</parameters>
<images>
<image id="1037">
<original-url>u2ccsAso5FM.jpg</original-url>
<url>https://demo.antisklad.ru/?image=1037</url>
<description>Вид сверху</description>
</image>
</images>
<created>2013-02-26 20:15:00+04</created>
</product>
<modification>
<parameter name="Размер">40</parameter>
</modification>
<cost>2400</cost>
<currency>RUB</currency>
<rate>1</rate>
<quantity>1</quantity>
<barcodes>
<barcode>2032914541315</barcode>
</barcodes>
</item>
<item id="010ef0a8841bd2490a7e39a474cfed03">
<product id="2557">
<name>Чулки а-355</name>
<article>а-355</article>
<category id="76">Чулки</category>
<parameters>
<parameter name="Торговая марка">Колобок</parameter>
<parameter name="Производитель">Россия</parameter>
</parameters>
<images>
<image id="1037">
<original-url>chulki-355.jpg</original-url>
<url>https://demo.antisklad.ru/?image=3455</url>
<description/>
</image>
</images>
<created>2013-06-16 22:16:00+04</created>
</product>
<modification>
<parameter name="Рост">30</parameter>
<parameter name="Цвет">Красный</parameter>
</modification>
<cost>400</cost>
<currency>RUB</currency>
<rate>1</rate>
<quantity>2</quantity>
</item>
</items>
</restore>
</restores>
Информация о списании
Запрос:
GET /admin/restores/16.xml
Параметры:
- products=detail - развернутые теги <product>
- show-barcodes - признак наличия штрих-кодов в ответе
Ответ:
<restore id="16">
<store id="1">Склад "Ромашка"</store>
<vendor id="22">ИП "Иванов И.И."</vendor>
<created>2014-06-26 21:44:27+04</created>
<action-time>2014-06-26 21:44:27+04</action-time>
<cost>3200</cost>
<quantity>3</quantity>
<comment>возврат брака</comment>
<items type="array">
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product id="1056">
<name>Рубашка Апельсин 33549 в полоску</name>
<article>33549</article>
<category id="3">Рубашка</category>
<parameters>
<parameter name="Торговая марка">Апельсин</parameter>
<parameter name="Производитель">Китай</parameter>
</parameters>
<images>
<image id="1037">
<original-url>u2ccsAso5FM.jpg</original-url>
<url>https://demo.antisklad.ru/?image=1037</url>
<description>Вид сверху</description>
</image>
</images>
<created>2013-02-26 20:15:00+04</created>
</product>
<modification>
<parameter name="Размер">40</parameter>
</modification>
<cost>2400</cost>
<currency>RUB</currency>
<rate>1</rate>
<quantity>1</quantity>
<barcodes>
<barcode>2032914541315</barcode>
</barcodes>
</item>
<item id="010ef0a8841bd2490a7e39a474cfed03">
<product id="2557">
<name>Чулки а-355</name>
<article>а-355</article>
<category id="76">Чулки</category>
<parameters>
<parameter name="Торговая марка">Колобок</parameter>
<parameter name="Производитель">Россия</parameter>
</parameters>
<images>
<image id="1037">
<original-url>chulki-355.jpg</original-url>
<url>https://demo.antisklad.ru/?image=3455</url>
<description/>
</image>
</images>
<created>2013-06-16 22:16:00+04</created>
</product>
<modification>
<parameter name="Рост">30</parameter>
<parameter name="Цвет">Красный</parameter>
</modification>
<cost>400</cost>
<currency>RUB</currency>
<rate>1</rate>
<quantity>2</quantity>
</item>
</items>
</restore>
Добавление списания
Запрос:
POST /admin/restores.xml
Возврат поставщику отличается от обычного списания только наличием тега <vendor>. Тег <cost> определяет закупочную стоимость позиций списания/возврата.
Товарную позицию можно идентифицировать 3-мя способами перечисленными в разделе добавления поступления.
Тело запроса:
<restore>
<store>1</store>
<vendor>22</vendor>
<user>23</user>
<comment>новое супер-списание</comment>
<items>
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product>1056</product>
<modification>
<parameter name="Размер">40</parameter>
</modification>
<cost>2400</cost>
<currency>RUB</currency>
<rate>1</rate>
<quantity>1</quantity>
</item>
<item id="010ef0a8841bd2490a7e39a474cfed03">
<product>2557</product>
<modification>
<parameter name="Рост">30</parameter>
<parameter name="Цвет">Красный</parameter>
</modification>
<cost>400</cost>
<currency>RUB</currency>
<rate>1</rate>
<quantity>2</quantity>
</item>
</items>
</restore>
Ответ:
<restore id="116">
<store id="1">Склад "Ромашка"</store>
<vendor id="22">ИП "Иванов И.И."</vendor>
<user id="23">Иванов Андрей</user>
<created>2014-06-26 21:44:27+04</created>
<action-time>2014-06-26 21:44:27+04</action-time>
<cost>3200</cost>
<quantity>3</quantity>
<comment>возврат брака</comment>
<items type="array">
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product id="1056">
<name>Рубашка Апельсин 33549 в полоску</name>
<article>33549</article>
<category id="3">Рубашка</category>
<parameters>
<parameter name="Торговая марка">Апельсин</parameter>
<parameter name="Производитель">Китай</parameter>
</parameters>
<images>
<image id="1037">
<original-url>u2ccsAso5FM.jpg</original-url>
<url>https://demo.antisklad.ru/?image=1037</url>
<description>Вид сверху</description>
</image>
</images>
<created>2013-02-26 20:15:00+04</created>
</product>
<modification>
<parameter name="Размер">40</parameter>
</modification>
<cost>2400</cost>
<currency>RUB</currency>
<rate>1</rate>
<quantity>1</quantity>
</item>
<item id="010ef0a8841bd2490a7e39a474cfed03">
<product id="2557">
<name>Чулки а-355</name>
<article>а-355</article>
<category id="76">Чулки</category>
<parameters>
<parameter name="Торговая марка">Колобок</parameter>
<parameter name="Производитель">Россия</parameter>
</parameters>
<images>
<image id="1037">
<original-url>chulki-355.jpg</original-url>
<url>https://demo.antisklad.ru/?image=3455</url>
<description/>
</image>
</images>
<created>2013-06-16 22:16:00+04</created>
</product>
<modification>
<parameter name="Рост">30</parameter>
<parameter name="Цвет">Красный</parameter>
</modification>
<cost>400</cost>
<currency>RUB</currency>
<rate>1</rate>
<quantity>2</quantity>
</item>
</items>
</restore>
Отмена списания
Запрос:
DELETE /admin/restores/116.xml
Ответ:
HTTP/1.1 200 OK
Резервы
Список резервов
Запрос:
GET /admin/reserves.xml?parameter=value
Параметры:
- page - номер страницы, начиная с нуля. Используется для листания списка. Чтобы получить все нужно в цикле листать страницы пока не закончатся резервы.
- page-size - размер страницы (количество резервов на странице). По-умолчанию и не может превышать 250.
- products=detail - развернутые теги <product>
- show-barcodes - признак наличия штрих-кодов в ответе
- type - тип(назначение) резерва: migration|reject|order|other
Ответ:
<reserves type="array">
<reserve id="16">
<type>migration</type>
<status>new</status>
<name>Мой резерв</name>
<store id="1">Склад "Ромашка"</store>
<store_to id="2">Склад "Второй"</store_to>
<vendor id="2">ООО "Поставщик 1"</vendor>
<order id="1001">100023</order>
<client id="148">Сидоров Сидр Сергеевич</client>
<created>2014-06-26 21:44:27+04</created>
<comment>возвращено по безналу</comment>
<items type="array">
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product id="1056">Рубашка Апельсин 33549 в полоску</product>
<modification>
<parameter name="Размер">40</parameter>
</modification>
<price>2400</price>
<discount>100</discount>
<quantity>1</quantity>
</item>
<barcodes>
<barcode>2032914541315</barcode>
</barcodes>
</items>
</reserve>
</reserves>
Информация о резерве
Запрос:
GET /admin/reserves/16.xml
Параметры:
- products=detail - развернутые теги <product>
- show-barcodes - признак наличия штрих-кодов в ответе
Ответ:
<reserve id="16">
<type>migration</type>
<status>new</status>
<name>Мой резерв</name>
<store id="1">Склад "Ромашка"</store>
<store_to id="2">Склад "Второй"</store_to>
<vendor id="2">ООО "Поставщик 1"</vendor>
<order id="1001">100023</order>
<client id="148">Сидоров Сидр Сергеевич</client>
<created>2014-06-26 21:44:27+04</created>
<comment>возвращено по безналу</comment>
<items type="array">
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product id="1056">Рубашка Апельсин 33549 в полоску</product>
<modification>
<parameter name="Размер">40</parameter>
</modification>
<price>2400</price>
<discount>100</discount>
<quantity>1</quantity>
<barcodes>
<barcode>2032914541315</barcode>
</barcodes>
</item>
</items>
</reserve>
Создание резерва
Запрос:
POST /admin/reserves.xml
Тело запроса:
<reserve>
<store>1</store>
<type>migration</type> /* 'migration', 'restore', 'reject' */
<store_to>2</store_to> /* идентификатор склада-приемника */
<name>Мой резерв</name>
<comment>произвольный коментарий…</comment>
<items>
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product>1056</product>
<modification>
<parameter name="Цвет">Синий</parameter>
</modification>
<price>2400</price>
<discount>100</discount>
<quantity>1</quantity>
</item>
</items>
</reserve>
Ответ:
<reserve id="16">
<type>other</type>
<status>new</status>
<name>Мой резерв</name>
<store id="1">Склад "Ромашка"</store>
<created>2014-06-26 21:44:27+04</created>
<comment>возвращено по безналу</comment>
<items type="array">
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product id="1056">Рубашка Апельсин 33549 в полоску</product>
<modification>
<parameter name="Размер">40</parameter>
</modification>
<price>2400</price>
<discount>100</discount>
<quantity>1</quantity>
</item>
</items>
</reserve>
Изменение резерва
Запрос:
PUT /admin/reserves/16.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?>
<reserve>
<items>
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product>1056</product>
<modification>
<parameter name="Цвет">Синий</parameter>
</modification>
<quantity>2</quantity>
</item>
</items>
</reserve>
Ответ:
<reserve id="16">
<type>other</type>
<status>new</status>
<name>Мой резерв</name>
<store id="1">Склад "Ромашка"</store>
<created>2014-06-26 21:44:27+04</created>
<comment>возвращено по безналу</comment>
<items type="array">
<item id="86e03fab6db4c6d9cf33e616622b6c45">
<product id="1056">Рубашка Апельсин 33549 в полоску</product>
<modification>
<parameter name="Размер">40</parameter>
</modification>
<price>2400</price>
<discount>100</discount>
<quantity>2</quantity>
</item>
</items>
</reserve>
Удаление(расформирование) резерва
Запрос:
DELETE /admin/reserves/16.xml
Ответ:
HTTP/1.1 200 OK
Расходы и доходы
Получение списка расходов/доходов
Запроc:
GET /admin/expenditures?parameter=value
Параметры:
- page - номер страницы, начиная с нуля. Используется для листания списка. Чтобы получить все нужно в цикле листать страницы пока не закончится список.
- page-size - размер страницы (количество позиций на странице). По-умолчанию равен и не может превышать 250.
- expense - признак расходов (указывается без значения).
- income - признак доходов (указывается без значения).
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<expenditures type="array">
<expenditure id="1">
<budget id="3" class="retail">Из кассы</budget>
<expense>1</expense>
<employee id="22">Иванов Иван Иванович</employee>
<shop id="2">Магазин "Ромашка"</shop>
<value>200</value>
<comment>такси</comment>
<cash>1</cash>
<action>2013-09-24 12:05:20+04</action>
</expenditure>
<expenditure id="1">
<budget id="4" class="retail">В кассу</budget>
<income>1</income>
<employee id="22">Иванов Иван Иванович</employee>
<shop id="2">Магазин "Ромашка"</shop>
<value>500</value>
<comment>за опоздание</comment>
<cash>1</cash>
<action>2013-09-24 13:05:20+04</action>
</expenditure>
</expenditures>
Теги: - cash - признак наличных денег - employee - необязательный тег, привязка расхода к конкретному сотруднику (записать за сотрудником) - shop - необязательный тег, привязка расхода к конкретному магазину (записать за магазином) - expense - признак расхода - income - признак дохода
Получение параметров расхода/дохода
Запрос:
GET /admin/expenditures/2.xml
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<expenditure id="2">
<budget id="3" class="retail">Из кассы</budget>
<expense>1</expense>
<employee id="22">Иванов Иван Иванович</employee>
<shop id="2">Магазин "Ромашка"</shop>
<value>200</value>
<comment>такси</comment>
<cash>1</cash>
<action>2013-09-24 12:05:20+04</action>
</expenditure>
Добавление расхода/дохода
Запрос:
POST /admin/expenditures.xml
Тег <tag> может быть использован внешними приложениями при дальнейшем полученим расходов по API.
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?>
<expenditure>
<fin_doc_number>1001240016</fin_doc_number>
<budget>3</budget>
<employee>22</employee>
<shop>2</shop>
<value>200</value>
<comment>такси</comment>
<cash>1</cash>
<payment_type>Баланс</payment_type>
<action>2013-09-24 12:05:20+04</action>
<tag>MarketplaceCorrectionPointOperation</tag>
</expenditure>
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<expenditure id="2">
<fin_doc_number>1001240016</fin_doc_number>
<budget id="3" class="retail">Из кассы</budget>
<expense>1</expense>
<employee id="22">Иванов Иван Иванович</employee>
<shop id="2">Магазин "Ромашка"</shop>
<value>200</value>
<comment>такси</comment>
<cash>1</cash>
<payment_type>Баланс</payment_type>
<action>2013-09-24 12:05:20+04</action>
</expenditure>
Изменение параметров расхода/дохода
Запрос:
PUT /admin/expenditures/2.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?>
<expenditure>
<value>250</value>
</expenditure>
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<expenditure id="2">
<budget id="3" class="retail">Из кассы</budget>
<expense>1</expense>
<employee id="22">Иванов Иван Иванович</employee>
<shop id="2">Магазин "Ромашка"</shop>
<value>250</value>
<comment>такси</comment>
<cash>1</cash>
<action>2013-09-24 12:05:20+04</action>
</expenditure>
Удаление дохода/расхода
Запроc:
DELETE /admin/expenditures/2.xml
Ответ:
HTTP/1.1 200 OK
Справочники
Справочник статей расходов и доходов
Получение списка статей
Запроc:
GET /admin/budgets?parameter=value
Параметры:
- page - номер страницы, начиная с нуля. Используется для листания списка. Чтобы получить все нужно в цикле листать страницы пока не закончится список.
- page-size - размер страницы (количество позиций на странице). По-умолчанию и не может превышать 250.
- expense - признак расходов (указывается без значения).
- income - признак доходов (указывается без значения).
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<budgets type="array">
<budget id="1">
<name>Зарплата</name>
<parent/>
<comment>основная часть</comment>
<default_summa>30000</default_summa>
<permanent>1</permanent>
<analysis>1</analysis>
<expense>1</expense>
<income>0</income>
<class/>
<user id="23">Иванов Иван Иванович</user>
<created>2013-09-24 12:05:20+04</created>
</budget>
<budget id="2">
<name>Процент от продаж</name>
<parent id="1">Зарплата</parent>
<comment/>
<default_summa/>
<permanent>0</permanent>
<analysis>1</analysis>
<expense>1</expense>
<income>0</income>
<class/>
<created>2013-09-24 12:05:20+04</created>
</budget>
<budget id="3">
<name>Из кассы</name>
<parent/>
<comment/>
<default_summa/>
<permanent>0</permanent>
<analysis>1</analysis>
<expense>1</expense>
<income>0</income>
<class>retail</class>
<created>2013-09-24 12:05:20+04</created>
</budget>
</budgets>
Теги: - default_summa - сумма, которая будет подставляться по-умолчанию при вводе, если не указана другая - parent - родительская статья - permanent 0|1 - признак постоянной статьи - analysis 0|1 - признак участия в анализе работы предприятия - expense 0|1 - признак того, что статья является статьей расхода - income 0|1 - признак того, что статья является статьей дохода - class - произвольная классификация статьи для внутреннего использования
Получение параметров статьи
Запрос:
GET /admin/budgets/2.xml
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<budget id="2">
<name>Процент от продаж</name>
<parent id="1">Зарплата</parent>
<comment/>
<default_summa/>
<permanent>0</permanent>
<analysis>1</analysis>
<expense>1</expense>
<income>0</income>
<class/>
<created>2013-09-24 12:05:20+04</created>
</budget>
Добавление статьи
Запрос:
POST /admin/budgets.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?>
<budget>
<name>Процент от продаж</name>
<parent>1</parent>
</budget>
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<budget id="2">
<name>Процент от продаж</name>
<parent id="1">Зарплата</parent>
<comment/>
<default_summa/>
<permanent>0</permanent>
<analysis>1</analysis>
<expense>1</expense>
<income>0</income>
<class/>
<created>2013-09-24 12:05:20+04</created>
</budget>
Изменение статьи
Запрос:
PUT /admin/budgets/2.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?>
<budget>
<name>% от продаж</name>
</budget>
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<budget id="2">
<name>% от продаж</name>
<parent id="1">Зарплата</parent>
<comment/>
<default_summa/>
<permanent>0</permanent>
<analysis>1</analysis>
<expense>1</expense>
<income>0</income>
<class/>
<created>2013-09-24 12:05:20+04</created>
</budget>
Удаление статьи
Запроc:
DELETE /admin/budgets/2.xml
Ответ:
HTTP/1.1 200 OK
Подписки на события
Программа «АнтиСклад» генерирует события определенных типов, перечисленных ниже. У Вас имеется возможность подписаться на любое из них. Под подпиской понимается привязка любого Вашего URL к конкретному типу события, при наступлении которого, по соответствующему URL будет отправлен POST-запрос с XML-данными события, в том числе данные объекта события <info/> (товара, клиента, склада). На одно событие можно оформить любое количество подписок.
Типы событий в программе:
- order.create - создание нового заказа
- order.update - изменение статуса заказа
- order.delete - удаление заказа
- reserve.create - создание нового резерва
- reserve.update - изменение статуса резерва
- reserve.delete - удаление (расформирование) резерва
- client.create - создание нового клиента
- client.update - изменение свойств клиента
- client.delete - удаление клиента
- product.create - создание нового товара
- product.update - изменение свойств товара
- product.delete - удаление товара
- purchase.create - оприходование нового поступления
- restore.create - списание резерва со склада
- migration.create - перемещение резерва со склада в свободный остаток другого склада
- sale.create - продажа клиенту
- refund.create - возврат от клиента
Фактически подписчик информируется о происшедшем событии не сразу после его наступления, а через небольшой промежуток времени (несколько секунд). В теге <time/> передается реальное время возникновения события - именно когда событие было инициировано программой, а не доставлено подписчику.
Пример данных передаваемых подписчику при генерации события:
<?xml version="1.0" encoding="UTF-8"?>
<event>
<time>2015-10-20 16:43:33</time>
<name>product.create</name>
<objectId>5362</objectId>
<info><product id="10323"> ... </product></info>
</event>
Подписка на создание нового заказа
Запроc:
POST /admin/subs.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?> <sub> <event>order.create</event> <url>https://my-inet-magaz.ru/from-antisklad/action.php</url> </sub>
Ответ:
<?xml version="1.0" encoding="UTF-8"?> <sub id="101"> <event>order.create</event> <url>https://my-inet-magaz.ru/from-antisklad/action.php</url> </sub>
POST-данные передаваемые подписчику:
<?xml version="1.0" encoding="UTF-8"?>
<event>
<time>2020-10-22 19:45:43</time>
<name>order.create</name>
<objectId>1001</objectId>
</event>
Подписка на изменение заказа
Запроc:
POST /admin/subs.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?> <sub> <event>order.update</event> <url>https://my-inet-magaz.ru/from-antisklad/action.php</url> </sub>
Ответ:
<?xml version="1.0" encoding="UTF-8"?> <sub id="102"> <event>order.update</event> <url>https://my-inet-magaz.ru/from-antisklad/action.php</url> </sub>
POST-данные передаваемые подписчику:
<?xml version="1.0" encoding="UTF-8"?>
<event>
<time>2020-10-22 19:45:43</time>
<name>order.update</name>
<objectId>1001</objectId>
</event>
Подписка на добавление клиента
Запроc:
POST /admin/subs.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?> <sub> <event>client.create</event> <url>https://my-inet-magaz.ru/from-antisklad/action.php</url> </sub>
Ответ:
<?xml version="1.0" encoding="UTF-8"?> <sub id="103"> <event>client.create</event> <url>https://my-inet-magaz.ru/from-antisklad/action.php</url> </sub>
POST-данные передаваемые подписчику:
<?xml version="1.0" encoding="UTF-8"?>
<event>
<time>2015-10-22 19:45:43</time>
<name>client.create</name>
<info><client id="443"> ... </client></info>
</event>
Подписка на изменение клиента
Запроc:
POST /admin/subs.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?> <sub> <event>client.update</event> <url>https://my-inet-magaz.ru/from-antisklad/action.php</url> </sub>
Ответ:
<?xml version="1.0" encoding="UTF-8"?> <sub id="104"> <event>client.update</event> <url>https://my-inet-magaz.ru/from-antisklad/action.php</url> </sub>
POST-данные передаваемые подписчику:
<?xml version="1.0" encoding="UTF-8"?>
<event>
<time>2015-10-22 19:45:43</time>
<name>client.update</name>
<info><client id="443"> ... </client></info>
</event>
Подписка на удаление клиента
Запроc:
POST /admin/subs.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?> <sub> <event>client.delete</event> <url>https://my-inet-magaz.ru/from-antisklad/action.php</url> </sub>
Ответ:
<?xml version="1.0" encoding="UTF-8"?> <sub id="105"> <event>client.delete</event> <url>https://my-inet-magaz.ru/from-antisklad/action.php</url> </sub>
POST-данные передаваемые подписчику:
<?xml version="1.0" encoding="UTF-8"?>
<event>
<time>2015-10-22 19:45:43</time>
<name>client.delete</name>
<info><client id="443"> ... </client></info>
</event>
Подписка на добавление товара
Запроc:
POST /admin/subs.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?> <sub> <event>product.create</event> <url>https://my-inet-magaz.ru/from-antisklad/action.php</url> </sub>
Ответ:
<?xml version="1.0" encoding="UTF-8"?> <sub id="106"> <event>product.create</event> <url>https://my-inet-magaz.ru/from-antisklad/action.php</url> </sub>
POST-данные передаваемые подписчику:
<?xml version="1.0" encoding="UTF-8"?>
<event>
<time>2015-10-22 19:45:43</time>
<name>product.create</name>
<info><product id="5432"> ... </product></info>
</event>
Подписка на изменение свойств товара
Запроc:
POST /admin/subs.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?> <sub> <event>product.update</event> <url>https://my-inet-magaz.ru/from-antisklad/action.php</url> </sub>
Ответ:
<?xml version="1.0" encoding="UTF-8"?> <sub id="107"> <event>product.update</event> <url>https://my-inet-magaz.ru/from-antisklad/action.php</url> </sub>
POST-данные передаваемые подписчику:
<?xml version="1.0" encoding="UTF-8"?>
<event>
<time>2015-10-22 19:45:43</time>
<name>product.update</name>
<info><product id="5432"> ... </product></info>
</event>
Подписка на удаление товара
Запроc:
POST /admin/subs.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?> <sub> <event>product.delete</event> <url>https://my-inet-magaz.ru/from-antisklad/action.php</url> </sub>
Ответ:
<?xml version="1.0" encoding="UTF-8"?> <sub id="108"> <event>product.delete</event> <url>https://my-inet-magaz.ru/from-antisklad/action.php</url> </sub>
POST-данные передаваемые подписчику:
<?xml version="1.0" encoding="UTF-8"?>
<event>
<time>2015-10-22 19:45:43</time>
<name>product.delete</name>
<info><product id="5432"> ... </product></info>
</event>
</sub></code>
Ответ:
<?xml version="1.0" encoding="UTF-8"?> <sub id="109"> <event>store.update</event> <url>https://my-inet-magaz.ru/from-antisklad/action.php</url> <store>1</store> </sub>
POST-данные передаваемые подписчику:
<?xml version="1.0" encoding="UTF-8"?>
<event>
<time>2015-10-22 19:45:43</time>
<name>store.update</name>
<info><store id="1" modified-time="2015-10-22 19:44:01"></store></info>
</event>
Пример PHP-кода подписчика обработки события на изменения остатков на складе:
<code>
<?php
// Получить и разобрать XML объекта события
$data = file_get_contents('php://input');
$xevent = new SimpleXMLElement($data);
$eventName = (string)$xevent->name;
$storeID = (int)$xevent->info->store->attributes()[['id']];
$time = (string)$xevent->info->store->attributes()[['modified-time']];
// получить измененные позиции склада для store.update
$time = urlencode($time);
$request = new HTTP_Request2("https://mylogin:mypassword@mydomain.antisklad.ru/admin/stores/{$storeID}.xml?changed-from={$time}", HTTP_Request2::METHOD_GET);
$request->setConfig(array(
'ssl_verify_peer' => FALSE,
'ssl_verify_host' => FALSE
));
$response = $request->send();
$response_Body = $response->getBody();
$xstoreItems = new SimpleXMLElement($response_Body);
// сохранить измененные позиции остатков товаров в файл
file_put_contents("/tmp/{$eventName}.{$storeID}.xml", $xstoreItems->asXML());
?>
*/
Получение списка подписок
Запроc:
GET /admin/subs.xml
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<subs type="array">
<sub id="100">
<event>order.create</event>
<url>https://my-inet-magaz.ru/admin/create-order.php</url>
<shop>1</shop>
</sub>
<sub id="102">
<event>client.create</event>
<url>https://my-inet-magaz.ru/admin/create-client.php</url>
</sub>
</subs>
Получение данных по конкретной подписке
Запроc:
GET /admin/subs/56.xml
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<sub id="56">
<event>order.create</event>
<url>https://my-inet-magaz.ru/admin/create-order.php</url>
<shop>1</shop>
</sub>
Удаление подписки
Запроc:
DELETE /admin/subs/77.xml
Ответ:
HTTP/1.1 200 OK
Заголовки и логические ошибки ответа
В ответе сервера, в случае ошибки 500, может придти xml с логической ошибкой работы приложения.
Например, при попытке создать карточку товара с названием, аналогичным в списке, система вернет xml:
<?xml version="1.0" encoding="UTF-8"?> <error type="logic" index="ALREADY EXISTS" class="product" id="3497" name="1000">Аналогичная карточка товара "1000" уже существует</error>
, где, в качестве атрибутов ошибки, выступает вся необходимая для анализа информация. В значении тега будет представлен «читаемый» текст ошибки.
Возможные заголовки
400 => 'Bad request', 401 => 'Unauthorized', 402 => 'Payment Required', 403 => 'Forbidden', 404 => 'Not found', 500 => 'Internal Server Error', 501 => 'Not Implemented', 503 => 'Service Temporarily Unavailable',
Получение списка возможных логических ошибок
Запроc:
GET /admin/errors.xml
Ответ:
<?xml version="1.0" encoding="UTF-8"?> <errors> <error>IS NOT FOUND</error> <error>ALREADY EXISTS</error> <error>EMPTY VALUE</error> <error>INVALID VALUE</error> <error>IMPOSSIBLE TO DO</error> </errors>