Инструменты пользователя

Инструменты сайта


api

Содержание

Команды API

Введение

API предназначен для управления данными в АнтиСклад из внешних приложений.

Это позволяет синхронизировать работу интернет-магазинов с управленческим учётом в АнтиСклад.

API реализован основываясь на принципах REST.

Обмен осуществляется в формате XML по протоколу HTTPS посредством запросов GET, PUT, DELETE, POST.

Авторизация запросов:

  • Basic-авторизация - логин и пароль зарегистрированного в системе пользователя
  • С помощью token-ключа - генерируется системой в момент инсталляции приложения (см. раздел «Приложения») и передается в заголовке запроса «Karkas_token».

Форма запросов:

POST https://<домен>.antisklad.ru/admin/clients.xml
GET https://<домен>.antisklad.ru/admin/client/<id>.xml
...

Подписки на события представляет собой возможность получать уведомления об изменениях на складе путем отправки http-запроса. При возникновении события по указанному в подписке адресу будет выполнен POST-запрос, в теле которого будет передано описание события в формате XML.

Приложения

Приложения в системе «Антисклад» могут быть двух видов: общие и частные. Общие приложения доступны для всех клиентов «Антисклад». Частные приложения доступны только их авторам или заказчикам.

Общие положения:

  1. Изначально разработка приложения производится на собственном хосте разработчика, но при необходимости, разработчику может быть предоставлен выделенный хостинг на сервере АнтиСклад, где будет доступен удобный PHP-класс для работы с крон-службами.
  2. Разработка может вестись с использованием PHP, а для хранения информации использоваться СУБД Postgres, MySQL или текстовые файлы
  3. Настройка приложения производится администратором(владельцем) домена через форму создания нового приложения (см. ниже) в настройках Антисклад.
  4. Первоначально приложение рассматривается как частное (доступно только в домене, где оно создано)
  5. По окончании тестирования приложение становится общим (доступно всем доменам для установки и настройки)

Фактически, приложение может находится где угодно, важно лишь правильно настроить 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:

 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>
  <created type="timestamp">2012-01-01 01:01:01 +0400</created>
</category>

Изменение магазина

Запроc:

 PUT /admin/shops/1.xml 

Тело запроса:

<?xml version="1.0" encoding="UTF-8"?>
<shop>
  <name>Другое название магазина</name>
  <store>2</store>
</shop>

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<shop id=5>
  <name>Другое название магазина</name>
  <store>2</store>
</shop>

Получение товарных остатков у конкретного склада

Помимо общего состояния склада имеется возможность получить вместо полного списка только те позиции, которые подверглись изменению на складе, начиная с указанной даты. К измененным остаткам относится товар, у которого изменились количественно-стоимостные показатели.

Запроc:

 GET /admin/stores/1.xml?parameter=value 

Параметры:

  • page - номер страницы, начиная с нуля. Используется для листания списка. Чтобы получить все нужно в цикле листать страницы пока не закончатся позиции.
  • page-size - размер страницы (количество модификаций товаров на странице). По-умолчанию и не может превышать 250.
  • changed-from=<date time> - только те остатки, которые подверглись изменению с указанной даты. Удаленные товары будут указаны с количеством = 0. Дату можно указать как в формате 'YYYY-MM-DD HH:II:SS', так и указав timestamp.
  • product-id=<N> - остатки только по одному товару с идентификатором N
  • extId=<N> - остатки только по одному товару с внешнем кодом N
  • products=detail - развернутые теги <product>
  • show-barcodes - признак наличия штрих-кодов в ответе
  • with-totals=1 - признак того, что в ответе нужно показать общее кол-во позиций на складе (атрибут totalItemsCount тега store).
  • category - ID категории (фильтр)
  • article - маска поиска по артикулу (фильтр).
  • name - маска поиска по названию (фильтр)
  • barcode - поиск по штрих-коду (фильтр)
  • good-filter - фильтр по параметрам товара в формате JSON. Например: {«parameters»:[{«ns»:«wb»,«name»:«Комплектация», «value»:«кеды»}, {«name»:«Торговая марка», «value»:«Vorsh»}], «name»:«%Кроссовки V534%»,«article»:«V534 черн CITY»}

Например, чтобы отобрать все товары, у которых артикул начинается на «2», используйте в запросе параметр: …&article=2%25 , где %25 в url-кодировке (символ % ) означает любую последовательность символов

В ответе значение тега <price/> указано без учета скидки. Чтобы получить текущую цену, нужно из значения тега <price> вычесть значение тега <discount>

Ответ:

<?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.antisklad.ru/12349.jpg</url>
        <description/>
      </image>
      <image id="123321">
        <original-url>image.png</original-url>
        <url>https://image.antisklad.ru/12349.jpg</url>
        <description/>
      </image>
    </images>
  </product>
  <product id="234234"  extId="3005">
    <category id="3333">Одежда/Мужская/Брюки</category>
    <name>Брюки мужские B2101</name>
    <article>W-1014/2002</article>
    <description>Полное описание товара</description>
    <created>2009-06-04 14:22:34 +0400</created>
    <parameters>
      <parameter name="Торговая марка">Velaner</parameter>
      <parameter name="Производитель">Россия, ООО "Ромашка"</parameter>
      <parameter name="Состав">70% хлопок</parameter>
      <parameter name="Дата производства">2014-02-14</parameter>
    </parameters>
    <default-prices>
        <cost>786</cost>
        <price>2000</price>
        <old-price>2400</old-price>
    </default-prices>
    <vendor id="10">Chili Technologies S.L.</vendor>
    <modifications>
      <modification>
        <parameter name="Размер">44</parameter>
        <parameter name="Рост">2</parameter>
        <barcodes>
          <barcode>2046495345355</barcode>
          <barcode>2046345345554</barcode>
        </barcodes>
      </modification>
      <modification>
        <parameter name="Размер">44</parameter>
        <parameter name="Рост">3</parameter>
        <barcodes>
          <barcode>2046497345345</barcode>
        </barcodes>
      </modification>
      <modification>
        <parameter name="Размер">46</parameter>
        <parameter name="Рост">2</parameter>
        <barcodes/>
      </modification>
    </modifications>
    <images>
      <image id="1234">
        <original-url>image4.png</original-url>
        <url>https://image.antisklad.ru/1259.jpg</url>
        <description/>
      </image>
      <image id="1231">
        <original-url>image5.png</original-url>
        <url>https://image.antisklad.ru/123.jpg</url>
        <description/>
      </image>
    </images>
  </product>
</products>

Запрос товарной позиции

Запроc:

 GET /admin/products/234234.xml 

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<product id="234234" hidden="false"  extId="3004">
  <category id="3333">Одежда/Мужская/Сорочки</category>
  <name>Сорочка мужская B101</name>
  <article>W-101/202</article>
  <description>&lt;p&gt;&lt;span style=&quot;font-family: 'Times New Roman'; font-size: 16px;&quot;&gt; &lt;/span&gt;&lt;/p&gt;</description>
  <short-description>Тут краткое описание товара</short-description>
  <created>2009-06-04 14:22:34 +0400</created>
  <parameters>
    <parameter name="Торговая марка">Velaner</parameter>
    <parameter name="Производитель">Россия, ООО "Ромашка"</parameter>
    <parameter name="Состав">100% хлопок</parameter>
    <parameter name="Дата производства">2014-02-13</parameter>
  </parameters>
  <default-prices>
      <cost>786</cost>
      <price>2000</price>
      <old-price>2400</old-price>
  </default-prices>
  <vendor id="10">Chili Technologies S.L.</vendor>
  <modifications>
    <modification itemId="60a70f9aeb399bec32500d331bbe4152">
      <parameter name="Размер">XS</parameter>
      <barcodes>
        <barcode>2046497976600</barcode>
        <barcode>4602347974121</barcode>
      </barcodes>
    </modification>
    <modification itemId="b78f692708305e860c1068819a74457e">
      <parameter name="Размер">S</parameter>
      <barcodes>
        <barcode>2046497972345</barcode>
      </barcodes>
    </modification>
    <modification itemId="5bb39ec9322f1a831f6c1d3f7bd883ac">
      <parameter name="Размер">M</parameter>
      <barcodes>
        <barcode>2046497976600</barcode>
      </barcodes>
    </modification>
  </modifications>
  <images>
    <image id="123123">
      <original-url>image.png</original-url>
      <url>https://image.antisklad.ru/12349.jpg</url>
      <description/>
    </image>
    <image id="123321">
      <original-url>image.png</original-url>
      <url>https://image.antisklad.ru/12349.jpg</url>
      <description/>
    </image>
  </images>
</product>

Добавление товара

Запрос:

POST /admin/products.xml

Тело запроса:

<?xml version="1.0" encoding="UTF-8"?>
<product extId="123123123">
  <categoryId>202</categoryId> или <category>Одежда/Мужская/Сорочки</category>
  <name>Сорочка мужская B101</name>
  <article>W-101/202</article>
  <description>Полное описание товара</description>
  <short-description>Краткое описание</short-description>
  <default-prices>
        <cost>856</cost>
        <price>1500</price>
        <old-price>2000</old-price>
  </default-prices>
  <parameters>
    <parameter name="Торговая марка">Velaner</parameter>
    <parameter name="Производитель">Россия, ООО "Ромашка"</parameter>
    <parameter name="Состав">100% хлопок</parameter>
    <parameter name="Дата производства">2014-02-13</parameter>
  </parameters>
  <barcodes><barcode>2055566611122</barcode></barcodes> /* если без модификаций товаров */
  <modifications>
    <modification itemId="03f544613917945245041ea1581df0c2">
      <parameter name="Размер">XS</parameter>
      <barcodes>
        <barcode>2046497345345</barcode>
      </barcodes>
    </modification>
    <modification itemId="a20695d961021da9ca2faca910b5d7de">
      <parameter name="Размер">S</parameter>
      <barcodes>
        <barcode>2046497375454</barcode>
      </barcodes>
    </modification>
    <modification itemId="9f36407ead0629fc166f14dde7970f68">
      <parameter name="Размер">M</parameter>
      <barcodes>
        <barcode>2046498767834</barcode>
      </barcodes>
    </modification>
  </modifications>
  <images>
    <image>
      <original-url>http://site.ru/image1.png</original-url>
      <description>Вид сбоку</description>
    </image>
    <image>
      <original-url>http://site.ru/image2.png</original-url>
      <description/>
    </image>
  </images>
</product>

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<product id="234234">
  <created>2009-06-04 14:22:34 +0400</created>
  <category id="3333">Одежда/Мужская/Сорочки</category>
  <name>Сорочка мужская B101</name>
  <article>W-101/202</article>
  <description>Полное описание товара</description>
  <short-description>Краткое описание</short-description>
  <parameters>
    <parameter name="Торговая марка">Velaner</parameter>
    <parameter name="Производитель">Россия, ООО "Ромашка"</parameter>
    <parameter name="Состав">100% хлопок</parameter>
    <parameter name="Дата производства">2014-02-13</parameter>
  </parameters>
  <modifications>
    <modification>
      <parameter name="Размер">XS</parameter>
      <barcodes>
        <barcode>2046497345345</barcode>
      </barcodes>
    </modification>
    <modification>
      <parameter name="Размер">S</parameter>
      <barcodes>
        <barcode>2046497375454</barcode>
      </barcodes>
    </modification>
    <modification>
      <parameter name="Размер">M</parameter>
      <barcodes>
        <barcode>2046498767834</barcode>
      </barcodes>
    </modification>
  </modifications>
  <images>
    <image id="123123">
      <original-url>http://site.ru/image1.png</original-url>
      <url>https://image.antisklad.ru/12349.png</url>
      <description>Вид сбоку</description>
    </image>
    <image id="123321">
      <original-url>http://site.ru/image2.png</original-url>
      <url>https://image.antisklad.ru/12349.png</url>
      <description/>
    </image>
  </images>
