Файл: Процесс работы с api 4v Изменения Добавлен реквизит Статус в выгрузку Интеграцияэдо.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.10.2023
Просмотров: 256
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Процесс работы с API 1.4vИзменения: Добавлен реквизит Статус в выгрузку «ИнтеграцияЭДО» в блоки Продажи, Инвентаризация, ПриемкиНашегоТовараНаСклад.При формировании http заголовка рекомендуется добавлять следующие ключ-значения:Accept: application/jsonContent-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) Супервайзеры.Структура полей.
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) Торговые представители.Структура полей.
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) Контрагенты.Структура полей.
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) Номенклатура.Структура полей.
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 добавьте размерность через символ #.
| Поля в запросе/ответе | Описание | Тип поля | Пример\комментарий |
| 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 добавьте размерность через символ #.