1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-08-10 22:41:43 +02:00

Ozon: таймслоты FBO

This commit is contained in:
Anton Titovets
2024-12-23 13:26:48 +03:00
parent e2627ba131
commit 9fd9f64cce
9 changed files with 6140 additions and 5957 deletions

View File

@@ -33,6 +33,7 @@ Fast navigation:
<a href="/docs/Instructions/Airtable/"><img src={require('../../static/img/APIs/Airtable.png').default} width="32" class="wp_logo"/></a>
<a href="/docs/Instructions/Dropbox/"><img src={require('../../static/img/APIs/Dropbox.png').default} width="32" class="wp_logo"/></a>
<a href="/docs/Instructions/Neocities/"><img src={require('../../static/img/APIs/Neocities.png').default} width="32" class="wp_logo"/></a>
<a href="/docs/Instructions/TCP/"><img src={require('../../static/img/APIs/TCP.png').default} width="32" class="wp_logo"/></a>
</div>

View File

@@ -33,6 +33,7 @@ sidebar_class_name: NachaloRaboty
<a href="/docs/Instructions/Airtable/"><img src={require('../../static/img/APIs/Airtable.png').default} width="32" class="wp_logo"/></a>
<a href="/docs/Instructions/Dropbox/"><img src={require('../../static/img/APIs/Dropbox.png').default} width="32" class="wp_logo"/></a>
<a href="/docs/Instructions/Neocities/"><img src={require('../../static/img/APIs/Neocities.png').default} width="32" class="wp_logo"/></a>
<a href="/docs/Instructions/TCP/"><img src={require('../../static/img/APIs/TCP.png').default} width="32" class="wp_logo"/></a>
</div>
<br/>

File diff suppressed because it is too large Load Diff

View File