</product>

В случае, если добавляемый товар с указанным extId уже имеется в списке действующих товаров или в списке удаленных (в корзине), то возвращается ошибка 409 с XML конфликтующего товара. Чтобы отличить удаленный товар от действующего, используйте атрибут deleted=0|1 тега <product/> конфликтующего товара.

Добавление множества товаров

При необходимости добавить в рамках одной транзакции множество товаров, необходимо их передавать в корневом тэге <products> Разрешается создавать в одном запросе не более 300 товаров.

Запрос:

POST /admin/products.xml

Тело запроса:

<?xml version="1.0" encoding="UTF-8"?>
<products>
  <product>...</product>
  ...
  <product>...</product>
</products>

Ответ:

HTTP/1.1 200 OK

<products>
  <product>...</product>
  ...
  <product>...</product>
</products>
В случае ошибки создания каких-либо товаров, остальные товары буду созданы, а теги ошибочных товаров будут содержать описание ошибки.

Изменение товара

Запроc:

 PUT /admin/products/234234.xml 

Тело запроса:

<?xml version="1.0" encoding="UTF-8"?>
<product>
  <extId>3004</extId>
  <categoryId>202</categoryId>
  <name>Сорочка мужская B101</name>
  <article>W-101/202</article>
  <description>Полное описание товара</description>
  <short-description>Краткое описание</short-description>
  <parameters>
    <parameter name="Торговая марка">Velaner</parameter>
    <parameter name="Производитель">Россия, ООО "Ромашка"</parameter>
    <parameter name="Состав">100% хлопок</parameter>
    <parameter name="Дата производства">2014-02-13</parameter>
  </parameters>
  <modifications>
    <modification>
      <parameter name="Размер">XS</parameter>
      <barcodes>
        <barcode>2046497345345</barcode>
      </barcodes>
    </modification>
    <modification>
      <parameter name="Размер">S</parameter>
      <barcodes/>
    </modification>
    <modification>
      <parameter name="Размер">M</parameter>
      <barcodes>
        <barcode>2046498767834</barcode>
      </barcodes>
    </modification>
  </modifications>
  <images>
    <image>
      <original-url>http://site.ru/image1.png</original-url>
      <description>Вид сбоку</description>
    </image>
    <image>
      <original-url>http://site.ru/image2.png</original-url>
      <description/>
    </image>
  </images>
</product>

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<product id="234234" extId="3004">
  <created>2009-06-04 14:22:34 +0400</created>
  <category id="3333">Одежда/Мужская/Сорочки</category>
  <name>Сорочка мужская B101</name>
  <article>W-101/202</article>
  <description>Полное описание товара</description>
  <short-description>Краткое описание</short-description>
  <parameters>
    <parameter name="Торговая марка">Velaner</parameter>
    <parameter name="Производитель">Россия, ООО "Ромашка"</parameter>
    <parameter name="Состав">100% хлопок</parameter>
    <parameter name="Дата производства">2014-02-13</parameter>
  </parameters>
  <modifications>
    <modification>
      <parameter name="Размер">XS</parameter>
      <barcodes>
        <barcode>2046497345345</barcode>
      </barcodes>
    </modification>
    <modification>
      <parameter name="Размер">S</parameter>
      <barcodes/>
    </modification>
    <modification>
      <parameter name="Размер">M</parameter>
      <barcodes>
        <barcode>2046498767834</barcode>
      </barcodes>
    </modification>
  </modifications>
  <images>
    <image id="123123">
      <original-url>http://site.ru/image1.png</original-url>
      <url>https://image.antisklad.ru/12349.png</url>
      <description>Вид сбоку</description>
    </image>
    <image id="123321">
      <original-url>http://site.ru/image2.png</original-url>
      <url>https://image.antisklad.ru/12349.png</url>
      <description/>
    </image>
  </images>
</product>

Удаление товара

Запроc:

 DELETE /admin/products/12343.xml 

Ответ:

HTTP/1.1 200 OK

Клиенты

Получение списка клиентов

Запроc:

 GET /admin/clients.xml?parameter=value 

Параметры:

  • page - номер страницы, начиная с нуля. Используется для листания списка. Чтобы получить все нужно в цикле листать страницы пока не закончатся позиции.
  • page-size - размер страницы (количество клиентов на странице). По-умолчанию и не может превышать 250.

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<clients type="array">
  <client id="167">
    <name>Иванов Иван Иванович</name>
    <created>2013-08-25 20:32:08+04</created>
    <phone>+79115554126</phone>
    <card>26323</card>
    <discount>5</discount>
    <address>ул.Ленина д.5</address>
    <email>ivanov@mail.ru</email>
    <comment/>
    <birthday>1996-01-25</birthday>
  </client>
  <client id="185">
    <name>Сидоров Сидр Сидорович</name>
    <created>2013-09-24 12:05:20+04</created>
    <phone>+79125550252</phone>
    <card>27652</card>
    <discount>5</discount>
    <address/>
    <email>sidr@yandex.ru</email>
    <comment/>
    <birthday/>
  </client>
</clients>

Получение параметров клиента

Запрос:

 GET /admin/clients/167.xml

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
  <client id="167">
   <type>person</type>
    <name>Иванов Иван Иванович</name>
    <created>2013-08-25 20:32:08+04</created>
    <phone>+79115554126</phone>
    <card>26323</card>
    <discount>5</discount>
    <start-sales-sum>2000</start-sales-sum>
    <address>ул.Ленина д.5</address>
    <email>ivanov@mail.ru</email>
    <comment/>
    <sex>1</sex>
    <birthday>1996-01-25</birthday>
  </client>

Добавление клиента

Запрос:

 POST /admin/clients.xml

Тело запроса:

<?xml version="1.0" encoding="UTF-8"?>
  <client>
    <name>Иванов Иван Иванович</name>
    <phone>+79115554126</phone>
    <card>26323</card>
    <discount>5</discount>
    <address>ул.Ленина д.5</address>
    <email>ivanov@mail.ru</email>
    <comment/>
    <birthday>1996-01-25</birthday>
  </client>

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
  <client id="167">
    <name>Иванов Иван Иванович</name>
    <created>2013-08-25 20:32:08+04</created>
    <phone>+79115554126</phone>
    <card>26323</card>
    <discount>5</discount>
    <address>ул.Ленина д.5</address>
    <email>ivanov@mail.ru</email>
    <comment/>
    <birthday>1996-01-25</birthday>
  </client>

Изменение клиента

Запрос:

 PUT /admin/clients/167.xml

Тело запроса:

<?xml version="1.0" encoding="UTF-8"?>
  <client>
    <name>Иванов Иван Иванович</name>
    <phone>+79115554126</phone>
    <card>26323</card>
    <discount>5</discount>
    <address>ул.Ленина д.5</address>
    <email>ivanov@mail.ru</email>
    <comment/>
    <birthday>1996-01-25</birthday>
  </client>

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
  <client id="167">
    <name>Иванов Иван Иванович</name>
    <created>2013-08-25 20:32:08+04</created>
    <phone>+79115554126</phone>
    <card>26323</card>
    <discount>5</discount>
    <address>ул.Ленина д.5</address>
    <email>ivanov@mail.ru</email>
    <comment/>
    <birthday>1996-01-25</birthday>
  </client>

Удаление клиента

Запроc:

 DELETE /admin/clients/234.xml 

Ответ:

HTTP/1.1 200 OK

Пользователи

Получение списка пользователей

Запроc:

 GET /admin/users.xml?parameter=value 

Параметры:

  • page - номер страницы, начиная с нуля. Используется для листания списка. Чтобы получить все нужно в цикле листать страницы пока не закончатся позиции.
  • page-size - размер страницы (количество пользователей на странице). По-умолчанию и не может превышать 250.

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<users type="array">
  <user id="1">
    <name>Наталья Иванова</name>
    <created>2013-08-25 20:32:08+04</created>
    <phone>+79115554126</phone>
    <email>ivanov@mail.ru</email>
  </user>
  <user id="2">
    <name>Марина Петрова</name>
    <created>2013-09-24 12:05:20+04</created>
    <phone>+79125550252</phone>
    <email>sidr@yandex.ru</email>
  </user>
</users>

Добавление пользователя

Запроc:

 POST /admin/users.xml 

Тело запроса:

<?xml version="1.0" encoding="UTF-8"?>
<user>
  <first_name>Мария</first_name>
  <login>Мария</login>
  <password>md5(явный_пароль)</password>
 </user>

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<shop id="3">
  <name>Новый магазин</name>
  <created type="timestamp">2012-01-01 01:01:01 +0400</created>
</category>

Получение параметров пользователя

Запрос:

 GET /admin/users/1.xml

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
  <user id="1">
    <name>Наталья Иванова</name>
    <created>2013-08-25 20:32:08+04</created>
    <phone>+79115554126</phone>
    <email>ivanov@mail.ru</email>
  </user>

Заказы

Список заказов

Запрос:

 GET /admin/orders.xml?parameter=value

Параметры:

  • page - номер страницы, начиная с нуля. Используется для листания списка. Чтобы получить все нужно в цикле листать страницы пока не закончатся заказы.
  • page-size - размер страницы (количество заказов на странице). По-умолчанию и не может превышать 250.
  • id - список идентификаторов заказов, перечисленных через запятую без пробелов
  • products=detail - развернутые теги <product>
  • show-barcodes - признак наличия штрих-кодов в ответе

В ответе присутствует информация о резерве, если заказ еще не отправлен:

<reserved-percent type="integer">73</reserved-percent> - показывает процент реального наполнения товаром по заказу
<reserved-all>0</reserved-all> - означает признак полного резервированная (заказ можно отправлять клиенту)
<reserve id="21153">Резерв по заказу №16</reserve> - краткую информацию о резерве. Для получения полной информации по резерву необходимо выполнить соответствующий запрос admin/reserves/16.xml

Ответ:

