API Документация

Адрес тестового шлюза: https://test.help-im.ru/api/v1/<метод>
Адрес рабочего шлюза: https://client.help-im.ru/api/v1/<метод>
Для авторизации каждый запрос должен содержать GET-параметр shopKey - это API-ключ, который необходимо получить у менеджера.
Данные POST-запроса следует передавать в формате JSON.
Ответы имеют формат JSON.
Любой ответ содержит:
success - успешно ли выполнение операции: true или false;
statusCode - код состояния (применяются HTTP-коды).
Ответ может содержать:
errorMsg - сообщение об ошибке;
errorList - массив детальных сообщений об ошибках;
warningList - массив предупреждений;
paging - информация постраничного вывода (см. ниже «Постраничный вывод»);
response - набор данных.
Пример с ошибкой:

{
    "success":false,
    "statusCode":404,
    "errorMsg":"Не найдено" 
} 


Пример без ошибки:

{
    "success":true,
    "statusCode":201,
    "response":
    {
        "id":123
    }
} 


Для всех методов, начинающихся с order/{id}, можно передать GET-параметр by со значением orderId, number или externalId, и тогда заказ будет искаться по соответствующему полю, а не по id.
Для всех методов, изменяющих данные, работает правило: если поле не передано, оно не изменяется, если поле имеет какое-либо значение, в т.ч. NULL, оно будет обновлено.

Постраничный вывод
Для методов, потенциально способных выдать большое количество информации (обычно заканчиваются на «/list»), предусмотрен постраничный вывод. Для управления постраничным выводом служат параметры запроса:
limit - количество записей на страницу (от 1 до 250, по умолчанию 25);
page - номер страницы (по умолчанию 1).
Методы с постраничным выводом в ответе содержат элемент paging со следующими значениями:
total - общее количество найденных записей;
pages - общее количество страниц;
limit - текущее значение limit;
page - текущая страница;
count - количество записей на текущей странице;

Фильтрация
Если метод поддерживает параметр запроса filter, то его вывод можно отфильтровать по некоторым параметрам записей, которые он выдаёт. В качестве ключей массива filter выступают имена параметров записей, в качестве значений - строки или массивы строк. Если значение - строка, то к ключу можно добавить один из суффиксов <, >, , >= - тогда будет выполнен сравнительный поиск. Если значение - массив, то будут возвращены записи, попадающие под любое из значений в массиве.
Примеры фильтров для метода order/list:
с именем «Вася»: filter[name]=Вася
с номерами AB1000, 2000 или 5000C: filter[number][]=AB1000&filter[number][]=2000&filter[number][]=5000C
добавленные в августе 2016: filter[addDate>=]=2016-08-01&filter[addDate<]=2016-09-01

Описание методов


Заказы


POSTorder/add Добавление нового заказа
Запрос
Ответ
GETorder/{id} Получение информации о заказе
Запрос
Ответ
GETorder/listПолучение информации о нескольких заказах
Запрос
Ответ
POSTorder/{id}/edit Изменение заказа
Запрос
GETbystring параметр заказа для поиска; если не указан, используется id; возможные значения: number, orderId, externalId
Ответ
GETorder/{id}/status Статус заказа
Запрос
Ответ
POSTorder/status/list Статусы заказов
Запрос
GETbystring параметр заказа для поиска; если не указан, используется id; возможные значения: number, orderId
GETpageint>0номер страницы
GETlimitint1 .. 250количество записей на страницу, по умолчанию 25
Запрос
Ответ
GETstatus/list Список возможных статусов заказов
Ответ
Ответ

Номенклатура (товары/товарные предложения)


ПараметрТипФорматОписание
POSToffer/category/save Сохранение товарной категории
Запрос
POSToffer/category/upload Сохранение нескольких товарных категорий (не более 250 за Запрос)
Запрос
GEToffer/category/{id} Получение товарной категории
Запрос
Ответ
GEToffer/category/list Получение нескольких товарных категорий
Запрос
Ответ
GEToffer/category/{id}/delete Удаление товарной категории
Запрос
POSToffer/category/delete Удаление нескольких товарных категорий
Запрос
GEToffer/category/purge Удаление всех товарных категорий
POSToffer/save Сохранение товарного предложения
Запрос
POSToffer/upload Сохранение нескольких товарных предложений (не более 250 за Запрос)
Запрос
GEToffer/{id} Получение товарного предложения
Запрос
Ответ
GEToffer/list Получение нескольких товарных предложений
Запрос
Ответ
GEToffer/{id}/delete Удаление товарной категории
Запрос
POSToffer/delete Удаление нескольких товарных предложений
Запрос
GEToffer/purge Удаление всех товарных предложений
GEToffer/stock Остатки по всем товарным предложениям
Запрос
Ответ
GEToffer/stock/{id} Остатки по товарному предложению
Ответ
POSToffer/stock/upload Обновление остатков по товарным предложениям
Запрос