1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2024-11-21 17:56:56 +02:00

YAM: Получение списка товаров

This commit is contained in:
Anton Titovets 2024-11-06 12:51:14 +03:00
parent 30cbcef8d1
commit d683cbe6be
9 changed files with 3271 additions and 3028 deletions

View File

@ -739,6 +739,10 @@
Результат = ДокументЛога.ПолучитьТекст();
Результат = СокрЛП(Результат);
Если Не ЗначениеЗаполнено(Результат) Тогда
Возврат "";
КонецЕсли;
МаксимальныйРазмер = Мин(СтрЧислоСтрок(Результат), 150);
Обрезка = СтрЧислоСтрок(Результат) > 150;
ТекстРезультата = "";
@ -749,6 +753,20 @@
ТекстРезультата = ?(Обрезка, ТекстРезультата + "...", Лев(ТекстРезультата, СтрДлина(ТекстРезультата) - 1));
Если ТекущийЯзык = "ru" Тогда
Пометка = "Результат";
Иначе
Пометка = "Result";
КонецЕсли;
ТекстРезультата = "```json title="""
+ Пометка
+ """"
+ Символы.ПС
+ ТекстРезультата
+ Символы.ПС
+ "```";
Возврат ТекстРезультата;
КонецФункции

File diff suppressed because it is too large Load Diff

View File

@ -30,6 +30,4 @@ import TabItem from '@theme/TabItem';
@ВызовCLI
```json title="Result"
@Результат
```

View File

@ -30,6 +30,4 @@ import TabItem from '@theme/TabItem';
@ВызовCLI
```json title="Результат"
@Результат
```

View File

@ -187,6 +187,44 @@
КонецФункции
// Получить товары магазина
// Получает список товаров выбранного магазина
//
// Примечание:
// Метод в документации API: [Информация о товарах, которые размещены в заданном магазине](@https://yandex.ru/dev/market/partner-api/doc/ru/reference/assortment/getCampaignOffers)
//
// Параметры:
// Токен - Строка - Токен авторизации (Api-Key) - token
// IDМагазина - Строка, Число - ID магазина - business
// Фильтры - Структура Из КлючИЗначение - Фильтры для отбора товаров - filters
// ТокенСтраницы - Строка - Токен следующей страницы при большой выборке - page
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
Функция ПолучитьТоварыМагазина(Знач Токен, Знач IDМагазина, Знач Фильтры = "", Знач ТокенСтраницы = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDМагазина);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТокенСтраницы);
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Фильтры);
URL = "https://api.partner.market.yandex.ru/campaigns/%1/offers";
URL = СтрШаблон(URL, IDМагазина);
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
Если ЗначениеЗаполнено(ТокенСтраницы) Тогда
URL = URL + "?page_token=" + ТокенСтраницы;
КонецЕсли;
Если ЗначениеЗаполнено(Фильтры) Тогда
Ответ = OPI_Инструменты.Post(URL, Фильтры, Заголовки);
Иначе
Ответ = OPI_Инструменты.Post(URL, , Заголовки);
КонецЕсли;
Возврат Ответ;
КонецФункции
// Получить структуру товара
// Получает структуру стандартных полей товара
//
@ -250,15 +288,25 @@
СтруктураТовара.Вставить("condition", СтруктураСостояния);
// TODO: Доописать
СтруктураТовара.Вставить("customsCommodityCode", "<код товара ТН ВЭД>");
СтруктураТовара.Вставить("description", "<подробное описание товара>");
СтруктураТовара.Вставить("downloadable", "<признак цифрового товара>");
СтруктураТовара.Вставить("guaranteePeriod", "<гарантийный срок>");
СтруктураТовара.Вставить("lifeTime", "<срок службы>");
СтруктураПериода = Новый Структура;
СтруктураПериода.Вставить("timePeriod", "<значение продолжительности>");
СтруктураПериода.Вставить("timeUnit" , "<единица измерения>");
СтруктураПериода.Вставить("comment" , "<комментарий>");
СтруктураТовара.Вставить("guaranteePeriod", СтруктураПериода);
СтруктураТовара.Вставить("lifeTime" , СтруктураПериода);
МассивРуководств = Новый Массив;
МассивРуководств.Добавить("<руководство>");
СтруктураРуководства = Новый Структура;
СтруктураРуководства.Вставить("url" , "<сслыка на руководство>");
СтруктураРуководства.Вставить("title", "<заголовок руководства>");
МассивРуководств.Добавить(СтруктураРуководства);
СтруктураТовара.Вставить("manuals", МассивРуководств);
@ -270,7 +318,14 @@
СтруктураТовара.Вставить("name" , "<имя товара>");
МассивХарактеристик = Новый Массив;
МассивХарактеристик.Добавить("<характеристика>");
СтруктураХарактеристики = Новый Структура;
СтруктураХарактеристики.Вставить("parameterId", "<идентификатор характеристики>");
СтруктураХарактеристики.Вставить("unitId" , "<идентификатор единицы измерения>");
СтруктураХарактеристики.Вставить("value" , "<значение>");
СтруктураХарактеристики.Вставить("valueId" , "<идентификатор значения для перечислений>");
МассивХарактеристик.Добавить(СтруктураХарактеристики);
СтруктураТовара.Вставить("parameterValues", МассивХарактеристик);
@ -278,8 +333,13 @@
МассивКартинок.Добавить("<ссылка на картинку товара>");
СтруктураТовара.Вставить("pictures" , МассивКартинок);
СтруктураТовара.Вставить("purchasePrice", "<себестоимость>");
СтруктураТовара.Вставить("shelfLife" , "<срок годности>");
СтруктураЦеныЗакупки = Новый Структура;
СтруктураЦеныЗакупки.Вставить("currencyId" , "<код валюты>");
СтруктураЦеныЗакупки.Вставить("value" , "<цена>");
СтруктураТовара.Вставить("purchasePrice", СтруктураЦеныЗакупки);
СтруктураТовара.Вставить("shelfLife" , СтруктураПериода);
МассивТэгов = Новый Массив;
МассивТэгов.Добавить("<метка>");
@ -293,6 +353,13 @@
МассивВидео.Добавить("<ссылка на видео>");
СтруктураТовара.Вставить("videos" , МассивВидео);
СтруктураРазмеров = Новый Структура;
СтруктураРазмеров.Вставить("height", "<высота в см.>");
СтруктураРазмеров.Вставить("length", "<длина в см.>");
СтруктураРазмеров.Вставить("weight", "<вес в кг. (брутто)>");
СтруктураРазмеров.Вставить("width" , "<ширина в см.>");
СтруктураТовара.Вставить("weightDimensions", "<габариты и вес товара>");
Если Пустая Тогда

View File

@ -2089,10 +2089,12 @@
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Token" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Business", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Campaign", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Video" , ПараметрыТеста);
YandexMarket_ДобавитьОбновитьТовары(ПараметрыТеста);
YandexMarket_ПолучитьТоварыМагазина(ПараметрыТеста);
КонецПроцедуры
@ -14471,6 +14473,20 @@
КонецПроцедуры
Процедура YandexMarket_ПолучитьТоварыМагазина(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
IDМагазина = ПараметрыФункции["YMarket_Campaign"];
Результат = OPI_YandexMarket.ПолучитьТоварыМагазина(Токен, IDМагазина);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьТоварыМагазина", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_Соответствие(Результат);
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@ -1975,9 +1975,9 @@
КонецФункции
Функция ПолучитьОбщийМодуль(Знач Имя)
Модуль = Вычислить(Имя);
Возврат Модуль;
КонецФункции

View File

@ -187,6 +187,68 @@
КонецФункции
// Получить товары магазина
// Получает список товаров выбранного магазина
//
// Примечание:
// Метод в документации API: [Информация о товарах, которые размещены в заданном магазине](@https://yandex.ru/dev/market/partner-api/doc/ru/reference/assortment/getCampaignOffers)
//
// Параметры:
// Токен - Строка - Токен авторизации (Api-Key) - token
// IDМагазина - Строка, Число - ID магазина - business
// Фильтры - Структура Из КлючИЗначение - Фильтры для отбора товаров - filters
// ТокенСтраницы - Строка - Токен следующей страницы при большой выборке - page
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
Функция ПолучитьТоварыМагазина(Знач Токен, Знач IDМагазина, Знач Фильтры = "", Знач ТокенСтраницы = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDМагазина);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТокенСтраницы);
URL = "https://api.partner.market.yandex.ru/campaigns/%1/offers";
URL = СтрШаблон(URL, IDМагазина);
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
Если ЗначениеЗаполнено(ТокенСтраницы) Тогда
URL = URL + "?page_token=" + ТокенСтраницы;
КонецЕсли;
Если ЗначениеЗаполнено(Фильтры) Тогда
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Фильтры);
Ответ = OPI_Инструменты.Post(URL, Фильтры, Заголовки);
Иначе
Ответ = OPI_Инструменты.Post(URL, , Заголовки);
КонецЕсли;
Возврат Ответ;
КонецФункции
Функция ПолучитьТоварыКабинета(Знач Токен, Знач IDКабинета, Знач Фильтры = "", Знач ТокенСтраницы = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDКабинета);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТокенСтраницы);
URL = "https://api.partner.market.yandex.ru/businesses/%1/offer-mappings";
URL = СтрШаблон(URL, IDКабинета);
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
Если ЗначениеЗаполнено(ТокенСтраницы) Тогда
URL = URL + "?page_token=" + ТокенСтраницы;
КонецЕсли;
Если ЗначениеЗаполнено(Фильтры) Тогда
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Фильтры);
Ответ = OPI_Инструменты.Post(URL, Фильтры, Заголовки);
Иначе
Ответ = OPI_Инструменты.Post(URL, , Заголовки);
КонецЕсли;
Возврат Ответ;
КонецФункции
// Получить структуру товара
// Получает структуру стандартных полей товара
//
@ -250,15 +312,25 @@
СтруктураТовара.Вставить("condition", СтруктураСостояния);
// TODO: Доописать
СтруктураТовара.Вставить("customsCommodityCode", "<код товара ТН ВЭД>");
СтруктураТовара.Вставить("description", "<подробное описание товара>");
СтруктураТовара.Вставить("downloadable", "<признак цифрового товара>");
СтруктураТовара.Вставить("guaranteePeriod", "<гарантийный срок>");
СтруктураТовара.Вставить("lifeTime", "<срок службы>");
СтруктураПериода = Новый Структура;
СтруктураПериода.Вставить("timePeriod", "<значение продолжительности>");
СтруктураПериода.Вставить("timeUnit" , "<единица измерения>");
СтруктураПериода.Вставить("comment" , "<комментарий>");
СтруктураТовара.Вставить("guaranteePeriod", СтруктураПериода);
СтруктураТовара.Вставить("lifeTime" , СтруктураПериода);
МассивРуководств = Новый Массив;
МассивРуководств.Добавить("<руководство>");
СтруктураРуководства = Новый Структура;
СтруктураРуководства.Вставить("url" , "<сслыка на руководство>");
СтруктураРуководства.Вставить("title", "<заголовок руководства>");
МассивРуководств.Добавить(СтруктураРуководства);
СтруктураТовара.Вставить("manuals", МассивРуководств);
@ -270,7 +342,14 @@
СтруктураТовара.Вставить("name" , "<имя товара>");
МассивХарактеристик = Новый Массив;
МассивХарактеристик.Добавить("<характеристика>");
СтруктураХарактеристики = Новый Структура;
СтруктураХарактеристики.Вставить("parameterId", "<идентификатор характеристики>");
СтруктураХарактеристики.Вставить("unitId" , "<идентификатор единицы измерения>");
СтруктураХарактеристики.Вставить("value" , "<значение>");
СтруктураХарактеристики.Вставить("valueId" , "<идентификатор значения для перечислений>");
МассивХарактеристик.Добавить(СтруктураХарактеристики);
СтруктураТовара.Вставить("parameterValues", МассивХарактеристик);
@ -278,8 +357,13 @@
МассивКартинок.Добавить("<ссылка на картинку товара>");
СтруктураТовара.Вставить("pictures" , МассивКартинок);
СтруктураТовара.Вставить("purchasePrice", "<себестоимость>");
СтруктураТовара.Вставить("shelfLife" , "<срок годности>");
СтруктураЦеныЗакупки = Новый Структура;
СтруктураЦеныЗакупки.Вставить("currencyId" , "<код валюты>");
СтруктураЦеныЗакупки.Вставить("value" , "<цена>");
СтруктураТовара.Вставить("purchasePrice", СтруктураЦеныЗакупки);
СтруктураТовара.Вставить("shelfLife" , СтруктураПериода);
МассивТэгов = Новый Массив;
МассивТэгов.Добавить("<метка>");
@ -293,6 +377,13 @@
МассивВидео.Добавить("<ссылка на видео>");
СтруктураТовара.Вставить("videos" , МассивВидео);
СтруктураРазмеров = Новый Структура;
СтруктураРазмеров.Вставить("height", "<высота в см.>");
СтруктураРазмеров.Вставить("length", "<длина в см.>");
СтруктураРазмеров.Вставить("weight", "<вес в кг. (брутто)>");
СтруктураРазмеров.Вставить("width" , "<ширина в см.>");
СтруктураТовара.Вставить("weightDimensions", "<габариты и вес товара>");
Если Пустая Тогда

View File

@ -2089,10 +2089,13 @@
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Token" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Business", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Campaign", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Video" , ПараметрыТеста);
YandexMarket_ДобавитьОбновитьТовары(ПараметрыТеста);
YandexMarket_ПолучитьТоварыМагазина(ПараметрыТеста);
YandexMarket_ПолучитьТоварыКабинета(ПараметрыТеста);
КонецПроцедуры
@ -14471,6 +14474,34 @@
КонецПроцедуры
Процедура YandexMarket_ПолучитьТоварыМагазина(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
IDМагазина = ПараметрыФункции["YMarket_Campaign"];
Результат = OPI_YandexMarket.ПолучитьТоварыМагазина(Токен, IDМагазина);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьТоварыМагазина", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_Соответствие(Результат);
КонецПроцедуры
Процедура YandexMarket_ПолучитьТоварыКабинета(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
IDКабинета = ПараметрыФункции["YMarket_Business"];
Результат = OPI_YandexMarket.ПолучитьТоварыКабинета(Токен, IDКабинета);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьТоварыКабинета", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_Соответствие(Результат);
КонецПроцедуры
#КонецОбласти
#КонецОбласти