<orders type="array">
  <order id="16">
    <shop id="1">Магазин "Ромашка"</shop>
    <number>10003</number>
    <client id="148">
      <name>Сидоров Сидр Сергеевич</name>
      <created>2013-08-15 20:05:41+04</created>
      <phone>+79215454545</phone>
      <card>26725</card>
      <discount>5</discount>
      <address>ул. Сидорова 55 кв.44</address>
      <email>sidr@mail.ru</email>
      <comment/>
      <birthday>1984-12-23</birthday>
    </client>
    <created>2014-06-26 21:44:27+04</created>
    <status>new</status>
    <summa>3360.15</summa>
    <delivery-type id="4">Курьером</delivery-type>
    <delivery-cost>300.15</delivery-cost>
    <delivery-address>на деревню дедушке</delivery-address>
    <delivery-begin-time/>
    <delivery-end-time>2012-12-12 00:00:00+04</delivery-end-time>
    <pay-time/>
    <pay-type>Наличными</pay-type>
    <comment>оплачено 1000р осталось 2360,15р.</comment>
    <items type="array">
      <item id="86e03fab6db4c6d9cf33e616622b6c45">
        <product id="1056" ext="4334">
          <name>Рубашка Апельсин 33549 в полоску</name>
          <article>33549</article>
          <category id="3">Рубашка</category>
          <parameters>
            <parameter name="Торговая марка">Апельсин</parameter>
            <parameter name="Производитель">Китай</parameter>
          </parameters>
          <images>
            <image id="1037">
              <original-url>u2ccsAso5FM.jpg</original-url>
              <url>https://demo.antisklad.ru/?image=1037</url>
              <description>Вид сверху</description>
            </image>
          </images>
          <created>2013-02-26 20:15:00+04</created>
        </product>
        <modification>
          <parameter name="Размер">40</parameter>
        </modification>
        <price>2400</price>
        <discount>0</discount>
        <quantity>1</quantity>
        <barcodes>
             <barcode>2032914541315</barcode>
        </barcodes>
      </item>
      <item id="010ef0a8841bd2490a7e39a474cfed03">
        <product id="2557">
          <name>Чулки а-355</name>
          <article>а-355</article>
          <category id="76">Чулки</category>
          <parameters>
            <parameter name="Торговая марка">Колобок</parameter>
            <parameter name="Производитель">Россия</parameter>
          </parameters>
          <images>
            <image id="1037">
              <original-url>chulki-355.jpg</original-url>
              <url>https://demo.antisklad.ru/?image=3455</url>
              <description/>
            </image>
          </images>
          <created>2013-06-16 22:16:00+04</created>
        </product>
        <modification>
          <parameter name="Рост">30</parameter>
          <parameter name="Цвет">Красный</parameter>
        </modification>
        <price>400</price>
        <discount>70</discount>
        <quantity>2</quantity>
      </item>
    </items>
    <reserved-percent type="integer">73</reserved-percent>
    <reserved-all>0</reserved-all>
    <reserve id="21153">Резерв по заказу №16</reserve>
  </order>
</orders>

Информация о заказе

Запрос:

 GET /admin/orders/16.xml?parameter=value

Параметры:

  • products=detail - развернутые теги <product>
  • show-barcodes - признак наличия штрих-кодов в ответе

В ответе присутствует информация о резерве, если заказ еще не отправлен:

<reserved-percent type="integer">73</reserved-percent> - показывает процент реального наполнения товаром по заказу
<reserved-all>0</reserved-all> - означает признак полного резервированная (заказ можно отправлять клиенту)
<reserve id="21153">Резерв по заказу №16</reserve> - краткую информацию о резерве. 

Для получения полной информации по резерву необходимо выполнить соответствующий запрос admin/reserves/16.xml

Ответ:

<order id="16">
  <shop id="1">Магазин "Ромашка"</shop>
  <number>10003</number>
  <client id="148">
    <name>Сидоров Сидр Сергеевич</name>
    <created>2013-08-15 20:05:41+04</created>
    <phone>+79215454545</phone>
    <card>26725</card>
    <discount>5</discount>
    <address>ул. Сидорова 55 кв.44</address>
    <email>sidr@mail.ru</email>
    <comment/>
    <birthday>1984-12-23</birthday>
  </client>
  <created>2014-06-26 21:44:27+04</created>
  <status>new</status>
  <dispatch-required-time/>
  <summa>3360.15</summa>
  <delivery-type id="4">Курьером</delivery-type>
  <delivery-cost>300.15</delivery-cost>
  <delivery-address>на деревню дедушке</delivery-address>
  <delivery-begin-time/>
  <delivery-end-time>2012-12-12 00:00:00+04</delivery-end-time>
  <pay-time/>
  <pay-type>Наличными</pay-type>
  <comment>оплачено 1000р осталось 2360,15р.</comment>
  <items type="array">
    <item id="86e03fab6db4c6d9cf33e616622b6c45">
      <product id="1056" ext="4333">
        <name>Рубашка Апельсин 33549 в полоску</name>
        <article>33549</article>
        <category id="3">Рубашка</category>
        <parameters>
          <parameter name="Торговая марка">Апельсин</parameter>
          <parameter name="Производитель">Китай</parameter>
        </parameters>
        <images>
          <image id="1037">
            <original-url>u2ccsAso5FM.jpg</original-url>
            <url>https://demo.antisklad.ru/?image=1037</url>
            <description>Вид сверху</description>
          </image>
        </images>
        <created>2013-02-26 20:15:00+04</created>
      </product>
      <modification>
        <parameter name="Размер">40</parameter>
      </modification>
      <price>2400</price>
      <discount>0</discount>
      <quantity>1</quantity>
        <barcodes>
             <barcode>2032914541315</barcode>
        </barcodes>
    </item>
    <item id="010ef0a8841bd2490a7e39a474cfed03">
      <product id="2557">
        <name>Чулки а-355</name>
        <article>а-355</article>
        <category id="76">Чулки</category>
        <parameters>
          <parameter name="Торговая марка">Колобок</parameter>
          <parameter name="Производитель">Россия</parameter>
        </parameters>
        <images>
          <image id="1037">
            <original-url>chulki-355.jpg</original-url>
            <url>https://demo.antisklad.ru/?image=3455</url>
            <description/>
          </image>
        </images>
        <created>2013-06-16 22:16:00+04</created>
      </product>
      <modification>
        <parameter name="Рост">30</parameter>
        <parameter name="Цвет">Красный</parameter>
      </modification>
      <price>400</price>
      <discount>70</discount>
      <quantity>2</quantity>
    </item>
  </items>
  <reserved-percent type="integer">73</reserved-percent>
  <reserved-all>0</reserved-all>
  <reserve id="21153">Резерв по заказу №16</reserve>
</order>

Изменение заказа

Запрос:

 PUT /admin/orders/16.xml

При указании тега <reserved-all>1</reserved-all> система попытается зарезервировать полностью товар для заказа. Если это не удается, то возвращается ошибка.

Тело запроса:

<order>
  <number>10003</number>
  <client>148</client>
  <dispatch-required-time/>
  <status>accepted</status>
  <delivery-type>Курьером</delivery-type>
  <delivery-cost>300.15</delivery-cost>
  <delivery-address>на деревню дедушке</delivery-address>
  <delivery-begin-time/>
  <delivery-end-time>2012-12-12 00:00:00+04</delivery-end-time>
  <pay-time/>
  <pay-type>Наличными</pay-type>
  <comment>заказ изменен</comment>
  <items type="array">
    <item id="86e03fab6db4c6d9cf33e616622b6c45">
      <product>2557</product>
      <modification>
        <parameter name="Рост">30</parameter>
        <parameter name="Цвет">Зеленый</parameter>
      </modification>
      <price>400</price>
      <discount>70</discount>
      <quantity>5</quantity>
    </item>
  </items>
  <reserved-all>1</reserved-all>
</order>

Ответ:

<order id="16">
  <shop>1</shop>
  <number>10003</number>
  <client id="148">
    <name>Сидоров Сидр Сергеевич</name>
    <created>2013-08-15 20:05:41+04</created>
    <phone>+79215454545</phone>
    <card>26725</card>
    <discount>5</discount>
    <address>ул. Сидорова 55 кв.44</address>
    <email>sidr@mail.ru</email>
    <comment/>
    <birthday>1984-12-23</birthday>
  </client>
  <created>2014-06-26 21:44:27+04</created>
  <status>new</status>
  <dispatch-required-time/>
  <summa>1960.15</summa>
  <delivery-type id="4">Курьером</delivery-type>
  <delivery-cost>300.15</delivery-cost>
  <delivery-address>на деревню дедушке</delivery-address>
  <delivery-begin-time/>
  <delivery-end-time>2012-12-12 00:00:00+04</delivery-end-time>
  <pay-time/>
  <pay-type>Наличными</pay-type>
  <comment>заказ изменен</comment>
  <items type="array">
    <item id="010ef0a8841bd2490a7e39a474cfed03">
      <product id="2557" ext="4334">
        <name>Чулки а-355</name>
        <article>а-355</article>
        <category id="76">Чулки</category>
        <parameters>
          <parameter name="Торговая марка">Колобок</parameter>
          <parameter name="Производитель">Россия</parameter>
        </parameters>
        <images>
          <image id="1037">
            <original-url>chulki-355.jpg</original-url>
            <url>https://demo.antisklad.ru/?image=3455</url>
            <description/>
          </image>
        </images>
        <created>2013-06-16 22:16:00+04</created>
      </product>
      <modification>
        <parameter name="Рост">30</parameter>
        <parameter name="Цвет">Красный</parameter>
      </modification>
      <price>400</price>
      <discount>70</discount>
      <quantity>5</quantity>
    </item>
  </items>
  <reserved-percent type="integer">100</reserved-percent>
  <reserved-all>1</reserved-all>
  <reserve id="21153">Резерв по заказу №16</reserve>
</order>

Добавление заказа

Запрос:

 POST /admin/orders.xml
Если не указать в запросе идентификатор магазина (тег <shop>), то заказ будет привязан автоматически к первому действующему магазину из списка магазинов.

Товарную позицию можно идентифицировать 3-мя способами перечисленными в разделе добавления поступления.

При создании заказа можно указать дополнительный атрибут goods-source-behaviour, который может принимать значения:
  1. independent-purchase: указывает, что при создании заказа необходимо выполнить поступление соответствующего товара на склад, в результате чего товар в свободном остатке не изменится.
  2. find-impersonal-reserve: указывает, что прежде чем пытаться резервировать товар под заказ, сначала пытаться найти ранее сформированный резерв, соответствующий этому заказу.
При создании заказа можно указать дополнительный атрибут status-change-block-for-user, который запретит пользователю менять в дальнейшем статус данного заказа и может принимать значения:
  1. all: указывает, что пользователь не может менять статус во всех случаях.
  2. перечисленные через запятую статусы: указывает, что пользователь не может менять статус только тем заказам, статус которых указан в перечислении.

Тело запроса:

<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>

Удаление заказа

Запрос:

 DELETE /admin/orders/16.xml

Ответ:

HTTP/1.1 200 OK

Список статусов заказов

Запрос:

 GET /admin/orders-statuses.xml

Ответ:

<orders-statuses type="array">
  <status id="new">Новый</status>
  <status id="accepted">В обработке</status>
  <status id="approved">Согласован</status>
  <status id="packing">На комплектации</status>
  <status id="packed">Готов к отправке</status>
  <status id="dispatched">Отправлен</status>
  <status id="delivered">Выполнен</status>
  <status id="declined">Отменен</status>
</orders-statuses>

Список типов оплаты

Запрос:

 GET /admin/pay-types.xml

Ответ:

<pay-types type="array">
    <pay-type id="bn">Безналичный расчет</pay-type>
    <pay-type id="cash">Наличными</pay-type>
</pay-types>

Список типов доставки

Запрос:

 GET /admin/delivery-types.xml

Ответ:

<delivery-types type="array">
    <delivery-type id="1">Доставка курьером в черте города</delivery-type>
    <delivery-type id="2">Самовывоз</delivery-type>
</delivery-types>

Продажи

Список продаж

