Файл: Процесс работы с 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 добавьте размерность через символ #.