API предназначено для экспорта заказов и ТТН(товарно-транспортных накдажных) в складскую систему и отслеживания их статусов.
В качестве протокола в API используется JSON
RPC.
Сообщение отправляется методом POST и в общем случае имеет вид:
{"jsonrpc": "2.0", "method": "echo", "params": {"say": "Привет"}, "id": 1}
[{"jsonrpc": "2.0", "method": "echo", "params": {"say": "Привет"}, "id": 1}, {"jsonrpc": "2.0",
"method": "echo", "params": {"say": "Пока"}, "id": 1} ]
{"jsonrpc": "2.0", "result": {"answer": "Привет"}, "id": 1}
Тип авторизации задается в настройках системы и может быть на основе JWT токена, Basic аутентификации или авторизация может не использоватся (внутри корпоративной сети например). Bearer и Basic аутентификация отправяется стандартным образом в заголовке Authorization. Для Bearer предварительно необходимо получить JWT токен.
Название | URL (endpoint) | Команда | Параметры | Пример | Примечание |
---|---|---|---|---|---|
Получить токен | /api/common | token | login - логин
password - пароль |
{"login":"admin","password":"admin"} | |
Список складов | /api/items | storelist | |||
Список категорий | /api/items | catlist | |||
Список артикулов | /api/items | articlelist | |||
Список ТМЦ | /api/items | itemlist | cat_id - id категории | {"cat_id":"10"} | Если категория не задана возвращается весь список. Поле descriptiion возвращается в кодировке base64 |
Текущие количества на складах | /api/items | getqty | store_id - id склада | {"store_id":"1"} | Если склад не задан возвращается весь список. |
Записать ТМЦ | /api/items | save | itemname - наименование, обязательное поле
item_code - артикул, обязательное поле bar_code - штрих-код measure - ед. измерения manufacturer - производитель, бренд cat_id - id категории price1,... - отпускные цены desсription - описание, кодированное в base64 |
{ "item_code":"К001","bar_code":"К001","itemname":"testapi","description":"","measure":"шт","manufacturer":"", "cat_id":"0","price1":50} | Если артикул (item_code) существует то ТМЦ перезаписывается, если отсутствует то создается новая запись. |
Список контрагентов | /api/customers | list | |||
Записать контрагента | /api/customers | save | customer_id - id контрагента
customer_name - наименование, обязательное поле phone - телефон, рекомендуется вводить в виде 10 цифр email - email city - город address - адрес desсription - описание, кодированное в base64 |
{"customer_id":"8","customer_name":"\"ООО Вектор2\"","phone":"0991111111","email":"test@ukr.net","city":"","address":""} | Если customer_id больше нуля то контрагент перезаписывается, если равно нулю или отсутствует то создается новый. |
Список статусов документов | /api/docs | statuslist | Не все статусы подходят ко всем типам документов | ||
Список филиалов | /api/docs | branchlist | Если в складской системе включена поддержка филиалов необходимо указывать филиал в создаваемом документе | ||
Создание заказа если обработка и оплата выполняется в складской системе | /api/docs | createorder | number - номер документа. Уникальное значение, связаное с заказом
экспортирующей системы. Обязательное поле
phone - телефон, на случай если контакт отличается от телефона контрагента email - email, на случай если контакт отличается от email контрагента ship_address - адрес доставки, и прочие данные доставки decription - коментарий в base64 branch_id - филиал, если включено amount - итого по документу которое к оплате. На слчучай если отличается от итогов по позициям (например изза скидки) items - список позиций item_code - артикул quantity - количество price - цена |
{"number":"ID0001","phone":"0971111111","ship_address":"Харьков","items":[{"item_code":"cbs500-1","quantity":2,"price":234},{"item_code":"ID0018","quantity":2,"price":234}] } | |
Создание ТТН если нужно только списание со склада | /api/docs | createttn | number - номер документа. Уникальное значение, связаное с заказом
экспортирующей системы. Обязательное поле
phone - телефон, на случай если контакт отличается от телефона контрагента email - email, на случай если контакт отличается от email контрагента ship_address - адрес доставки, и прочие данные доставки decription - коментарий в base64 branch_id - филиал, если включено amount - итого по документу которое к оплате. На случай если отличается от итогов по позициям (например изза скидки) items - список позиций item_code - артикул quantity - количество price - цена |
{"number":"ID0001","phone":"0971111111","ship_address":"Харьков","items":[{"item_code":"cbs500-1","quantity":2,"price":234},{"item_code":"ID0018","quantity":2,"price":234}] } | |
Статусы документов по списку номеров | /api/docs | checkstatus | numbers - список номеров документов | {"numbers":["З-00002","ТТН00034"] } | Возвращаются только те документы которые созданы через API. По возвращенным статусам обновляется состояние заказов в экспортируюшей системе |
Запрос на удаление. | /api/docs | cancel | number - номер документа reason - причина |
{"number": "ТТН00034","reason":"Тест" } | Запрос администратору склада на удаление документа. Например если заказ отменен но уже экспортирован. |
-1000 | Неверный логин |
-1001 | Пользователь не найден |
-1002 | Просроченый токен |
-1003 | Неверный синтаксис |
-1004 | Неверный запрос |
-1005 | Неверная команда |