Файл: Процесс работы с api 4v Изменения Добавлен реквизит Статус в выгрузку Интеграцияэдо.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.10.2023
Просмотров: 64
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Процесс работы с API 1.4v
Изменения:
Добавлен реквизит Статус в выгрузку «ИнтеграцияЭДО» в блоки Продажи, Инвентаризация, ПриемкиНашегоТовараНаСклад.
При формировании http заголовка рекомендуется добавлять следующие ключ-значения:
Accept: application/json
Content-Type: application/json
Данные с сервера передаются в сжатом виде, на данный момент используется метод deflate.
Рекомендуется добавить следующий заголовок:
Accept-Encoding: gzip, deflate
Формат запроса: http://asumt.prs-trade.ru:555/MobileTrading_Ext/hs/Exchange/Команда
Команды:
1) Авторизация в системе
Команда login
Метод POST
Пример запроса:
curl -X POST http://asumt.prs-trade.ru:555/MobileTrading_Ext/hs/Exchange/login \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-H "Accept-Encoding: gzip, deflate" \
-d "{\"login\": \"login\", \"password\": \"password\"}"
Успешный ответ:
Код HTTP ответа 200.
{
"status":true,
"result":
{
"api_token": {токен для работы с системой}
}
}
Ответ с ошибкой:
Код HTTP ответа 4xx
{
"status":false,
"result":{},
"error":"Описание ошибки"
}
2) Снятие регистрации
Команда logout
Метод POST
Пример запроса:
curl -X POST http://asumt.prs-trade.ru:555/MobileTrading_Ext/hs/Exchange/logout \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-H "Accept-Encoding: gzip, deflate" \
-H "Authorization:Bearer api_token" \
Успешный ответ:
Код HTTP ответа 200.
{
"status":true,
"result":{}
}
Ответ с ошибкой:
Код HTTP ответа 4xx
{
"status":false,
"result":{},
"error":"Описание ошибки"
}
Интеграция «Заказы ЭТК».
1) Супервайзеры.
Структура полей.
Поля в запросе/ответе | Описание | Тип поля | Пример\комментарий |
id | Код супервайзера в вашей базе | string (1..100) | Обязательный для заполнения. |
name | Наименование супервайзера в вашей базе | string (1..1000) | Обязательный для заполнения. |
1.1) Получение списка загруженных супервайзеров.
Команда supervisors
Метод GET
Пример запроса:
curl -X GET http://asumt.prs-trade.ru:555/MobileTrading_Ext/hs/Exchange/supervisors \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-H "Accept-Encoding: gzip, deflate" \
-H "Authorization:Bearer api_token" \
Успешный ответ:
Код HTTP ответа 200 в случае, если список супервайзеров на сервере пустой.
{
"status":true,
"result":{
"supervisors": {}
}
}
Код HTTP ответа 200.
{
"status":true,
"result":{
"supervisors": [массив данных]
}
}
Ответ с ошибкой:
Код HTTP ответа 4xx
{
"status":false,
"result":{},
"error":"Описание ошибки"
}
1.2) Передача списка супервайзеров на сервер.
Команда supervisors
Метод POST
Пример запроса:
curl -X POST http://asumt.prs-trade.ru:555/MobileTrading_Ext/hs/Exchange/supervisors \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-H "Accept-Encoding: gzip, deflate" \
-H "Authorization:Bearer api_token" \
-d "{список полей supervisors}"
Успешный ответ:
Код HTTP ответа 200 в случае, если отправлен пустой список супервайзеров.
{
"status":true,
"result":{},
"comment": "Пустой JSON массив 'supervisors'"
}
Код HTTP ответа 200.
{
"status":true,
"result":{}
}
Ответ с ошибкой:
Код HTTP ответа 4xx
{
"status":false,
"result":{},
"error":"Описание ошибки"
}
2) Торговые представители.
Структура полей.
Поля в запросе/ответе | Описание | Тип поля | Пример\комментарий |
id | Код торгового представителя в вашей базе | string (1..100) | Обязательный для заполнения. |
name | Наименование торгового представителя в вашей базе | string (1..1000) | Обязательный для заполнения. |
id_supervisor | Код супервайзера в вашей базе | string (1..100) | Реквизит необязателен, Заполняется только если в вашей базе есть привязка торгового представителя к супервайзеру. |
2.1) Получение списка загруженных торговых представителей.
Команда sales_reps
Метод GET
Пример запроса:
curl -X GET http://asumt.prs-trade.ru:555/MobileTrading_Ext/hs/Exchange/sales_reps \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-H "Accept-Encoding: gzip, deflate" \
-H "Authorization:Bearer api_token" \
Успешный ответ:
Код HTTP ответа 200 в случае, если список торговых представителей на сервере пустой.
{
"status":true,
"result":{
"sales_reps": {}
}
}
Код HTTP ответа 200.
{
"status":true,
"result":{
"sales_reps": [массив данных]
}
}
Ответ с ошибкой:
Код HTTP ответа 4xx
{
"status":false,
"result":{},
"error":"Описание ошибки"
}
2.2) Передача списка торговых представителей на сервер.
Команда sales_reps
Метод POST
Пример запроса:
curl -X POST http://asumt.prs-trade.ru:555/MobileTrading_Ext/hs/Exchange/sales_reps \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-H "Accept-Encoding: gzip, deflate" \
-H "Authorization:Bearer api_token" \
-d "{список полей sales_reps}"
Успешный ответ:
Код HTTP ответа 200 в случае, если отправлен пустой список торговых представителей.
{
"status":true,
"result":{},
"comment": "Пустой JSON массив 'sales_reps'"
}
Код HTTP ответа 200.
{
"status":true,
"result":{}
}
Ответ с ошибкой:
Код HTTP ответа 4xx
{
"status":false,
"result":{},
"error":"Описание ошибки"
}
3) Контрагенты.
Структура полей.
Поля в запросе/ответе | Описание | Тип поля | Пример\комментарий |
id | Код контрагента в вашей базе | string (1..100) | Обязательный для заполнения. |
name | Наименование контрагента в вашей базе | string (1..1000) | Обязательный для заполнения. |
description | Полное наименование контрагента в вашей базе | string (1..1000) | Обязательный для заполнения. |
inn | ИНН контрагента | string (10..12) | Обязательный для заполнения. Длина строки ИНН либо 10, либо 12 символов. В качестве данных только цифры. |
kpp | КПП контрагента | string (0..9) | Длина строки КПП 9 символов при ИНН длиной 10 символов. В качестве данных только цифры. Иначе пустая строка. |
contract | Наименование договора с контрагентом | string (0..100) | Реквизит необязателен. |
contract_end_date | Дата окончания действия договора | string (0..20) | Реквизит необязателен. Формат даты JSON ISO. Может быть с пустым значением. Примеры: "2021-08-25T00:00:00", "0001-01-01T00:00:00", "". Заполнение этого реквизита поможет предупредить сотрудника контрагента об истечении срока договора при посещении Торговым представителем. |
address | Фактический адрес контрагента в вашей базе | string (1..1000) | Обязательный для заполнения. |
id_address | Код фактического адреса контрагента в вашей базе | string (0..100) | Реквизит необязателен, заполняется только если в вашей базе адрес – это отдельная запись в справочнике. |
form_payment | Форма оплаты контрагента. | string | Обязательный для заполнения. Возможные варианты: Факт, Предоплата, Отсрочка |
id_head | Код головного контрагента в вашей базе | string (1..100) | Реквизит обязателен. Пример: в вашей базе есть контрагенты Тестовый контрагент1, Тестовый контрагент2. Эти контрагенты привязаны к головному контрагенту Тестовый контрагент РЦ. Договор, скидки и пр. устанавливаются на РЦ, а подчиненные контрагенты наследуют от головного контрагента. В противном случае, пустое значение. |
name_head | Наименование головного контрагента в вашей базе | string (1..1000) | Реквизит обязателен, заполнять обязательно в случае, если указан реквизит id_head |
address_head | Адрес головного контрагента | string (1..1000) | Реквизит обязателен. |
is_alko | Наличие алко лицензии у контрагента | Boolean (true, false) | Реквизит необязателен. По умолчанию флаг false. Если флаг false, то в заказе не будут отображаться номенклатуры Крепкий Алкоголь, Вино, Слабоалкогольные напитки. Слабоалкогольные напитки, для которых лицензия не требуется (пиво, сидр, медовуха) отображаться будут. |
alko_end_date | Дата окончания лицензии | string (0..20) | Реквизит обязателен, если is_alko = true. Формат даты JSON ISO. Может быть с пустым значением. Примеры: "2021-08-25T00:00:00", "0001-01-01T00:00:00", "" Заполнение этого реквизита поможет предупредить сотрудника контрагента об истечении срока лицензии при посещении Торговым представителем. В случае, если дата не указана, считается, что алко лицензии нет. |
debt_rub | Задолженность в рублях | Numeric (10,2) | Обязательный для заполнения. Заполнение этого реквизита поможет предупредить сотрудника контрагента о задолженности при посещении Торговым представителем |
debt_days | Задолженность в днях | Numeric (10,0) | Обязательный для заполнения. Заполнение этого реквизита поможет предупредить сотрудника контрагента о задолженности при посещении Торговым представителем |
self_pickup | Для контрагента возможен самовывоз заказа | Boolean (true, false) | Реквизит необязателен. По умолчанию флаг false. Если флаг true, то в заказе появится опция «Самовывоз». |
status | Можно делать заказ | Boolean (true, false) | Реквизит необязателен. По умолчанию флаг false. Если флаг false, то Торговый представитель не сможет сделать заказ контрагенту. |
id_sales_rep | Код торгового представителя в вашей базе | string (1..100) | Реквизит обязателен. |
owner | Список организаций, к которым относится контрагент. | string (0..1000) | Реквизит необязателен. Если у вас больше одной организации, и контрагент получает товар от 2 или более ваших организаций, то в значении реквизита укажите наименования организаций. В качестве разделителя символ # Пример: "Организация1#Организация2" |
comment | Комментарий к контрагенту | string (0..1000) | Реквизит необязателен. Торговый представитель может использовать информацию из комментария для более продуктивного общения с представителем контрагента. |
3.1) Получение списка загруженных контрагентов.
Команда contragents
Метод GET
Пример запроса:
curl -X GET http://asumt.prs-trade.ru:555/MobileTrading_Ext/hs/Exchange/contragents \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-H "Accept-Encoding: gzip, deflate" \
-H "Authorization:Bearer api_token" \
Успешный ответ:
Код HTTP ответа 200 в случае, если список контрагентов на сервере пустой.
{
"status":true,
"result":{
"contragents": {}
}
}
Код HTTP ответа 200.
{
"status":true,
"result":{
"contragents": [массив данных]
}
}
Ответ с ошибкой:
Код HTTP ответа 4xx
{
"status":false,
"result":{},
"error":"Описание ошибки"
}
3.2) Передача списка контрагентов на сервер.
Команда contragents
Метод POST
Пример запроса:
curl -X POST http://asumt.prs-trade.ru:555/MobileTrading_Ext/hs/Exchange/contragents \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-H "Accept-Encoding: gzip, deflate" \
-H "Authorization:Bearer api_token" \
-d "{список полей contragents}"
Успешный ответ:
Код HTTP ответа 200.
{
"status":true,
"result":{}
}
Ответ с ошибкой:
Код HTTP ответа 400 в случае, если отправлен пустой список контрагентов.
{
"status":true,
"result":{},
"comment": "Пустой JSON массив 'contragents'"
}
Код HTTP ответа 4xx
{
"status":false,
"result":{},
"error":"Описание ошибки"
}
На планшетах контрагенты выводятся в алфавитном порядке.
Заказ возможен только в те точки, у которых значение реквизита status равно true.
Если форма оплаты "Факт", то в заказе из возможных вариантов будет только "Факт".
В противном случае, будет возможность выбрать из указанной формы оплаты плюс "Факт": "Предоплата" и "Факт", или "Отсрочка" и "Факт".
Пользователь планшета инициализирует загрузку данных с сервера, поэтому есть вероятность временного лага, когда вы измените данные по контрагенту, а планшет об этих изменениях узнает только после синхронизации.
4) Номенклатура.
Структура полей.
Поля в запросе/ответе | Описание | Тип поля | Пример\комментарий |
id | Код номенклатуры в вашей базе | string (1..100) | Обязательный для заполнения. |
name | Сокращенное наименование номенклатуры в вашей базе | string (1..1000) | Обязательный для заполнения. Выводится на планшете на экране Заказ. |
description | Полное наименование номенклатуры в вашей базе | string (1..1000) | Обязательный для заполнения. |
measure | Единица измерения для заказа | string | Обязательный для заполнения. Возможные варианты: шт, уп |
package_count | Количество номенклатуры в единице измерения | Numeric (10,0) | Обязательный для заполнения. Минимальное значение 1. |
min_order | Минимальное количество товара для заказа | Numeric (10,0) | Обязательный для заполнения. Минимальное значение 1. |
Promo | Наличие промо акции по номенклатуре | Boolean (true, false) | Реквизит необязателен. По умолчанию флаг false. Если флаг true, то номенклатура в заказе будет выделена цветом\специальным символом. |
promo_name | Название промоакции | string (0..100) | Реквизит необязателен. Если promo = true, то при выборе номенклатуры будет выводить название акции. Например: Лучший продукт, Ваш выбор и т.д. |
base_price | Базовая цена номенклатуры в рублях | Numeric (10,2) | Обязательный для заполнения. Эта цена будет выводиться при заказе. Если значение равно 0, то номенклатура не будет выводиться на экране Заказ. |
Category | Категория номенклатуры | string | Обязательный для заполнения. Возможные варианты: КА – крепкий алкоголь; Вино – вино, ликеры; САН – слабоалкогольные напитки, для которых требуется лицензия; САН_БезЛицензии – слабоалкогольные напитки без лицензии (пиво, сидр, медовуха); БА – безалкогольные напитки (вода, газировка, минералка, соки...); БАЭН – безалкогольные напитки энергетики; пустое значение – вся остальная продукция (чипсы, конфеты, кофе…) |
Status | Выводить номенклатуру в заказе | Boolean (true, false) | Реквизит необязателен. По умолчанию флаг false. Если флаг false, то номенклатура не будет выводиться на экране Заказ. |
4.1) Получение списка загруженных номенклатур.
Команда products
Метод GET
Пример запроса:
curl -X GET http://asumt.prs-trade.ru:555/MobileTrading_Ext/hs/Exchange/products \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-H "Accept-Encoding: gzip, deflate" \
-H "Authorization:Bearer api_token" \
Успешный ответ:
Код HTTP ответа 200 в случае, если список контрагентов на сервере пустой.
{
"status":true,
"result":{
"products": {}
}
}
Код HTTP ответа 200.
{
"status":true,
"result":{
"products": [массив данных]
}
}
Ответ с ошибкой:
Код HTTP ответа 4xx
{
"status":false,
"result":{},
"error":"Описание ошибки"
}
4.2) Передача списка номенклатур на сервер.
Команда products
Метод POST
Пример запроса:
curl -X POST http://asumt.prs-trade.ru:555/MobileTrading_Ext/hs/Exchange/products \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-H "Accept-Encoding: gzip, deflate" \
-H "Authorization:Bearer api_token" \
-d "{список полей products}"
Успешный ответ:
Код HTTP ответа 200.
{
"status":true,
"result":{}
}
Ответ с ошибкой:
Код HTTP ответа 400 в случае, если отправлен пустой список номенклатуры.
{
"status":true,
"result":{},
"comment": "Пустой JSON массив 'products'"
}
Код HTTP ответа 4xx
{
"status":false,
"result":{},
"error":"Описание ошибки"
}
На планшетах номенклатура выводится в следующем порядке: приоритет по категории, внутри категории в алфавитном порядке. Приоритет категорий в порядке убывания: КА, ВИНО, САН, САН_БезЛицензии, БАЭН, БА, пустые категории.
Номенклатура будет отображаться в заказе, только если значение реквизита status равно true.
Номенклатуры с промоакцией будет выделены особым образом.
Например, так:
Обратите внимание, что на экран планшета выводится значение из реквизита name, поэтому, чтобы Торговому представителю было удобно работать со списком номенклатур, указывайте понятное сокращенное название.
Например,
полное название «HOOP Клубника-черная смородина 2 л ПЭТ»
сокращенное «Хуп кл.-ч.смор. пэт 2,0»
Если вы продаёте одну и ту же номенклатуру в разных упаковочных размерах (6 шт в уп, 12 шт в уп и т.д.), то сделайте следующее:
А) В выгрузке в значение реквизита id добавьте размерность через символ #.