Запрос:

 GET /admin/sales.xml?parameter=value

Параметры:

  • page - номер страницы, начиная с нуля. Используется для листания списка. Чтобы получить все нужно в цикле листать страницы пока не закончатся продажи.
  • page-size - размер страницы (количество продаж на странице). По-умолчанию и не может превышать 250.
  • products=detail - развернутые теги <product>
  • show-barcodes - признак наличия штрих-кодов в ответе

Ответ:

<sales type="array">
  <sale id="16">
    <shop id="1">Ромашка</shop>
    <store id="1">Склад "Ромашка"</store>
     <client id="148">Сидоров Сидр Сергеевич</client>
    <created>2014-06-26 21:44:27+04</created>
    <action-time>2014-06-26 21:44:27+04</action-time>
    <summa>3360.15</summa>
    <cash>3360.15</cash>
    <comment>оплачено наличными</comment>
    <items type="array">
      <item id="86e03fab6db4c6d9cf33e616622b6c45">
        <product id="1056">
          <name>Рубашка Апельсин 33549 в полоску</name>
          <article>33549</article>
          <category id="3">Рубашка</category>
          <parameters>
            <parameter name="Торговая марка">Апельсин</parameter>
            <parameter name="Производитель">Китай</parameter>
          </parameters>
          <images>
            <image id="1037">
              <original-url>u2ccsAso5FM.jpg</original-url>
              <url>https://demo.antisklad.ru/?image=1037</url>
              <description>Вид сверху</description>
            </image>
          </images>
          <created>2013-02-26 20:15:00+04</created>
        </product>
        <modification>
          <parameter name="Размер">40</parameter>
        </modification>
        <price>2400</price>
        <discount>0</discount>
        <quantity>1</quantity>
        <barcodes>
             <barcode>2032914541315</barcode>
        </barcodes>
      </item>
      <item id="010ef0a8841bd2490a7e39a474cfed03">
        <product id="2557">
          <name>Чулки а-355</name>
          <article>а-355</article>
          <category id="76">Чулки</category>
          <parameters>
            <parameter name="Торговая марка">Колобок</parameter>
            <parameter name="Производитель">Россия</parameter>
          </parameters>
          <images>
            <image id="1037">
              <original-url>chulki-355.jpg</original-url>
              <url>https://demo.antisklad.ru/?image=3455</url>
              <description/>
            </image>
          </images>
          <created>2013-06-16 22:16:00+04</created>
        </product>
        <modification>
          <parameter name="Рост">30</parameter>
          <parameter name="Цвет">Красный</parameter>
        </modification>
        <price>400</price>
        <discount>70</discount>
        <quantity>2</quantity>
      </item>
    </items>
  </sale>
</sales>

Информация о продаже

Запрос:

 GET /admin/sales/16.xml

Параметры:

  • products=detail - развернутые теги <product>
  • show-barcodes - признак наличия штрих-кодов в ответе

Ответ:

  <sale id="16">
    <shop id="1">Ромашка</shop>
    <store id="1">Склад "Ромашка"</store>
     <client id="148">Сидоров Сидр Сергеевич</client>
    <created>2014-06-26 21:44:27+04</created>
    <action-time>2014-06-26 21:44:27+04</action-time>
    <summa>3360.15</summa>
    <cash>3360.15</cash>
    <comment>оплачено наличными</comment>
    <items type="array">
      <item id="86e03fab6db4c6d9cf33e616622b6c45">
        <product id="1056">
          <name>Рубашка Апельсин 33549 в полоску</name>
          <article>33549</article>
          <category id="3">Рубашка</category>
          <parameters>
            <parameter name="Торговая марка">Апельсин</parameter>
            <parameter name="Производитель">Китай</parameter>
          </parameters>
          <images>
            <image id="1037">
              <original-url>u2ccsAso5FM.jpg</original-url>
              <url>https://demo.antisklad.ru/?image=1037</url>
              <description>Вид сверху</description>
            </image>
          </images>
          <created>2013-02-26 20:15:00+04</created>
        </product>
        <modification>
          <parameter name="Размер">40</parameter>
        </modification>
        <price>2400</price>
        <discount>0</discount>
        <quantity>1</quantity>
        <barcodes>
             <barcode>2032914541315</barcode>
        </barcodes>
      </item>
      <item id="010ef0a8841bd2490a7e39a474cfed03">
        <product id="2557">
          <name>Чулки а-355</name>
          <article>а-355</article>
          <category id="76">Чулки</category>
          <parameters>
            <parameter name="Торговая марка">Колобок</parameter>
            <parameter name="Производитель">Россия</parameter>
          </parameters>
          <images>
            <image id="1037">
              <original-url>chulki-355.jpg</original-url>
              <url>https://demo.antisklad.ru/?image=3455</url>
              <description/>
            </image>
          </images>
          <created>2013-06-16 22:16:00+04</created>
        </product>
        <modification>
          <parameter name="Рост">30</parameter>
          <parameter name="Цвет">Красный</parameter>
        </modification>
        <price>400</price>
        <discount>70</discount>
        <quantity>2</quantity>
      </item>
    </items>
  </sale>

Добавление продажи

Запрос:

 POST /admin/sales.xml

Каждая товарная позиция может быть идентифицирована как уникальным атрибутом <item id='…'>, полученным ранее, так и тегом <product> с тегом модификации, при необходимости. Атрибут <item id='…'> считается более приоритетным над тегами <product> + <modification>

Если не указать в запросе идентификатор магазина (тег <shop>), то продажа будет привязана автоматически к первому действующему магазину из списка магазинов.
Тег <cash> задает сумму оплаты продажи наличными. Соответственно, остаток суммы оплаты система проведет по безналу. Таким образом, <cash>0<cash> задает признак оплаты по безналу. Если тег <cash/> опущен, то, по-умолчанию, рассматривается как оплата наличными.

Тело запроса:

<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>
Необязательный внешний уникальный идентификатор (атрибут «uuid» тега «sale») гарантирует уникальность продажи в системе. Другими словами, при попытке создать продажу с таким же uuid (например, <sale uuid=«8d2a202e-4d6b-4d3c-9813-6728dc29baa6»), как и у ранее созданной, будет ошибка «409 Conflict».

Ответ:

<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
Возврат создается через указание номера продажи (тег <sale>). Т.е. вернуть можно только тот товар, который был проведен через систему.
Тег <cash> задает сумму возврата наличных денег. Соответственно, остаток суммы возврата система проведет по безналу. Таким образом, <cash>0<cash> задает признак возврата по безналу. Если тег <cash/> опущен, то, по-умолчанию, рассматривается возврат наличности.
При создании возврата можно указать дополнительный атрибут goods-source-behaviour, который может принимать значения:
  1. reserve: указывает, что при создании возврата необходимо вернуть товар в резерв на склад, в результате чего товар в свободном остатке не изменится.
  2. 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> определяет суммарную закупочную стоимость всех позиций поступления.

Для работы с планируемыми (не проведенными) поступлениями, необходимо в путях запросов указывать planpurchases вместо purchases.

Список поступлений

Запрос:

 GET /admin/purchases.xml

Параметры:

  • page - номер страницы, начиная с нуля. Используется для листания списка. Чтобы получить все нужно в цикле листать страницы пока не закончатся поступления.
  • page-size - размер страницы (количество поступлений на странице). По-умолчанию и не может превышать 250.
  • products=detail - развернутые теги <product>
  • show-barcodes - признак наличия штрих-кодов в ответе
Список архивных(проведенных) и список планируемых(не проведеных) поступлений - это два разных списка, каждый из которых имеет свой счетчик id. Т.е. после проведения поступления он попадает в список архивных под новым id.

Ответ:

<purchases type="array">
  <purchase id="16">
    <store id="1">Склад "Ромашка"</store>
    <vendor id="22">ИП "Иванов И.И."</vendor>
    <user id="23">Иванов Андрей</user>
    <created>2014-06-26 21:44:27+04</created>
    <action-time>2014-06-26 21:44:27+04</action-time>
    <cost>3200</cost>
    <currency>RUB</currency>
    <rate>1</rate>
    <quantity>3</quantity>
    <comment>возврат брака</comment>
    <items type="array">
      <item id="86e03fab6db4c6d9cf33e616622b6c45">
        <product id="1056">
          <name>Рубашка Апельсин 33549 в полоску</name>
          <article>33549</article>
          <category id="3">Рубашка</category>
          <parameters>
            <parameter name="Торговая марка">Апельсин</parameter>
            <parameter name="Производитель">Китай</parameter>
          </parameters>
          <images>
            <image id="1037">
              <original-url>u2ccsAso5FM.jpg</original-url>
              <url>https://demo.antisklad.ru/?image=1037</url>
              <description>Вид сверху</description>
            </image>
          </images>
          <created>2013-02-26 20:15:00+04</created>
        </product>
        <modification>
          <parameter name="Размер">40</parameter>
        </modification>
        <cost>2400</cost>
        <currency>RUB</currency>
        <rate>1</rate>
        <quantity>1</quantity>
        <barcodes>
             <barcode>2032914541315</barcode>
        </barcodes>
      </item>
      <item id="010ef0a8841bd2490a7e39a474cfed03">
        <product id="2557">
          <name>Чулки а-355</name>
          <article>а-355</article>
          <category id="76">Чулки</category>
          <parameters>
            <parameter name="Торговая марка">Колобок</parameter>
            <parameter name="Производитель">Россия</parameter>
          </parameters>
          <images>
            <image id="1037">
              <original-url>chulki-355.jpg</original-url>
              <url>https://demo.antisklad.ru/?image=3455</url>
              <description/>
            </image>
          </images>
          <created>2013-06-16 22:16:00+04</created>
        </product>
        <modification>
          <parameter name="Рост">30</parameter>
          <parameter name="Цвет">Красный</parameter>
        </modification>
        <cost>400</cost>
        <currency>RUB</currency>
        <rate>1</rate>
        <quantity>2</quantity>
      </item>
    </items>
  </purchase>
</purchases>

Информация о поступлении

Запрос:

 GET /admin/purchases/16.xml

Параметры:

  • products=detail - развернутые теги <product>
  • show-barcodes - признак наличия штрих-кодов в ответе

