Содержание
Команды API
Введение
API предназначен для управления данными в Sellper из внешних приложений.
Это позволяет синхронизировать работу интернет-магазинов с управленческим учётом в Sellper.
API реализован основываясь на принципах REST.
Обмен осуществляется в формате XML по протоколу HTTPS посредством запросов GET, PUT, DELETE, POST.
Авторизация запросов:
- Basic-авторизация - логин и пароль зарегистрированного в системе пользователя
- С помощью token-ключа - генерируется системой в момент инсталляции приложения (см. раздел «Приложения») и передается в заголовке запроса «Karkas_token».
Форма запросов:
POST https://<домен>.sellper.ru/admin/clients.xml GET https://<домен>.sellper.ru/admin/client/<id>.xml ...
Подписки на события представляет собой возможность получать уведомления об изменениях на складе путем отправки http-запроса. При возникновении события по указанному в подписке адресу будет выполнен POST-запрос, в теле которого будет передано описание события в формате XML.
Приложения
Приложения в системе «Sellper» могут быть двух видов: общие и частные. Общие приложения доступны для всех клиентов «Sellper». Частные приложения доступны только их авторам или заказчикам.
Общие положения:
- Изначально разработка приложения производится на собственном хосте разработчика, но при необходимости, разработчику может быть предоставлен выделенный хостинг на сервере Sellper, где будет доступен удобный PHP-класс для работы с крон-службами.
- Разработка может вестись с использованием PHP, а для хранения информации использоваться СУБД Postgres, MySQL или текстовые файлы
- Настройка приложения производится администратором(владельцем) домена через форму создания нового приложения (см. ниже) в настройках Sellper.
- Первоначально приложение рассматривается как частное (доступно только в домене, где оно создано)
- По окончании тестирования приложение становится общим (доступно всем доменам для установки и настройки)
Фактически, приложение может находится где угодно, важно лишь правильно настроить 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></store> <store id="2"><name>Дополнительный склад</name></store> </stores>
Добавление склада
Запроc:
POST /admin/stores.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?> <store> <name>Новый склад</name> </store>
Ответ:
<?xml version="1.0" encoding="UTF-8"?> <store id="3"> <name>Новый склад</name> </store>
Изменение склада
Запроc:
PUT /admin/stores/3.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?> <store> <name>Другое название склада</name> </store>
Ответ:
<?xml version="1.0" encoding="UTF-8"?> <store id="3"> <name>Другое название склада</name> </store>
Получение списка магазинов
Запроc:
GET /admin/shops.xml
Ответ:
<?xml version="1.0" encoding="UTF-8"?> <shops type="array"> <shop id="1"><name>Мой интернет-магазин</name><store>1</store></shop> <shop id="2"><name>Моя розничная точка</name><store>1</store></shop> </shops>
Добавление магазина
Запроc:
POST /admin/shops.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?> <shop> <name>Новый магазин</name> </shop>
Ответ:
<?xml version="1.0" encoding="UTF-8"?> <shop id="3"> <name>Новый магазин</name> </shop>
Изменение магазина
Запроc:
PUT /admin/shops/3.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?> <shop> <name>Другое название магазина</name> <store>2</store> </shop>
Ответ:
<?xml version="1.0" encoding="UTF-8"?> <shop id="3"> <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 - через запятую идентификаторы карточек
- extId=<N> - остатки только по одному товару с внешнем кодом N
- products=detail - развернутые теги <product>
- show-barcodes - признак наличия штрих-кодов в ответе
- with-totals=1 - признак того, что в ответе нужно показать общее кол-во позиций на складе (атрибут totalItemsCount тега store).
- category - ID категории (фильтр)
- article - маска поиска по артикулу (фильтр).
- name - маска поиска по названию (фильтр)
- barcode - поиск по штрих-коду (фильтр)
- ns - namespace карточки, указанный при ее создании. Данный параметр НЕ является фильтром, нуден для уточнения item.id после объединения карточек в одну из разных namespace.
- 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:
POST /admin/visitors.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?> <item> <shopId>10</shopId> <date>2023-06-29</date> <count>100</count> </item>
Ответ: 200 Ok
Категории товаров
Получение списка категорий
Запро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 - поиск по внешнему коду
- product-id - через запятую идентификаторы карточек
- with-deleted - признак поиска так же в архивных карточках
Например, чтобы отобрать все товары, у которых артикул начинается на «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.sellper.ru/12349.jpg</url> <description/> </image> <image id="123321"> <original-url>image.png</original-url> <url>https://image.sellper.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.sellper.ru/1259.jpg</url> <description/> </image> <image id="1231"> <original-url>image5.png</original-url> <url>https://image.sellper.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.sellper.ru/12349.jpg</url> <description/> </image> <image id="123321"> <original-url>image.png</original-url> <url>https://image.sellper.ru/12349.jpg</url> <description/> </image> </images> </product>
Добавление товара
Запрос:
POST /admin/products.xml
В случае, если добавляемый товар с указанным extId уже имеется в списке действующих товаров или в списке удаленных (в корзине), то возвращается ошибка 409 с XML конфликтующего товара. Чтобы отличить удаленный товар от действующего, используйте атрибут deleted=0|1 тега <product/> конфликтующего товара.
Если нужно создать товар с пометкой «архивный», то нужно добавить атрибут deleted=«1» в тег <product>
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?> <product extId="123123123" ns="wb"> <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.sellper.ru/12349.png</url> <description>Вид сбоку</description> </image> <image id="123321"> <original-url>http://site.ru/image2.png</original-url> <url>https://image.sellper.ru/12349.png</url> <description/> </image> </images> </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> <barcodes><barcode>2055566611122</barcode></barcodes> /* если без модификаций товаров */ <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.sellper.ru/12349.png</url> <description>Вид сбоку</description> </image> <image id="123321"> <original-url>http://site.ru/image2.png</original-url> <url>https://image.sellper.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 - признак наличия штрих-кодов в ответе
- show-expenditures - признак наличия статей расходов в ответе
- notFinished - признак незаконченности (не доставлен и не отменен)
- finished - признак законченности (доставлен или отменен)
В ответе присутствует информация о резерве, если заказ еще не отправлен:
<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.sellper.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.sellper.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 - признак наличия штрих-кодов в ответе
- show-expenditures - признак наличия статей расходов в ответе
В ответе присутствует информация о резерве, если заказ еще не отправлен:
<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> <products-summa>3060</products-summa> <products-summa-without-discount>3200</products-summa-without-discount> <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.sellper.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.sellper.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> <expenditures> <expenditure id="25555"> <budgetId>33</budgetId> <summa>50</summa> <comment>Логистика до клиента</comment> <action-time>2023-09-22 00:00:00+03</action-time> <cash>1</cash> </expenditure> </expenditures> </order>
Изменение заказа
Запрос:
PUT /admin/orders/16.xml
При указании тега <reserved-all>1</reserved-all> система попытается зарезервировать полностью товар для заказа. Если это не удается, то возвращается ошибка.
При необходимости поменять сумму всем товарным позициям, не указывая конкретно товар, нужно указать значения стоимости товаров и стоимости товаров без учета скидки соответственно в тегах <products-summa> и <products-summa-without-discount>. В этом случае указанная сумма будет равномерно распределена по предметам в заказе. На практике это удобно применять для заказов внутри которых указаны товарные позиции с одинаковыми ценами.
Тело запроса:
<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> <expenditures action-before="remove-putting-budgets" action-when-setting="update"> <expenditure> <budgetId>33</budgetId> <summa>50</summa> <comment>Логистика до клиента</comment> <action-time>2023-09-22</action-time> </expenditure> </expenditures> </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.sellper.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-мя способами перечисленными в разделе добавления поступления.
По-умолчанию, новый заказ создается с авто-поступлением соответствующего товара, т.е. свободный остаток на складе не изменится. Если нужно поменять поведение заказа по отношению к складу, то необходимо указать атрибут goods-source-behaviour со значениями reserve или find-impersonal-reserve.
- reserve: указывает, что при создании заказа необходимо сначала зарезервировать товар под заказ на складе. т.е. свободный остаток на складе уменьшится.
- find-impersonal-reserve: указывает, что прежде чем пытаться резервировать товар под заказ, сначала пытаться найти ранее сформированный резерв, соответствующий этому заказу.
При создании заказа можно указать дополнительный атрибут status-change-block-for-user, который запретит пользователю менять в дальнейшем статус данного заказа и может принимать значения:
- all: указывает, что пользователь не может менять статус во всех случаях.
- перечисленные через запятую статусы: указывает, что пользователь не может менять статус только тем заказам, статус которых указан в перечислении.
Тело запроса:
<order ns="ozon"> <shop>1</shop> <number>10150</number> <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>2013-12-12 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>
Внесение расходов по заказу
Запрос:
PUT|POST /admin/orders/:orderId.xml
В каждый расход можно указать, при необходимости, объединяющий признак - атрибут unifyingFeature, который, затем, может быть использован для удаления расходов с этим признаком за одну итерацию. См. раздел «Удаление расходов».
Тело запроса:
<?xml version="1.0"?> <order> <expenditures action-before="remove-all-budgets" > <expenditure> <action-time></action-time> <budgetId>33</budgetId> <summa>307.88</summa> <comment>Логистика до клиента</comment> </expenditure> </expenditures> </order>
Ответ:
<order id="26"> .... <expenditures> <expenditure id="28665"> <budgetId>33</budgetId> <summa>307.88</summa> <comment>Логистика до клиента</comment> <action-time>2023-10-18 18:41:20.134846+03</action-time> <cash>1</cash> </expenditure> </expenditures> </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="delivering">Доставляется</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>
Добавление типа доставки
Запрос:
POST /admin/delivery-types.xml
Тело запроса:
<?xml version="1.0"?> <delivery-type> <name>На собачьей упряжке</name> <price>550</price> </delivery-type>
Ответ:
<?xml version="1.0"?> <delivery-type id='28'> <name>На собачьей упряжке</name> <price>550</price> </delivery-type>
В случае, если добавляемый тип уже имеется в списке, то возвращается ошибка 409.
Необязательный тег <price> определяет цену по-умолчанию для данного типа доставки.
Обновление типа доставки
Запрос:
PUT /admin/delivery-types/11.xml
Тело запроса:
<?xml version="1.0"?> <delivery-type> <name>Через проводника в поезде</name> <price>5000</price> </delivery-type>
Ответ:
<?xml version="1.0"?> <delivery-type id='11'> <name>Через проводника в поезде</name> <price>5000</price> </delivery-type>
Удаление типа доставки
Запроc:
DELETE /admin/delivery-types/11.xml
Ответ:
HTTP/1.1 200 OK
В случае, если удаляемый тип доставки относится хотя бы к одному заказу, то будет ошибка 409.
Продажи
Список продаж
Запрос:
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.sellper.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.sellper.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.sellper.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.sellper.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> <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> <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.sellper.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.sellper.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.sellper.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.sellper.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.sellper.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.sellper.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.sellper.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.sellper.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.sellper.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.sellper.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.sellper.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.sellper .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.sellper.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.sellper.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.sellper.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.sellper.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>
Добавление расхода/дохода
Тег <period> указывает на принадлежность расхода ко временному интервалу. Атрибут uniq не позволит добавить расход повторно.
Необязательный атрибут unifyingFeature позволяет указывать объединяющий признак расходам. Он необходим для массового удаления расходов по этому признаку, если потребуется. Это распространяется также на расходы при добавлении или обновлении заказа(ов).
Запрос:
POST /admin/expenditures.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?> <expenditure uniq="de65d240-ce2c-4044-a81e-589d593de071"> <budget>3</budget> <period>7 days</period> <shop>2</shop> <value>200</value> <comment>такси</comment> <cash>1</cash> <action>2013-09-24 12:05:20+04</action> </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>200</value> <comment>такси</comment> <cash>1</cash> <action>2013-09-24 12:05:20+04</action> </expenditure>
Добавление множества расходов
При необходимости добавить в рамках одной транзакции множество расходов, необходимо их передавать в корневом тэге <expenditures> Разрешается создавать в одном запросе не более 300 расходов.
Запрос:
POST /admin/expenditures.xml
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?> <expenditures> <expenditure>...</expenditure> ... <expenditure>...</expenditure> </expenditures>
Ответ:
HTTP/1.1 200 OK <expenditures> <expenditure>...</expenditure> ... <expenditure>...</expenditure> </expenditures>
Изменение параметров расхода/дохода
Запрос:
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
Удаление доходов/расходов по объединяющему признаку
При создании расходов или их создании/обновлении в заказах, можно указывать объединяющий атрибут unifyingFeature для дальнейшего возможного удаления таких расходов (см. добавление расходов).
Запроc:
DELETE /admin/expenditures/:unifyingFeature.xml?type=unifyingFeature Ответ:<code> 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
Подписки на события
Программа «Sellper» генерирует события определенных типов, перечисленных ниже. У Вас имеется возможность подписаться на любое из них. Под подпиской понимается привязка любого Вашего 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-sellper/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-sellper/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-sellper/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-sellper/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-sellper/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-sellper/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-sellper/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-sellper/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-sellper/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-sellper/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-sellper/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-sellper/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-sellper/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-sellper/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-sellper/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-sellper/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-sellper/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.sellper.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>