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