Ответ:

  <purchase id="16">
    <store id="1">Склад "Ромашка"</store>
    <vendor id="22">ИП "Иванов И.И."</vendor>
    <created>2014-06-26 21:44:27+04</created>
    <action-time>2014-06-26 21:44:27+04</action-time>
    <cost>3200</cost>
    <currency>RUB</currency>
    <rate>1</rate>    
    <quantity>3</quantity>
    <comment>возврат брака</comment>
    <items type="array">
      <item id="86e03fab6db4c6d9cf33e616622b6c45">
        <product id="1056">
          <name>Рубашка Апельсин 33549 в полоску</name>
          <article>33549</article>
          <category id="3">Рубашка</category>
          <parameters>
            <parameter name="Торговая марка">Апельсин</parameter>
            <parameter name="Производитель">Китай</parameter>
          </parameters>
          <images>
            <image id="1037">
              <original-url>u2ccsAso5FM.jpg</original-url>
              <url>https://demo.antisklad.ru/?image=1037</url>
              <description>Вид сверху</description>
            </image>
          </images>
          <created>2013-02-26 20:15:00+04</created>
        </product>
        <modification>
          <parameter name="Размер">40</parameter>
        </modification>
        <cost>2400</cost>
        <currency>RUB</currency>
        <rate>1</rate>
        <quantity>1</quantity>
        <barcodes>
             <barcode>2032914541315</barcode>
        </barcodes>
      </item>
      <item id="010ef0a8841bd2490a7e39a474cfed03">
        <product id="2557">
          <name>Чулки а-355</name>
          <article>а-355</article>
          <category id="76">Чулки</category>
          <parameters>
            <parameter name="Торговая марка">Колобок</parameter>
            <parameter name="Производитель">Россия</parameter>
          </parameters>
          <images>
            <image id="1037">
              <original-url>chulki-355.jpg</original-url>
              <url>https://demo.antisklad.ru/?image=3455</url>
              <description/>
            </image>
          </images>
          <created>2013-06-16 22:16:00+04</created>
        </product>
        <modification>
          <parameter name="Рост">30</parameter>
          <parameter name="Цвет">Красный</parameter>
        </modification>
        <cost>400</cost>
        <currency>RUB</currency>
        <rate>1</rate>
        <quantity>2</quantity>
      </item>
    </items>
  </purchase>

Добавление поступления

Запрос:

 POST /admin/purchases.xml

Закупка от поставщика отличается от обычного поступления только наличием тега <vendor>. Тег <cost> определяет закупочную стоимость позиций поступления/возврата.

Тег <currency> определяет валюту текущего поступления. Одно из значений (RUB, USD, EUR, BYN, KZT, UAH).

Тег <rate> определяет курс указанной валюты для текущего поступления.

Товарную позицию можно идентифицировать 3-мя способами (в порядке приоритета):

  1. явно передать id товарной позиции (атрибут id тега item)
  2. явно передать ШК товарной позиции (атрибут barcode тега item)
  3. передать id карточки товара (тег product) + модификацию (тег modification)

Тело запроса:

<purchase>
  <store>1</store>
  <vendor>22</vendor>
  <user>23</user>
  <action-time>2020-06-26 21:53</action-time>
  <comment>новое супер-поступление</comment>
  <currency>RUB</currency>
  <rate>1</rate>
  <items>
      <item id="86e03fab6db4c6d9cf33e616622b6c45">
        <product>1056</product>
        <modification>
          <parameter name="Размер">40</parameter>
        </modification>
        <cost>2400</cost>
        <quantity>1</quantity>
      </item>
      <item id="010ef0a8841bd2490a7e39a474cfed03">
        <product>2557</product>
        <modification>
          <parameter name="Рост">30</parameter>
          <parameter name="Цвет">Красный</parameter>
        </modification>
        <cost>400</cost>
        <quantity>2</quantity>
      </item>
  </items>
</purchase>

Ответ:

<purchase id="116">
     <store id="1">Склад "Ромашка"</store>
    <vendor id="22">ИП "Иванов И.И."</vendor>
    <user id="23">Иванов Андрей</user>
    <created>2014-06-26 21:44:27+04</created>
    <action-time>2014-06-26 21:44:27+04</action-time>
    <cost>3200</cost>
    <currency>RUB</currency>
    <rate>1</rate>
    <quantity>3</quantity>
    <comment>возврат брака</comment>
    <items type="array">
      <item id="86e03fab6db4c6d9cf33e616622b6c45">
        <product id="1056">
          <name>Рубашка Апельсин 33549 в полоску</name>
          <article>33549</article>
          <category id="3">Рубашка</category>
          <parameters>
            <parameter name="Торговая марка">Апельсин</parameter>
            <parameter name="Производитель">Китай</parameter>
          </parameters>
          <images>
            <image id="1037">
              <original-url>u2ccsAso5FM.jpg</original-url>
              <url>https://demo.antisklad.ru/?image=1037</url>
              <description>Вид сверху</description>
            </image>
          </images>
          <created>2013-02-26 20:15:00+04</created>
        </product>
        <modification>
          <parameter name="Размер">40</parameter>
        </modification>
        <cost>2400</cost>
        <currency>RUB</currency>
        <rate>1</rate>
        <quantity>1</quantity>
      </item>
      <item id="010ef0a8841bd2490a7e39a474cfed03">
        <product id="2557">
          <name>Чулки а-355</name>
          <article>а-355</article>
          <category id="76">Чулки</category>
          <parameters>
            <parameter name="Торговая марка">Колобок</parameter>
            <parameter name="Производитель">Россия</parameter>
          </parameters>
          <images>
            <image id="1037">
              <original-url>chulki-355.jpg</original-url>
              <url>https://demo.antisklad.ru/?image=3455</url>
              <description/>
            </image>
          </images>
          <created>2013-06-16 22:16:00+04</created>
        </product>
        <modification>
          <parameter name="Рост">30</parameter>
          <parameter name="Цвет">Красный</parameter>
        </modification>
        <cost>400</cost>
        <currency>RUB</currency>
        <rate>1</rate>
        <quantity>2</quantity>
      </item>
    </items>
</purchase>

Изменение поступления

Если поступление еще не проведено (планируемое поступление), то в нем можно менять все.

Если поступление проведено (находится в архиве), то изменить в нем можно все, кроме склада и количества.

Провести(выполнить) планируемое поступление можно либо указав GET-параметр purchase, либо указав значение тега action-time. Например, …/planpurchases/234.xml?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&#x439; &#x41C;&#x443;&#x440;&#x438;&#x43D;&#x441;&#x43A;&#x438;&#x439; &#x43F;&#x440;. 38</store>
    <vendor id="3">&#x436;&#x430;&#x43D;&#x43D;&#x430; &#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x434;&#x441;&#x442;&#x432;&#x43E;</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>&#x43D;&#x43E;&#x432;&#x43E;&#x435; &#x441;&#x443;&#x43F;&#x435;&#x440;-&#x43F;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43B;&#x435;&#x43D;&#x438;&#x435;</comment>
    <items type="array" count="1">
        <item id="93a47e2f8219b9304ae61eb25496c7fe">
            <product id="48">&#x425;&#x430;&#x43B;&#x430;&#x442; &#x436;&#x435;&#x43D;. 215(&#x441;&#x430;&#x442;&#x43E;&#x440;&#x438;)</product>
            <modification>
                <parameter name="size">40</parameter>
                <parameter name="colour-sleeve">&#x431;&#x435;&#x43B;&#x44B;&#x439;-2</parameter>
            </modification>
            <cost>111</cost>
            <rate>77</rate>
            <cost_nat>8547</cost_nat>
            <price>3990</price>
            <discount>1000</discount>
            <quantity>20</quantity>
        </item>
    </items>
</purchase>

Перемещения

Список перемещений

Запрос:

 GET /admin/migrations.xml?parameter=value

Параметры:

  • page - номер страницы, начиная с нуля. Используется для листания списка. Чтобы получить все нужно в цикле листать страницы пока не закончатся перемещения.
  • page-size - размер страницы (количество перемещений на странице). По-умолчанию и не может превышать 250.
  • products=detail - развернутые теги <product>
  • show-barcodes - признак наличия штрих-кодов в ответе

Ответ:

<migrations type="array">
  <migration id="16">
    <store_from id="1">Склад "Ромашка"</store>
    <store_to id="2">Главный склад</store>
    <created>2014-06-26 21:44:27+04</created>
    <action-time>2014-06-26 21:44:27+04</action-time>
    <cost>3360.15</cost>
    <quantity>3</quantity>
    <comment>оплачено наличными</comment>
    <items type="array">
      <item id="86e03fab6db4c6d9cf33e616622b6c45">
        <product id="1056">
          <name>Рубашка Апельсин 33549 в полоску</name>
          <article>33549</article>
          <category id="3">Рубашка</category>
          <parameters>
            <parameter name="Торговая марка">Апельсин</parameter>
            <parameter name="Производитель">Китай</parameter>
          </parameters>
          <images>
            <image id="1037">
              <original-url>u2ccsAso5FM.jpg</original-url>
              <url>https://demo.antisklad.ru/?image=1037</url>
              <description>Вид сверху</description>
            </image>
          </images>
          <created>2013-02-26 20:15:00+04</created>
        </product>
        <modification>
          <parameter name="Размер">40</parameter>
        </modification>
        <price>2400</price>
        <discount>0</discount>
        <quantity>1</quantity>
       <barcodes>
             <barcode>2032914541315</barcode>
        </barcodes>
      </item>
      <item id="010ef0a8841bd2490a7e39a474cfed03">
        <product id="2557">
          <name>Чулки а-355</name>
          <article>а-355</article>
          <category id="76">Чулки</category>
          <parameters>
            <parameter name="Торговая марка">Колобок</parameter>
            <parameter name="Производитель">Россия</parameter>
          </parameters>
          <images>
            <image id="1037">
              <original-url>chulki-355.jpg</original-url>
              <url>https://demo.antisklad.ru/?image=3455</url>
              <description/>
            </image>
          </images>
          <created>2013-06-16 22:16:00+04</created>
        </product>
        <modification>
          <parameter name="Рост">30</parameter>
          <parameter name="Цвет">Красный</parameter>
        </modification>
        <price>400</price>
        <discount>70</discount>
        <quantity>2</quantity>
      </item>
    </items>
  </migration>
</migrations>

Информация о перемещении

Запрос:

 GET /admin/migrations/16.xml

Параметры:

  • products=detail - развернутые теги <product>
  • show-barcodes - признак наличия штрих-кодов в ответе

Ответ:

  <migration id="16">
    <store_from id="1">Склад "Ромашка"</store>
    <store_to id="2">Главный склад</store>
    <created>2014-06-26 21:44:27+04</created>
    <action-time>2014-06-26 21:44:27+04</action-time>
    <cost>3360.15</cost>
    <comment>оплачено наличными</comment>
    <items type="array">
      <item id="86e03fab6db4c6d9cf33e616622b6c45">
        <product id="1056">
          <name>Рубашка Апельсин 33549 в полоску</name>
          <article>33549</article>
          <category id="3">Рубашка</category>
          <parameters>
            <parameter name="Торговая марка">Апельсин</parameter>
            <parameter name="Производитель">Китай</parameter>
          </parameters>
          <images>
            <image id="1037">
              <original-url>u2ccsAso5FM.jpg</original-url>
              <url>https://demo.antisklad.ru/?image=1037</url>
              <description>Вид сверху</description>
            </image>
          </images>
          <created>2013-02-26 20:15:00+04</created>
        </product>
        <modification>
          <parameter name="Размер">40</parameter>
        </modification>
        <price>2400</price>
        <discount>0</discount>
        <quantity>1</quantity>
       <barcodes>
             <barcode>2032914541315</barcode>
        </barcodes>
      </item>
      <item id="010ef0a8841bd2490a7e39a474cfed03">
        <product id="2557">
          <name>Чулки а-355</name>
          <article>а-355</article>
          <category id="76">Чулки</category>
          <parameters>
            <parameter name="Торговая марка">Колобок</parameter>
            <parameter name="Производитель">Россия</parameter>
          </parameters>
          <images>
            <image id="1037">
              <original-url>chulki-355.jpg</original-url>
              <url>https://demo.antisklad.ru/?image=3455</url>
              <description/>
            </image>
          </images>
          <created>2013-06-16 22:16:00+04</created>
        </product>
        <modification>
          <parameter name="Рост">30</parameter>
          <parameter name="Цвет">Красный</parameter>
        </modification>
        <price>400</price>
        <discount>70</discount>
        <quantity>2</quantity>
      </item>
    </items>
  </migration>