@@ -1734,6 +1734,54 @@
КонецФункции
// Получить таймслоты FBO
// Получить доступные таймслоты на конечных складах отгрузки
//
// Примечание:
// Метод в документации API: [post /v1/draft/timeslot/info](@docs.ozon.ru/api/seller/#operation/SupplyDraftAPI_DraftTimeslotInfo)
//
// Параметры:
// IDКлиента - Строка - Идентификатор клиента - clientid
// КлючAPI - Строка - API ключ - apikey
// ДатаОт - Дата - Дата начала нужного периода доступных таймслотов - from
// ДатаПо - Дата - Дата окончания нужного периода доступных таймслотов (28 дней от тек. максимум) - to
// Черновик - Число, Строка - Идентификатор черновика заявки на поставку - draft
// Склады - Массив Из Число - Склад или несколько складов для получения таймслотов - whs
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Ozon Seller API
Функция ПолучитьТаймслотыFBO(Знач IDКлиента, Знач КлючAPI, Знач ДатаОт, Знач ДатаПо, Знач Черновик, Знач Склады) Экспорт
OPI_ПреобразованиеТипов.ПолучитьДату(ДатаОт);
OPI_ПреобразованиеТипов.ПолучитьДату(ДатаПо);
OPI_ПреобразованиеТипов.ПолучитьМассив(Склады);
Для Н = 0 По Склады.ВГраница() Цикл
ТекущееЗначение = Склады[Н];
OPI_ПреобразованиеТипов.ПолучитьЧисло(ТекущееЗначение);
Склады[Н] = ТекущееЗначение;
КонецЦикла;
URL = "https://api-seller.ozon.ru/v1/draft/timeslot/info";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("date_from" , XMLСтрока(ДатаОт) + "Z", "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("date_to" , XMLСтрока(ДатаПо) + "Z", "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("draft_id" , Черновик , "Число" , Параметры);
OPI_Инструменты.ДобавитьПоле("warehouse_ids", Склады , "Коллекция", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Получить структуру доп. полей отправления
// Возвращает структуру включения доп. полей ответа для метода ПолучитьСписокОтправленийFBO
//

View File

@@ -1966,6 +1966,7 @@
Ozon_ПолучитьСтруктуруДопПолейОтправления(ПараметрыТеста);
Ozon_ПолучитьСтруктуруФильтраОтправлений(ПараметрыТеста);
Ozon_ПолучитьСписокОтправленийFBO(ПараметрыТеста);
Ozon_ПолучитьТаймслотыFBO(ПараметрыТеста);
КонецПроцедуры
@@ -13749,6 +13750,14 @@
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьЧерновикЗаявкиFBO", "Ozon");
OPI_ПолучениеДанныхТестов.Проверка_ОзонГотовыйЧерновик(Результат);
IDЧерновика = Результат["draft_id"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Ozon_Draft", IDЧерновика);
ПараметрыФункции.Вставить("Ozon_Draft", IDЧерновика);
IDСклада = Результат["clusters"][0]["warehouses"][0]["supply_warehouse"]["warehouse_id"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Ozon_FBOWarehouse", IDСклада);
ПараметрыФункции.Вставить("Ozon_FBOWarehouse", IDСклада);
КонецПроцедуры
@@ -13798,6 +13807,26 @@
КонецПроцедуры
Процедура Ozon_ПолучитьТаймслотыFBO(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
Сутки = 86400;
ДатаОт = OPI_Инструменты.ПолучитьТекущуюДату();
ДатаПо = ДатаОт + Сутки;
Черновик = ПараметрыФункции["Ozon_Draft"];
Склад = ПараметрыФункции["Ozon_FBOWarehouse"];
Результат = OPI_Ozon.ПолучитьТаймслотыFBO(IDКлиента, КлючAPI, ДатаОт, ДатаПо, Черновик, Склад);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьТаймслотыFBO", "Ozon");
OPI_ПолучениеДанныхТестов.Проверка_ОзонТаймслоты(Результат);
КонецПроцедуры
#КонецОбласти
#Область Neocities

View File

@@ -1900,6 +1900,12 @@
КонецПроцедуры
Процедура Проверка_ОзонТаймслоты(Знач Результат) Экспорт
ОжидаетЧто(Результат["drop_off_warehouse_timeslots"]).ИмеетТип("Массив");
КонецПроцедуры
Процедура Проверка_НСУспех(Знач Результат) Экспорт
ОжидаетЧто(Результат["result"]).Равно("success");
@@ -2083,9 +2089,9 @@
КонецФункции
Функция ПолучитьОбщийМодуль(Знач Имя)
Модуль = Вычислить(Имя);
Возврат Модуль;
КонецФункции

View File

@@ -1734,6 +1734,54 @@
КонецФункции
// Получить таймслоты FBO
// Получить доступные таймслоты на конечных складах отгрузки
//
// Примечание:
// Метод в документации API: [post /v1/draft/timeslot/info](@docs.ozon.ru/api/seller/#operation/SupplyDraftAPI_DraftTimeslotInfo)
//
// Параметры:
// IDКлиента - Строка - Идентификатор клиента - clientid
// КлючAPI - Строка - API ключ - apikey
// ДатаОт - Дата - Дата начала нужного периода доступных таймслотов - from
// ДатаПо - Дата - Дата окончания нужного периода доступных таймслотов (28 дней от тек. максимум) - to
// Черновик - Число, Строка - Идентификатор черновика заявки на поставку - draft
// Склады - Массив Из Число - Склад или несколько складов для получения таймслотов - whs
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Ozon Seller API
Функция ПолучитьТаймслотыFBO(Знач IDКлиента, Знач КлючAPI, Знач ДатаОт, Знач ДатаПо, Знач Черновик, Знач Склады) Экспорт
OPI_ПреобразованиеТипов.ПолучитьДату(ДатаОт);
OPI_ПреобразованиеТипов.ПолучитьДату(ДатаПо);
OPI_ПреобразованиеТипов.ПолучитьМассив(Склады);
Для Н = 0 По Склады.ВГраница() Цикл
ТекущееЗначение = Склады[Н];
OPI_ПреобразованиеТипов.ПолучитьЧисло(ТекущееЗначение);
Склады[Н] = ТекущееЗначение;
КонецЦикла;
URL = "https://api-seller.ozon.ru/v1/draft/timeslot/info";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("date_from" , XMLСтрока(ДатаОт) + "Z", "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("date_to" , XMLСтрока(ДатаПо) + "Z", "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("draft_id" , Черновик , "Число" , Параметры);
OPI_Инструменты.ДобавитьПоле("warehouse_ids", Склады , "Коллекция", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Получить структуру доп. полей отправления
// Возвращает структуру включения доп. полей ответа для метода ПолучитьСписокОтправленийFBO
//

View File

@@ -1900,6 +1900,12 @@
КонецПроцедуры
Процедура Проверка_ОзонТаймслоты(Знач Результат) Экспорт
ОжидаетЧто(Результат["drop_off_warehouse_timeslots"]).ИмеетТип("Массив");
КонецПроцедуры
Процедура Проверка_НСУспех(Знач Результат) Экспорт
ОжидаетЧто(Результат["result"]).Равно("success");

View File

@@ -1966,6 +1966,7 @@
Ozon_ПолучитьСтруктуруДопПолейОтправления(ПараметрыТеста);
Ozon_ПолучитьСтруктуруФильтраОтправлений(ПараметрыТеста);
Ozon_ПолучитьСписокОтправленийFBO(ПараметрыТеста);
Ozon_ПолучитьТаймслотыFBO(ПараметрыТеста);
КонецПроцедуры
@@ -13749,6 +13750,14 @@
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьЧерновикЗаявкиFBO", "Ozon");
OPI_ПолучениеДанныхТестов.Проверка_ОзонГотовыйЧерновик(Результат);
IDЧерновика = Результат["draft_id"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Ozon_Draft", IDЧерновика);
ПараметрыФункции.Вставить("Ozon_Draft", IDЧерновика);
IDСклада = Результат["clusters"][0]["warehouses"][0]["supply_warehouse"]["warehouse_id"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Ozon_FBOWarehouse", IDСклада);
ПараметрыФункции.Вставить("Ozon_FBOWarehouse", IDСклада);
КонецПроцедуры
@@ -13798,6 +13807,26 @@
КонецПроцедуры
Процедура Ozon_ПолучитьТаймслотыFBO(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
Сутки = 86400;
ДатаОт = OPI_Инструменты.ПолучитьТекущуюДату();
ДатаПо = ДатаОт + Сутки;
Черновик = ПараметрыФункции["Ozon_Draft"];
Склад = ПараметрыФункции["Ozon_FBOWarehouse"];
Результат = OPI_Ozon.ПолучитьТаймслотыFBO(IDКлиента, КлючAPI, ДатаОт, ДатаПо, Черновик, Склад);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьТаймслотыFBO", "Ozon");
OPI_ПолучениеДанныхТестов.Проверка_ОзонТаймслоты(Результат);
КонецПроцедуры
#КонецОбласти
#Область Neocities