Файл: Процесс работы с 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"/>