Добавление перемещения

Запрос:

 POST /admin/migrations.xml

Тело запроса:

<migration>
  <store_from>1</store_from>
  <store_to>2</store_to>
  <user>23</user>
  <comment>новое супер-перемещение</comment>
  <items type="array">
    <item id="86e03fab6db4c6d9cf33e616622b6c45">
      <product>6557</product>
      <modification>
        <parameter name="Цвет">Синий</parameter>
      </modification>
      <quantity>1</quantity>
    </item>
    <item id="010ef0a8841bd2490a7e39a474cfed03">
      <product>67</product>
      <modification/>
      <quantity>2</quantity>
    </item>
  </items>
</migration>

Ответ:

<migration id="116">
  <store_from>1</store_from>
  <store_to>2</store_to>
  <user id="23">Иванова Лариса</user>
  <created>2012-06-26 21:44:27+04</created>
  <cost>2840</cost>
  <comment>новое супер-перемещение</comment>
  <items type="array">
    <item id="86e03fab6db4c6d9cf33e616622b6c45">
      <product id="6557">
        <name>Носки б-355</name>
        <article>б-355</article>
        <category id="54">Носки</category>
        <parameters>
          <parameter name="Торговая марка">Колобок</parameter>
          <parameter name="Производитель">Россия</parameter>
        </parameters>
        <images/>
        <created>2013-01-16 02:06:10+04</created>
      </product>
      <modification>
        <parameter name="Цвет">Синий</parameter>
      </modification>
      <price>300</price>
      <discount>60</discount>
      <quantity>1</quantity>
    </item>
    <item id="010ef0a8841bd2490a7e39a474cfed03">
      <product id="67">
        <name>Табурет</name>
        <article>2125м</article>
        <category id="58">Мебель</category>
        <parameters>
          <parameter name="Цвет">Красный</parameter>
        </parameters>
        <images/>
        <created>2013-06-24 22:06:10+04</created>
      </product>
      <modification/>
      <price>1300</price>
      <discount>0</discount>
      <quantity>2</quantity>
    </item>
  </items>
</migration>

Отмена перемещения

Запрос:

 DELETE /admin/migrations/116.xml

Ответ:

HTTP/1.1 200 OK

Списания и возвраты поставщикам

Возврат поставщику отличается от обычного списания только наличием тега <vendor>. Тег <cost> определяет закупочную стоимость списания и его позиций.

Список списаний

Запрос:

 GET /admin/restores.xml

Параметры:

  • page - номер страницы, начиная с нуля. Используется для листания списка. Чтобы получить все нужно в цикле листать страницы пока не закончатся списания.
  • page-size - размер страницы (количество списаний на странице). По-умолчанию и не может превышать 250.
  • products=detail - развернутые теги <product>
  • show-barcodes - признак наличия штрих-кодов в ответе

Ответ:

<restores type="array">
  <restore id="16">
    <store id="1">Склад "Ромашка"</store>
    <vendor id="22">ИП "Иванов И.И."</vendor>
    <user id="23">Иванов Андрей</user>
    <created>2014-06-26 21:44:27+04</created>
    <action-time>2014-06-26 21:44:27+04</action-time>
    <cost>3200</cost>
    <quantity>3</quantity>
    <comment>возврат брака</comment>
    <items type="array">
      <item id="86e03fab6db4c6d9cf33e616622b6c45">
        <product id="1056">
          <name>Рубашка Апельсин 33549 в полоску</name>
          <article>33549</article>
          <category id="3">Рубашка</category>
          <parameters>
            <parameter name="Торговая марка">Апельсин</parameter>
            <parameter name="Производитель">Китай</parameter>
          </parameters>
          <images>
            <image id="1037">
              <original-url>u2ccsAso5FM.jpg</original-url>
              <url>https://demo.antisklad.ru/?image=1037</url>
              <description>Вид сверху</description>
            </image>
          </images>
          <created>2013-02-26 20:15:00+04</created>
        </product>
        <modification>
          <parameter name="Размер">40</parameter>
        </modification>
        <cost>2400</cost>
        <currency>RUB</currency>
        <rate>1</rate>
        <quantity>1</quantity>
        <barcodes>
             <barcode>2032914541315</barcode>
        </barcodes>
      </item>
      <item id="010ef0a8841bd2490a7e39a474cfed03">
        <product id="2557">
          <name>Чулки а-355</name>
          <article>а-355</article>
          <category id="76">Чулки</category>
          <parameters>
            <parameter name="Торговая марка">Колобок</parameter>
            <parameter name="Производитель">Россия</parameter>
          </parameters>
          <images>
            <image id="1037">
              <original-url>chulki-355.jpg</original-url>
              <url>https://demo.antisklad.ru/?image=3455</url>
              <description/>
            </image>
          </images>
          <created>2013-06-16 22:16:00+04</created>
        </product>
        <modification>
          <parameter name="Рост">30</parameter>
          <parameter name="Цвет">Красный</parameter>
        </modification>
        <cost>400</cost>
        <currency>RUB</currency>
        <rate>1</rate>
        <quantity>2</quantity>
      </item>
    </items>
  </restore>
</restores>

Информация о списании

Запрос:

 GET /admin/restores/16.xml

Параметры:

  • products=detail - развернутые теги <product>
  • show-barcodes - признак наличия штрих-кодов в ответе

Ответ:

  <restore id="16">
    <store id="1">Склад "Ромашка"</store>
    <vendor id="22">ИП "Иванов И.И."</vendor>
    <created>2014-06-26 21:44:27+04</created>
    <action-time>2014-06-26 21:44:27+04</action-time>
    <cost>3200</cost>
    <quantity>3</quantity>
    <comment>возврат брака</comment>
    <items type="array">
      <item id="86e03fab6db4c6d9cf33e616622b6c45">
        <product id="1056">
          <name>Рубашка Апельсин 33549 в полоску</name>
          <article>33549</article>
          <category id="3">Рубашка</category>
          <parameters>
            <parameter name="Торговая марка">Апельсин</parameter>
            <parameter name="Производитель">Китай</parameter>
          </parameters>
          <images>
            <image id="1037">
              <original-url>u2ccsAso5FM.jpg</original-url>
              <url>https://demo.antisklad.ru/?image=1037</url>
              <description>Вид сверху</description>
            </image>
          </images>
          <created>2013-02-26 20:15:00+04</created>
        </product>
        <modification>
          <parameter name="Размер">40</parameter>
        </modification>
        <cost>2400</cost>
        <currency>RUB</currency>
        <rate>1</rate>
        <quantity>1</quantity>
        <barcodes>
             <barcode>2032914541315</barcode>
        </barcodes>
      </item>
      <item id="010ef0a8841bd2490a7e39a474cfed03">
        <product id="2557">
          <name>Чулки а-355</name>
          <article>а-355</article>
          <category id="76">Чулки</category>
          <parameters>
            <parameter name="Торговая марка">Колобок</parameter>
            <parameter name="Производитель">Россия</parameter>
          </parameters>
          <images>
            <image id="1037">
              <original-url>chulki-355.jpg</original-url>
              <url>https://demo.antisklad.ru/?image=3455</url>
              <description/>
            </image>
          </images>
          <created>2013-06-16 22:16:00+04</created>
        </product>
        <modification>
          <parameter name="Рост">30</parameter>
          <parameter name="Цвет">Красный</parameter>
        </modification>
        <cost>400</cost>
        <currency>RUB</currency>
        <rate>1</rate>
        <quantity>2</quantity>
      </item>
    </items>
  </restore>

Добавление списания

Запрос:

 POST /admin/restores.xml

Возврат поставщику отличается от обычного списания только наличием тега <vendor>. Тег <cost> определяет закупочную стоимость позиций списания/возврата.

Товарную позицию можно идентифицировать 3-мя способами перечисленными в разделе добавления поступления.

Тело запроса:

<restore>
  <store>1</store>
  <vendor>22</vendor>
  <user>23</user>
  <comment>новое супер-списание</comment>
  <items>
      <item id="86e03fab6db4c6d9cf33e616622b6c45">
        <product>1056</product>
        <modification>
          <parameter name="Размер">40</parameter>
        </modification>
        <cost>2400</cost>
        <currency>RUB</currency>
        <rate>1</rate>
        <quantity>1</quantity>
      </item>
      <item id="010ef0a8841bd2490a7e39a474cfed03">
        <product>2557</product>
        <modification>
          <parameter name="Рост">30</parameter>
          <parameter name="Цвет">Красный</parameter>
        </modification>
        <cost>400</cost>
        <currency>RUB</currency>
        <rate>1</rate>
        <quantity>2</quantity>
      </item>
  </items>
</restore>

Ответ:

<restore id="116">
     <store id="1">Склад "Ромашка"</store>
    <vendor id="22">ИП "Иванов И.И."</vendor>
    <user id="23">Иванов Андрей</user>
    <created>2014-06-26 21:44:27+04</created>
    <action-time>2014-06-26 21:44:27+04</action-time>
    <cost>3200</cost>
    <quantity>3</quantity>
    <comment>возврат брака</comment>
    <items type="array">
      <item id="86e03fab6db4c6d9cf33e616622b6c45">
        <product id="1056">
          <name>Рубашка Апельсин 33549 в полоску</name>
          <article>33549</article>
          <category id="3">Рубашка</category>
          <parameters>
            <parameter name="Торговая марка">Апельсин</parameter>
            <parameter name="Производитель">Китай</parameter>
          </parameters>
          <images>
            <image id="1037">
              <original-url>u2ccsAso5FM.jpg</original-url>
              <url>https://demo.antisklad.ru/?image=1037</url>
              <description>Вид сверху</description>
            </image>
          </images>
          <created>2013-02-26 20:15:00+04</created>
        </product>
        <modification>
          <parameter name="Размер">40</parameter>
        </modification>
        <cost>2400</cost>
        <currency>RUB</currency>
        <rate>1</rate>
        <quantity>1</quantity>
      </item>
      <item id="010ef0a8841bd2490a7e39a474cfed03">
        <product id="2557">
          <name>Чулки а-355</name>
          <article>а-355</article>
          <category id="76">Чулки</category>
          <parameters>
            <parameter name="Торговая марка">Колобок</parameter>
            <parameter name="Производитель">Россия</parameter>
          </parameters>
          <images>
            <image id="1037">
              <original-url>chulki-355.jpg</original-url>
              <url>https://demo.antisklad.ru/?image=3455</url>
              <description/>
            </image>
          </images>
          <created>2013-06-16 22:16:00+04</created>
        </product>
        <modification>
          <parameter name="Рост">30</parameter>
          <parameter name="Цвет">Красный</parameter>
        </modification>
        <cost>400</cost>
        <currency>RUB</currency>
        <rate>1</rate>
        <quantity>2</quantity>
      </item>
    </items>
</restore>

Отмена списания

Запрос:

 DELETE /admin/restores/116.xml

Ответ:

HTTP/1.1 200 OK

Резервы

Список резервов

Запрос:

 GET /admin/reserves.xml?parameter=value

