Файл: Процесс работы с api 4v Изменения Добавлен реквизит Статус в выгрузку Интеграцияэдо.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.10.2023
Просмотров: 65
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Б) В выгрузке в значение реквизита name добавьте размерность через символ #.
Пример. «HOOP Клубника-черная смородина 2 л ПЭТ» продается в упаковке с 12 и 24 шт.
{
"products":
[
{
"id":"00000001#12",
"name":"Хуп кл.-ч.смор. пэт 2,0#12",
"description":"HOOP Клубника-черная смородина 2 л ПЭТ",
"measure":"уп",
"package_count":12,
................
},
{
"id":"00000001#24",
"name":"Хуп кл.-ч.смор. пэт 2,0#24",
"description":"HOOP Клубника-черная смородина 2 л ПЭТ",
"measure":"уп",
"package_count":24,
................
}
]
}
В заказе вернется код номенклатуры, избавленный от #, и package_count.
Пример.
{
................
"products":
[
{
"id_nom":"00000001",
"name_nom":"Хуп кл.-ч.смор. пэт 2,0#12",
"measure":"уп",
"package_count":12,
"quantity":1,
"price":100
},
{
"id_nom":"00000001",
"name_nom":"Хуп кл.-ч.смор. пэт 2,0#24",
"measure":"уп",
"package_count":24,
"quantity":3,
"price":200
},
................
]
................
}
Пользователь планшета инициализирует загрузку данных с сервера, поэтому есть вероятность временного лага, когда вы измените данные по номенклатуре, а планшет об этих изменениях узнает только после синхронизации.
5) Получение списка заказов.
Структура полей.
Поля в запросе/ответе | Описание | Тип поля | Пример\комментарий |
id_tt | Код контрагента в вашей базе | string (1..100) | |
name_tt | Наименование контрагента в вашей базе | string (1..1000) | |
address | Фактический адрес контрагента в вашей базе | string (1..1000) | |
id_address | Код фактического адреса контрагента в вашей базе | string (0..100) | |
order_number | Номер заказа в нашей базе | string | |
order_date | Дата заказа в нашей базе | string | Формат даты JSON ISO. Пример: "2021-08-25T00:00:00" |
unique_id | Уникальный идентификатор заказа из вашей базы | string (0..100) | Если значение пустое, значит заказ не был загружен в вашу базу. Уникальным идентификатором может быть «номер заказа», «номер заказа_дата» и т.д. |
delivery_date | Дата доставки | string | Формат даты JSON ISO. Пример: "2021-08-25T00:00:00" |
self_pickup | Флаг самовывоз у заказа | Boolean (true, false) | |
form_payment | Форма оплаты контрагента. | string | |
option_order | Вид заказа | string | Возможные варианты: Обычная продажа, Бонус |
sum | Общая сумма заказа | Numeric (10,2) | Сумма(quantity * price) |
comment | Комментарий к заказу | string | |
id_nom | Код номенклатуры в вашей базе | string (1..100) | |
name_nom | Сокращенное наименование номенклатуры в вашей базе | string (1..1000) | |
measure | Единица измерения для заказа | string | |
package_count | Количество номенклатуры в единице измерения | Numeric (10,0) | |
quantity | Количество в заказе | Numeric (10,0) | |
price | Цена номенклатуры | Numeric (10,2) | Цена номенклатуры в заказе равняется базовой цене. |
Команда orders
Метод GET
Пример запроса:
curl -X GET http://asumt.prs-trade.ru:555/MobileTrading_Ext/hs/Exchange/orders \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-H "Accept-Encoding: gzip, deflate" \
-H "Authorization:Bearer api_token" \
Для отбора заказов по дате используйте параметры запроса date_begin и date_end. Формат "yyyyMMdd".
Если параметры не указаны, будет выгружен весь список заказов.
Для указания варианта выгрузки используйте параметр mode. Возможные варианты: Json, PDF, XLS.
По умолчанию вариант выгрузки Json.
Порядок указывания параметров не важен.
Примеры:
/MobileTrading_Ext/hs/Exchange/orders?mode=JSON&date_end=20210703&date_begin=20210701
/MobileTrading_Ext/hs/Exchange/orders?mode=JSON&date_end=20210703
Успешный ответ:
Код HTTP ответа 200 в случае, если список заказов на сервере пустой.
{
"status": true,
"result": {
"orders": {}
}
}
Код HTTP ответа 200.
{
"status":true,
"result":{
" orders ": [массив данных]
}
}
Ответ с ошибкой:
Код HTTP ответа 4xx
{
"status":false,
"result":{},
"error":"Описание ошибки"
}
6) Получение списка необработанных заказов.
Структура полей.
Поля в запросе/ответе | Описание | Тип поля | Пример\комментарий |
id_tt | Код контрагента в вашей базе | string (1..100) | |
name_tt | Наименование контрагента в вашей базе | string (1..1000) | |
address | Фактический адрес контрагента в вашей базе | string (1..1000) | |
id_address | Код фактического адреса контрагента в вашей базе | string (0..100) | |
order_number | Номер заказа в нашей базе | string | |
order_date | Дата заказа в нашей базе | string (0..20) | Формат даты JSON ISO. Пример: "2021-08-25T00:00:00" |
delivery_date | Дата доставки | string (0..20) | Формат даты JSON ISO. Пример: "2021-08-25T00:00:00" |
self_pickup | Флаг самовывоз у заказа | Boolean (true, false) | |
form_payment | Форма оплаты контрагента. | string | |
option_order | Вид заказа | string | Возможные варианты: Обычная продажа, Бонус |
sum | Общая сумма заказа | Numeric (10,2) | Сумма(quantity * price) |
comment | Комментарий к заказу | string | |
id_nom | Код номенклатуры в вашей базе | string (1..100) | |
name_nom | Сокращенное наименование номенклатуры в вашей базе | string (1..1000) | |
measure | Единица измерения для заказа | string | |
package_count | Количество номенклатуры в единице измерения | Numeric (10,0) | |
quantity | Количество в заказе | Numeric (10,0) | |
price | Цена номенклатуры | Numeric (10,2) | Цена номенклатуры в заказе равняется базовой цене. |
Команда orders
Метод POST
Пример запроса:
curl -X POST http://asumt.prs-trade.ru:555/MobileTrading_Ext/hs/Exchange/orders \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-H "Accept-Encoding: gzip, deflate" \
-H "Authorization:Bearer api_token" \
Будут выгружены все необработанные заказы, то есть те, у которых unique_id пустой.
Успешный ответ:
Код HTTP ответа 200 в случае, если список заказов на сервере пустой.
{
"status": true,
"result": {
"orders": {}
}
}
Код HTTP ответа 200.
{
"status":true,
"result":{
" orders ": [массив данных]
}
}
Ответ с ошибкой:
Код HTTP ответа 4xx
{
"status":false,
"result":{},
"error":"Описание ошибки"
}
В ответ на каждый заказ необходимо возвращать методом POST unique_id из вашей базы.
Команда order
Метод POST
Пример запроса:
curl -X POST http://asumt.prs-trade.ru:555/MobileTrading_Ext/hs/Exchange/order \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-H "Accept-Encoding: gzip, deflate" \
-H "Authorization:Bearer api_token" \
-d "{ответ на полученный заказ}"
Успешный ответ от вас на полученный заказ:
{
"status": true,
"result": {
"order_number":"номер заказа в нашей базе",
"order_date":"дата заказа в нашей базе",
"id_tt":"код контрагента в нашей базе",
"unique_id":"уникальный идентификатор заказа из вашей базы"
}
}
Ответ с ошибкой от вас на полученный заказ:
{
"status":false,
"result":{},
"error":"Описание ошибки"
}
Успешный ответ сервера:
Код HTTP ответа 200.
{
"status":true,
"result":{}
}
Ответ сервера с ошибкой:
Код HTTP ответа 4xx
{
"status":false,
"result":{},
"error":"Описание ошибки"
}
Если в найденном заказе ("order_number" + "order_date" + "id_tt") реквизит unique_id уже заполнен, то этот реквизит будет перезаписан на указанный в вашем ответе. Поэтому будьте внимательны, когда будете отправлять ответ на заказ.
Интеграция “ЭДО”.
Есть 2 формата входящих данных: json и xml (от предыдущего ЭДО).
При формировании http заголовка рекомендуется добавлять следующие ключ-значения:
Данные в формате xml
Accept: application/xml
Content-Type: application/xml
Данные в формате json:
Accept: application/json
Content-Type: application/json
Команды:
1) Отправка данных на тестирование.
Данные в формате xml
Команда movement_products_xml?only_test=true
Метод POST
Пример запроса:
curl -X POST http://asumt.prs-trade.ru:555/MobileTrading_Ext/hs/Exchange/ movement_products_xml?only_test=true \
-H "Accept: application/xml" \
-H "Content-type: application/xml" \
-H "Accept-Encoding: gzip, deflate" \
-d "{данные xml}"
Данные в формате json
Команда movement_products_json?only_test=true
Метод POST
Пример запроса:
curl -X POST http://asumt.prs-trade.ru:555/MobileTrading_Ext/hs/Exchange/ movement_products_json?only_test=true \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-H "Accept-Encoding: gzip, deflate" \
-d "{данные json}"
Если при отправке данных на тестирование использовали токен, то добавьте
-H "Authorization:Bearer api_token" \
Успешный ответ:
Код HTTP ответа 200.
{
"status":true,
"result":{},
"comment": "Выгрузка корректная. В ближайшее время наши сотрудники вышлют вам логин и пароль."
}
Если при отправке данных на тестирование использовали токен, то:
{
"status":true,
"result":{}
}
Ответ с ошибкой:
Код HTTP ответа 4xx
{
"status":false,
"result":{},
"error":"Описание ошибки"
}
2) Отправка данных.
Данные в формате xml
Команда movement_products_xml
Метод POST
Пример запроса:
curl -X POST http://asumt.prs-trade.ru:555/MobileTrading_Ext/hs/Exchange/movement_products_xml\
-H "Accept: application/xml" \
-H "Content-type: application/xml" \
-H "Authorization:Bearer api_token" \
-H "Accept-Encoding: gzip, deflate" \
-d "{данные xml}"
Данные в формате json
Команда movement_products_json
Метод POST
Пример запроса:
curl -X POST http://asumt.prs-trade.ru:555/MobileTrading_Ext/hs/Exchange/movement_products_json\
-H "Accept: application/json" \
-H "Content-type: application/json" \
-H "Authorization:Bearer api_token" \
-H "Accept-Encoding: gzip, deflate" \
-d "{данные json}"
Успешный ответ:
Код HTTP ответа 200.
{
"status":true,
"result":{}
}
Ответ с ошибкой:
Код HTTP ответа 4xx
{
"status":false,
"result":{},
"error":"Описание ошибки"
}
3) Описание структуры xml данных
Сформируйте xml отчет таким образом:
0. Объявление XML. Корень.
Наименование корня может быть любым, главное, чтобы было корректным.
Например, старый вариант был
<_1cv8dtud xmlns:v8exch="http://www.1c.ru/V8/1CV8DtUD/">
--тело--
Можно придумать свой, например, Root
--тело--
1. Блок ДанныеДокумента.
В этом блоке должны быть указаны 2 реквизита:
<ДатаНачалаФормированияФайла>, <ДатаКонецФормированияФайла> – даты формирования выгрузки. Дата должна быть в формате «yyyyMMdd», где yyyy – год, MM – месяц, dd – день.
Если вы посылаете выгрузку на тестирование, то добавьте еще 2 реквизита:
<НаименованиеОрганизации> - наименование вашей организации.
<АдресОрганизации> - юридический адрес вашей организации.
Выгрузка должна содержать в себе скользящие 20 календарных дней, включая день выгрузки.
Структура:
<ДанныеДокумента>
<СтрокаДанные НаименованиеОрганизации="" АдресОрганизации="" ДатаНачалаФормированияФайла="" ДатаКонецФормированияФайла=""/>
ДанныеДокумента>
Пример блока:
Формируем выгрузку на 04.09.2015. Должны быть данные за 20 дней, включая день выгрузки, то есть:
ДатаНачалаФормированияФайла = 16.08.2015
ДатаКонецФормированияФайла = 04.09.2015
<ДанныеДокумента>
<СтрокаДанные ДатаНачалаФормированияФайла="20150816" ДатаКонецФормированияФайла="20150904"/>
ДанныеДокумента>
В случае тестирования
<ДанныеДокумента>
<СтрокаДанные НаименованиеОрганизации="Перспектива" АдресОрганизации="Индекс, Город, улица, дом" ДатаНачалаФормированияФайла="20150816" ДатаКонецФормированияФайла="20150904"/>
ДанныеДокумента>
2. БлокНоменклатура
В этом блоке должна быть перечислена вся наша номенклатура. В качестве атрибутов необходимо заполнить <Код> (уникальный код номенклатуры из вашей базы), <Наименование> (наименование из вашей базы), <ПолноеНаименование> (полное наименование из вашей базы).
Строки <Код>, <Наименование>, <ПолноеНаименование> не должны содержать одинарные и двойные кавычки.
Структура:
<БлокНоменклатура>
<СтрокаНоменклатура Код="" Наименование="" ПолноеНаименование=""/>
БлокНоменклатура>
Пример блока:
<БлокНоменклатура>
<СтрокаНоменклатура Код="00004317" Наименование="ВИНО Домашен Лекаръ Красное полусладкое (12 шт.) 0.7 л бут. 10-12 %" ПолноеНаименование="Вино столовое "Домашен Лекаръ" полусладкое красное 10-12 %"/>
<СтрокаНоменклатура Код="00004973" Наименование="ВИНО ЗЕМЕН РАЙ Совиньон Белое полусладкое (6 шт.) 0.7 л бут. 12 % (Северский)" ПолноеНаименование="Совиньон. Вино столовое полусладкое белое 10-12 % "ЗЕМЕН РАЙ""/>
<СтрокаНоменклатура Код="00004974" Наименование="ВИНО ЗЕМЕН РАЙ Шардонне Белое полусладкое (6 шт.) 0.7 л бут. 12 % (Северский)" ПолноеНаименование="Шардонне. Вино столовое полусладкое белое 10-12 % "ЗЕМЕН РАЙ""/>
<СтрокаНоменклатура Код="00005570" Наименование="ВИНО Кондор Андино Белое полусладкое (12 шт.) 0.75 л бут. 12 % (Малета) ДОГМА" ПолноеНаименование="Вино столовое полусладкое белое "Кондор Андино" ("CONDOR ANDINO") объемная доля этилового спирта, %, 10,0-12,0; сахар 30-40г/дм3"/>