Параметры:

  • page - номер страницы, начиная с нуля. Используется для листания списка. Чтобы получить все нужно в цикле листать страницы пока не закончатся резервы.
  • page-size - размер страницы (количество резервов на странице). По-умолчанию и не может превышать 250.
  • products=detail - развернутые теги <product>
  • show-barcodes - признак наличия штрих-кодов в ответе
  • type - тип(назначение) резерва: migration|reject|order|other

Ответ:

<reserves type="array">
  <reserve id="16">
    <type>migration</type>
    <status>new</status>
    <name>Мой резерв</name>
    <store id="1">Склад "Ромашка"</store>
    <store_to id="2">Склад "Второй"</store_to>
    <vendor id="2">ООО "Поставщик 1"</vendor>
    <order id="1001">100023</order>
    <client id="148">Сидоров Сидр Сергеевич</client>
    <created>2014-06-26 21:44:27+04</created>
    <comment>возвращено по безналу</comment>
    <items type="array">
      <item id="86e03fab6db4c6d9cf33e616622b6c45">
        <product id="1056">Рубашка Апельсин 33549 в полоску</product>
        <modification>
          <parameter name="Размер">40</parameter>
        </modification>
        <price>2400</price>
        <discount>100</discount>
        <quantity>1</quantity>
      </item>
       <barcodes>
             <barcode>2032914541315</barcode>
        </barcodes>
    </items>
  </reserve>
</reserves>

Информация о резерве

Запрос:

 GET /admin/reserves/16.xml

Параметры:

  • products=detail - развернутые теги <product>
  • show-barcodes - признак наличия штрих-кодов в ответе

Ответ:

  <reserve id="16">
    <type>migration</type>
    <status>new</status>
    <name>Мой резерв</name>
    <store id="1">Склад "Ромашка"</store>
    <store_to id="2">Склад "Второй"</store_to>
    <vendor id="2">ООО "Поставщик 1"</vendor>
    <order id="1001">100023</order>
    <client id="148">Сидоров Сидр Сергеевич</client>
    <created>2014-06-26 21:44:27+04</created>
    <comment>возвращено по безналу</comment>
    <items type="array">
      <item id="86e03fab6db4c6d9cf33e616622b6c45">
        <product id="1056">Рубашка Апельсин 33549 в полоску</product>
        <modification>
          <parameter name="Размер">40</parameter>
        </modification>
        <price>2400</price>
        <discount>100</discount>
        <quantity>1</quantity>
       <barcodes>
             <barcode>2032914541315</barcode>
        </barcodes>
      </item>
    </items>
  </reserve>

Создание резерва

Запрос:

 POST /admin/reserves.xml
При необходимости, можно создать резерв-перемещение. Для этого укажите идентификатор склада-приемника в теге store_to и тип migration в теге type.

Тело запроса:

<reserve>
  <store>1</store>
  <type>migration</type> /* 'migration', 'restore', 'reject' */
  <store_to>2</store_to> /* идентификатор склада-приемника */
  <name>Мой резерв</name>
  <comment>произвольный коментарий…</comment>
  <items>
    <item id="86e03fab6db4c6d9cf33e616622b6c45">
      <product>1056</product>
      <modification>
        <parameter name="Цвет">Синий</parameter>
      </modification>
      <price>2400</price>
      <discount>100</discount>
      <quantity>1</quantity>
    </item>
  </items>
</reserve>

Ответ:

  <reserve id="16">
    <type>other</type>
    <status>new</status>
    <name>Мой резерв</name>
    <store id="1">Склад "Ромашка"</store>
    <created>2014-06-26 21:44:27+04</created>
    <comment>возвращено по безналу</comment>
    <items type="array">
      <item id="86e03fab6db4c6d9cf33e616622b6c45">
        <product id="1056">Рубашка Апельсин 33549 в полоску</product>
        <modification>
          <parameter name="Размер">40</parameter>
        </modification>
        <price>2400</price>
        <discount>100</discount>
        <quantity>1</quantity>
      </item>
    </items>
  </reserve>

Изменение резерва

Запрос:

 PUT /admin/reserves/16.xml

Тело запроса:

<?xml version="1.0" encoding="UTF-8"?>
<reserve>
  <items>
    <item id="86e03fab6db4c6d9cf33e616622b6c45">
      <product>1056</product>
      <modification>
        <parameter name="Цвет">Синий</parameter>
      </modification>
      <quantity>2</quantity>
    </item>
  </items>
</reserve>

Ответ:

  <reserve id="16">
    <type>other</type>
    <status>new</status>
    <name>Мой резерв</name>
    <store id="1">Склад "Ромашка"</store>
    <created>2014-06-26 21:44:27+04</created>
    <comment>возвращено по безналу</comment>
    <items type="array">
      <item id="86e03fab6db4c6d9cf33e616622b6c45">
        <product id="1056">Рубашка Апельсин 33549 в полоску</product>
        <modification>
          <parameter name="Размер">40</parameter>
        </modification>
        <price>2400</price>
        <discount>100</discount>
        <quantity>2</quantity>
      </item>
    </items>
  </reserve>

Удаление(расформирование) резерва

Запрос:

 DELETE /admin/reserves/16.xml

Ответ:

HTTP/1.1 200 OK

Расходы и доходы

Получение списка расходов/доходов

Запроc:

 GET /admin/expenditures?parameter=value 

Параметры:

  • page - номер страницы, начиная с нуля. Используется для листания списка. Чтобы получить все нужно в цикле листать страницы пока не закончится список.
  • page-size - размер страницы (количество позиций на странице). По-умолчанию равен и не может превышать 250.
  • expense - признак расходов (указывается без значения).
  • income - признак доходов (указывается без значения).

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<expenditures type="array">
  <expenditure id="1">
    <budget id="3" class="retail">Из кассы</budget>
    <expense>1</expense>
    <employee id="22">Иванов Иван Иванович</employee> 
    <shop id="2">Магазин "Ромашка"</shop>
    <value>200</value>
    <comment>такси</comment>
    <cash>1</cash>
    <action>2013-09-24 12:05:20+04</action>
  </expenditure>
  <expenditure id="1">
    <budget id="4" class="retail">В кассу</budget>
    <income>1</income>
    <employee id="22">Иванов Иван Иванович</employee> 
    <shop id="2">Магазин "Ромашка"</shop>
    <value>500</value>
    <comment>за опоздание</comment>
    <cash>1</cash>
    <action>2013-09-24 13:05:20+04</action>
  </expenditure>
</expenditures>

Теги: - cash - признак наличных денег - employee - необязательный тег, привязка расхода к конкретному сотруднику (записать за сотрудником) - shop - необязательный тег, привязка расхода к конкретному магазину (записать за магазином) - expense - признак расхода - income - признак дохода

Получение параметров расхода/дохода

Запрос:

 GET /admin/expenditures/2.xml

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
  <expenditure id="2">
    <budget id="3" class="retail">Из кассы</budget>
    <expense>1</expense>
    <employee id="22">Иванов Иван Иванович</employee> 
    <shop id="2">Магазин "Ромашка"</shop>
    <value>200</value>
    <comment>такси</comment>
    <cash>1</cash>
    <action>2013-09-24 12:05:20+04</action>
  </expenditure>

Добавление расхода/дохода

Запрос:

 POST /admin/expenditures.xml

Тело запроса:

<?xml version="1.0" encoding="UTF-8"?>
  <expenditure>
    <budget>3</budget>
    <employee>22</employee> 
    <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>

Изменение параметров расхода/дохода

Запрос:

 PUT /admin/expenditures/2.xml

Тело запроса:

<?xml version="1.0" encoding="UTF-8"?>
  <expenditure>
    <value>250</value>
  </expenditure>

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
  <expenditure id="2">
    <budget id="3" class="retail">Из кассы</budget>
    <expense>1</expense>
    <employee id="22">Иванов Иван Иванович</employee> 
    <shop id="2">Магазин "Ромашка"</shop>
    <value>250</value>
    <comment>такси</comment>
    <cash>1</cash>
    <action>2013-09-24 12:05:20+04</action>
  </expenditure>

Удаление дохода/расхода

Запроc:

 DELETE /admin/expenditures/2.xml 

Ответ:

HTTP/1.1 200 OK

Справочники

Справочник статей расходов и доходов

Получение списка статей

Запроc:

 GET /admin/budgets?parameter=value 

Параметры:

  • page - номер страницы, начиная с нуля. Используется для листания списка. Чтобы получить все нужно в цикле листать страницы пока не закончится список.
  • page-size - размер страницы (количество позиций на странице). По-умолчанию и не может превышать 250.
  • expense - признак расходов (указывается без значения).
  • income - признак доходов (указывается без значения).

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<budgets type="array">
  <budget id="1">
    <name>Зарплата</name>
    <parent/>
    <comment>основная часть</comment>    
    <default_summa>30000</default_summa>
    <permanent>1</permanent>
    <analysis>1</analysis>
    <expense>1</expense>
    <income>0</income>
    <class/>
    <user id="23">Иванов Иван Иванович</user>
    <created>2013-09-24 12:05:20+04</created>
  </budget>
  <budget id="2">
    <name>Процент от продаж</name>
    <parent id="1">Зарплата</parent>
    <comment/>    
    <default_summa/>
    <permanent>0</permanent>
    <analysis>1</analysis>
    <expense>1</expense>
    <income>0</income>
    <class/>
     <created>2013-09-24 12:05:20+04</created>
  </budget>
  <budget id="3">
    <name>Из кассы</name>
    <parent/>
    <comment/>    
    <default_summa/>
    <permanent>0</permanent>
    <analysis>1</analysis>
    <expense>1</expense>
    <income>0</income>
    <class>retail</class>
     <created>2013-09-24 12:05:20+04</created>
  </budget>
</budgets>

Теги: - default_summa - сумма, которая будет подставляться по-умолчанию при вводе, если не указана другая - parent - родительская статья - permanent 0|1 - признак постоянной статьи - analysis 0|1 - признак участия в анализе работы предприятия - expense 0|1 - признак того, что статья является статьей расхода - income 0|1 - признак того, что статья является статьей дохода - class - произвольная классификация статьи для внутреннего использования

Получение параметров статьи

Запрос:

 GET /admin/budgets/2.xml

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
  <budget id="2">
    <name>Процент от продаж</name>
    <parent id="1">Зарплата</parent>
    <comment/>    
    <default_summa/>
    <permanent>0</permanent>
    <analysis>1</analysis>
    <expense>1</expense>
    <income>0</income>
    <class/>
    <created>2013-09-24 12:05:20+04</created>
  </budget>

Добавление статьи

Запрос:

 POST /admin/budgets.xml

Тело запроса:

<?xml version="1.0" encoding="UTF-8"?>
  <budget>
    <name>Процент от продаж</name>
    <parent>1</parent>
  </budget>

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
  <budget id="2">
    <name>Процент от продаж</name>
    <parent id="1">Зарплата</parent>
    <comment/>    
    <default_summa/>
    <permanent>0</permanent>
    <analysis>1</analysis>
    <expense>1</expense>
    <income>0</income>
    <class/>
    <created>2013-09-24 12:05:20+04</created>
  </budget>

Изменение статьи

Запрос:

 PUT /admin/budgets/2.xml

Тело запроса:

<?xml version="1.0" encoding="UTF-8"?>
  <budget>
    <name>% от продаж</name>
  </budget>

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
  <budget id="2">
    <name>% от продаж</name>
    <parent id="1">Зарплата</parent>
    <comment/>    
    <default_summa/>
    <permanent>0</permanent>
    <analysis>1</analysis>
    <expense>1</expense>
    <income>0</income>
    <class/>
    <created>2013-09-24 12:05:20+04</created>
  </budget>

Удаление статьи

Запроc:

 DELETE /admin/budgets/2.xml 

Ответ:

HTTP/1.1 200 OK

Подписки на события

Программа «АнтиСклад» генерирует события определенных типов, перечисленных ниже. У Вас имеется возможность подписаться на любое из них. Под подпиской понимается привязка любого Вашего URL к конкретному типу события, при наступлении которого, по соответствующему URL будет отправлен POST-запрос с XML-данными события, в том числе данные объекта события <info/> (товара, клиента, склада). На одно событие можно оформить любое количество подписок.

Типы событий в программе:

  • order.create - создание нового заказа
  • order.update - изменение статуса заказа
  • order.delete - удаление заказа
  • reserve.create - создание нового резерва
  • reserve.update - изменение статуса резерва
  • reserve.delete - удаление (расформирование) резерва
  • client.create - создание нового клиента
  • client.update - изменение свойств клиента
  • client.delete - удаление клиента
  • product.create - создание нового товара
  • product.update - изменение свойств товара
  • product.delete - удаление товара
  • purchase.create - оприходование нового поступления
  • restore.create - списание резерва со склада
  • migration.create - перемещение резерва со склада в свободный остаток другого склада
  • sale.create - продажа клиенту
  • refund.create - возврат от клиента

Фактически подписчик информируется о происшедшем событии не сразу после его наступления, а через небольшой промежуток времени (несколько секунд). В теге <time/> передается реальное время возникновения события - именно когда событие было инициировано программой, а не доставлено подписчику.

Пример данных передаваемых подписчику при генерации события:

<?xml version="1.0" encoding="UTF-8"?>
<event>
    <time>2015-10-20 16:43:33</time>
    <name>product.create</name>
    <objectId>5362</objectId>
    <info><product id="10323"> ... </product></info>
</event>
При создании новой подписки у которой URL подписчика и название событие совпали с уже ранее созданной подпиской, новая подписка создана не будет, а будет возвращен XML ранее созданной подписки с указанием соответствующего атрибута (already-exists=1).

Подписка на создание нового заказа

Запроc:

 POST /admin/subs.xml 

Тело запроса:

<?xml version="1.0" encoding="UTF-8"?>
<sub>
  <event>order.create</event>
  <url>https://my-inet-magaz.ru/from-antisklad/action.php</url>
</sub>

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<sub id="101">
  <event>order.create</event>
  <url>https://my-inet-magaz.ru/from-antisklad/action.php</url>
</sub>

POST-данные передаваемые подписчику:

<?xml version="1.0" encoding="UTF-8"?>
<event>
    <time>2020-10-22 19:45:43</time>
    <name>order.create</name>
    <objectId>1001</objectId>
</event>

Подписка на изменение заказа

Запроc:

 POST /admin/subs.xml 

Тело запроса:

<?xml version="1.0" encoding="UTF-8"?>
<sub>
  <event>order.update</event>
  <url>https://my-inet-magaz.ru/from-antisklad/action.php</url>
</sub>

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<sub id="102">
  <event>order.update</event>
  <url>https://my-inet-magaz.ru/from-antisklad/action.php</url>
</sub>

POST-данные передаваемые подписчику:

<?xml version="1.0" encoding="UTF-8"?>
<event>
    <time>2020-10-22 19:45:43</time>
    <name>order.update</name>
    <objectId>1001</objectId>
</event>

Подписка на добавление клиента

Запроc:

 POST /admin/subs.xml 

Тело запроса:

<?xml version="1.0" encoding="UTF-8"?>
<sub>
  <event>client.create</event>
  <url>https://my-inet-magaz.ru/from-antisklad/action.php</url>
</sub>

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<sub id="103">
  <event>client.create</event>
  <url>https://my-inet-magaz.ru/from-antisklad/action.php</url>
</sub>

POST-данные передаваемые подписчику:

<?xml version="1.0" encoding="UTF-8"?>
<event>
    <time>2015-10-22 19:45:43</time>
    <name>client.create</name>
    <info><client id="443"> ... </client></info>
</event>

Подписка на изменение клиента

Запроc:

 POST /admin/subs.xml 

Тело запроса:

<?xml version="1.0" encoding="UTF-8"?>
<sub>
  <event>client.update</event>
  <url>https://my-inet-magaz.ru/from-antisklad/action.php</url>
</sub>

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<sub id="104">
  <event>client.update</event>
  <url>https://my-inet-magaz.ru/from-antisklad/action.php</url>
</sub>

POST-данные передаваемые подписчику:

<?xml version="1.0" encoding="UTF-8"?>
<event>
    <time>2015-10-22 19:45:43</time>
    <name>client.update</name>
    <info><client id="443"> ... </client></info>
</event>

Подписка на удаление клиента

Запроc:

 POST /admin/subs.xml 

Тело запроса:

<?xml version="1.0" encoding="UTF-8"?>
<sub>
  <event>client.delete</event>
  <url>https://my-inet-magaz.ru/from-antisklad/action.php</url>
</sub>

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<sub id="105">
  <event>client.delete</event>
  <url>https://my-inet-magaz.ru/from-antisklad/action.php</url>
</sub>

POST-данные передаваемые подписчику:

<?xml version="1.0" encoding="UTF-8"?>
<event>
    <time>2015-10-22 19:45:43</time>
    <name>client.delete</name>
    <info><client id="443"> ... </client></info>
</event>

Подписка на добавление товара

Запроc:

 POST /admin/subs.xml 

Тело запроса:

<?xml version="1.0" encoding="UTF-8"?>
<sub>
  <event>product.create</event>
  <url>https://my-inet-magaz.ru/from-antisklad/action.php</url>
</sub>

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<sub id="106">
  <event>product.create</event>
  <url>https://my-inet-magaz.ru/from-antisklad/action.php</url>
</sub>

POST-данные передаваемые подписчику:

<?xml version="1.0" encoding="UTF-8"?>
<event>
    <time>2015-10-22 19:45:43</time>
    <name>product.create</name>
    <info><product id="5432"> ... </product></info>
</event>

Подписка на изменение свойств товара

Запроc:

 POST /admin/subs.xml 

Тело запроса:

<?xml version="1.0" encoding="UTF-8"?>
<sub>
  <event>product.update</event>
  <url>https://my-inet-magaz.ru/from-antisklad/action.php</url>
</sub>

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<sub id="107">
  <event>product.update</event>
  <url>https://my-inet-magaz.ru/from-antisklad/action.php</url>
</sub>

POST-данные передаваемые подписчику:

<?xml version="1.0" encoding="UTF-8"?>
<event>
    <time>2015-10-22 19:45:43</time>
    <name>product.update</name>
    <info><product id="5432"> ... </product></info>
</event>

Подписка на удаление товара

Запроc:

 POST /admin/subs.xml 

Тело запроса:

<?xml version="1.0" encoding="UTF-8"?>
<sub>
  <event>product.delete</event>
  <url>https://my-inet-magaz.ru/from-antisklad/action.php</url>
</sub>

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<sub id="108">
  <event>product.delete</event>
  <url>https://my-inet-magaz.ru/from-antisklad/action.php</url>
</sub>

POST-данные передаваемые подписчику:

<?xml version="1.0" encoding="UTF-8"?>
<event>
    <time>2015-10-22 19:45:43</time>
    <name>product.delete</name>
    <info><product id="5432"> ... </product></info>
</event>

</sub></code>

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<sub id="109">
  <event>store.update</event>
  <url>https://my-inet-magaz.ru/from-antisklad/action.php</url>
  <store>1</store>
</sub>

POST-данные передаваемые подписчику:

<?xml version="1.0" encoding="UTF-8"?>
<event>
    <time>2015-10-22 19:45:43</time>
    <name>store.update</name>
    <info><store id="1" modified-time="2015-10-22 19:44:01"></store></info>
</event>

Пример PHP-кода подписчика обработки события на изменения остатков на складе:

<code>
<?php
// Получить и разобрать XML объекта события
$data = file_get_contents('php://input');
$xevent = new SimpleXMLElement($data);
$eventName = (string)$xevent->name;
$storeID = (int)$xevent->info->store->attributes()[['id']];
$time = (string)$xevent->info->store->attributes()[['modified-time']];

// получить измененные позиции склада для store.update
$time = urlencode($time);
$request = new HTTP_Request2("https://mylogin:mypassword@mydomain.antisklad.ru/admin/stores/{$storeID}.xml?changed-from={$time}", HTTP_Request2::METHOD_GET);
$request->setConfig(array(
     'ssl_verify_peer'   => FALSE,
     'ssl_verify_host'   => FALSE
));
$response = $request->send();
$response_Body = $response->getBody();  
$xstoreItems = new SimpleXMLElement($response_Body);

// сохранить измененные позиции остатков товаров в файл
file_put_contents("/tmp/{$eventName}.{$storeID}.xml", $xstoreItems->asXML());
?>

*/

Получение списка подписок

Запроc:

 GET /admin/subs.xml 

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<subs type="array">
  <sub id="100">
    <event>order.create</event>
    <url>https://my-inet-magaz.ru/admin/create-order.php</url>
    <shop>1</shop>
  </sub>
  <sub id="102">
    <event>client.create</event>
    <url>https://my-inet-magaz.ru/admin/create-client.php</url>
  </sub>
</subs>

Получение данных по конкретной подписке

Запроc:

 GET /admin/subs/56.xml 

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
  <sub id="56">
    <event>order.create</event>
    <url>https://my-inet-magaz.ru/admin/create-order.php</url>
    <shop>1</shop>
  </sub>

Удаление подписки

Запроc:

 DELETE /admin/subs/77.xml 

Ответ:

HTTP/1.1 200 OK

Заголовки и логические ошибки ответа

В ответе сервера, в случае ошибки 500, может придти xml с логической ошибкой работы приложения.

Например, при попытке создать карточку товара с названием, аналогичным в списке, система вернет xml:

<?xml version="1.0" encoding="UTF-8"?>
<error type="logic" index="ALREADY EXISTS" class="product" id="3497" name="1000">Аналогичная карточка товара "1000" уже существует</error>

, где, в качестве атрибутов ошибки, выступает вся необходимая для анализа информация. В значении тега будет представлен «читаемый» текст ошибки.

Возможные заголовки

	        400 => 'Bad request',
	        401 => 'Unauthorized',
	        402 => 'Payment Required',
	        403 => 'Forbidden',
	        404 => 'Not found',
	        500 => 'Internal Server Error',
	        501 => 'Not Implemented',
	        503 => 'Service Temporarily Unavailable',

Получение списка возможных логических ошибок

Запроc:

 GET /admin/errors.xml 

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<errors>
  <error>IS NOT FOUND</error>
  <error>ALREADY EXISTS</error>
  <error>EMPTY VALUE</error>
  <error>INVALID VALUE</error>
  <error>IMPOSSIBLE TO DO</error>
</errors>
api.txt · Последнее изменение: 2023/08/14 17:10 — admin

Инструменты страницы