1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-01-04 03:48:40 +02:00

Начало Yandex Market

This commit is contained in:
Anton 2024-11-05 22:09:58 +03:00
parent 1ea186783d
commit 51c249c26c
13 changed files with 6524 additions and 5229 deletions

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,323 @@
// OneScript: ./OInt/core/Modules/OPI_YandexMarket.os
// Lib: Yandex Market
// CLI: yamarket
// MIT License
// Copyright (c) 2023 Anton Tsitavets
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
// https://github.com/Bayselonarrend/OpenIntegrations
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:UsingServiceTag-off
// BSLLS:LineLength-off
//@skip-check module-structure-top-region
//@skip-check module-structure-method-in-regions
//@skip-check wrong-string-literal-content
//@skip-check method-too-many-params
// Раскомментировать, если выполняется OneScript
#Использовать "../../tools"
#Область ПрограммныйИнтерфейс
#Область КабинетыИМагазины
// Получить список магазинов
// Получает список магазинов в кабинете по токену
//
// Примечание:
// Метод в документации API: [Список магазинов пользователя](@yandex.ru/dev/market/partner-api/doc/ru/reference/campaigns/getCampaigns)
//
// Параметры:
// Токен - Строка - Токен авторизации (Api-Key) - token
// Страница - Число - Номер страницы выдачи списка - page
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
Функция ПолучитьСписокМагазинов(Знач Токен, Знач Страница = 1) Экспорт
URL = "https://api.partner.market.yandex.ru/campaigns";
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
РазмерСтраницы = 100;
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("page" , Страница , "Число", Параметры);
OPI_Инструменты.ДобавитьПоле("pageSize", РазмерСтраницы, "Число", Параметры);
Ответ = OPI_Инструменты.Get(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Получить магазин
// Получает информацию о магазине (кампании) по ID
//
// Примечание:
// Метод в документации API: [Информация о магазине](@yandex.ru/dev/market/partner-api/doc/ru/reference/campaigns/getCampaign)
//
// Параметры:
// Токен - Строка - Токен авторизации (Api-Key) - token
// IDМагазина - Строка, Число - ID магазина (кампании) - campaign
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
Функция ПолучитьМагазин(Знач Токен, Знач IDМагазина) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDМагазина);
URL = "https://api.partner.market.yandex.ru/campaigns/" + IDМагазина;
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Get(URL, , Заголовки);
Возврат Ответ;
КонецФункции
// Получить настройки кабинета
// Получает значения настроек кабинета по ID
//
// Примечание:
// Метод в документации API: [Настройки кабинета](@yandex.ru/dev/market/partner-api/doc/ru/reference/businesses/getBusinessSettings)
//
// Параметры:
// Токен - Строка - Токен авторизации (Api-Key) - token
// IDКабинета - Строка, Число - ID кабинета - business
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
Функция ПолучитьНастройкиКабинета(Знач Токен, Знач IDКабинета) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDКабинета);
URL = "https://api.partner.market.yandex.ru/businesses/%1/settings";
URL = СтрШаблон(URL, IDКабинета);
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Post(URL, , Заголовки);
Возврат Ответ;
КонецФункции
// Получить настройки магазина
// Получает настройки магазина по ID
//
// Примечание:
// Метод в документации API: [Настройки магазина](@yandex.ru/dev/market/partner-api/doc/ru/reference/campaigns/getCampaignSettings)
//
// Параметры:
// Токен - Строка - Токен авторизации (Api-Key) - token
// IDМагазина - Строка, Число - ID магазина (кампании) - campaign
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
Функция ПолучитьНастройкиМагазина(Знач Токен, Знач IDМагазина) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDМагазина);
URL = "https://api.partner.market.yandex.ru/campaigns/%1/settings";
URL = СтрШаблон(URL, IDМагазина);
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Get(URL, , Заголовки);
Возврат Ответ;
КонецФункции
#КонецОбласти
#Область РаботаСТоварами
// Добавить обновить товары
// Добавляет или обновляет информацию о товарах в каталоге
//
// Примечание:
// Метод в документации API: [Добавление товаров в каталог и изменение информации о них](@yandex.ru/dev/market/partner-api/doc/ru/reference/business-assortment/updateOfferMappings)
//
// Параметры:
// Токен - Строка - Токен авторизации (Api-Key) - token
// IDКабинета - Строка, Число - ID кабинета - business
// МассивТоваров - Структура, Массив Из Структура - Массив описаний товаров - offers
// СвоиИзображения - Булево - Признак использования только своих изображений товаров - pmedia
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
Функция ДобавитьОбновитьТовары(Знач Токен, Знач IDКабинета, Знач МассивТоваров, Знач СвоиИзображения = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDКабинета);
URL = "https://api.partner.market.yandex.ru/businesses/%1/offer-mappings/update";
URL = СтрШаблон(URL, IDКабинета);
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("offerMappings" , МассивТоваров , "Массив", Параметры);
OPI_Инструменты.ДобавитьПоле("onlyPartnerMediaContent", СвоиИзображения, "Булево", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Получить структуру товара
// Получает структуру стандартных полей товара
//
// Примечание:
// Описание в документации API: [UpdateOfferDTO](@https://yandex.ru/dev/market/partner-api/doc/ru/reference/business-assortment/updateOfferMappings#updateofferdto)
//
// Параметры:
// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Структура полей товара
Функция ПолучитьСтруктуруТовара(Знач Пустая = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
СтруктураТовара = Новый Структура;
СтруктураТовара.Вставить("offerId", "<идентификатор товара в вашей системе>");
СтруктураРасходов = Новый Структура;
СтруктураРасходов.Вставить("currencyId" , "<код валюты>");
СтруктураРасходов.Вставить("value" , "<доп. расходы>");
СтруктураТовара.Вставить("additionalExpenses", СтруктураРасходов);
СтруктураТовара.Вставить("adult" , "<параметр включает для товара пометку 18+>");
СтруктураВозраста = Новый Структура;
СтруктураВозраста.Вставить("ageUnit", "<единица измерения: YEAR, MONTH>");
СтруктураВозраста.Вставить("value" , "<возврастное ограничение>");
СтруктураТовара.Вставить("age", СтруктураВозраста);
МассивШтрихкодов = Новый Массив;
МассивШтрихкодов.Добавить("<штрихкод>");
СтруктураТовара.Вставить("barcodes", МассивШтрихкодов);
СтруктураБазовойЦены = Новый Структура;
СтруктураБазовойЦены.Вставить("currencyId" , "<код валюты>");
СтруктураБазовойЦены.Вставить("value" , "<цена>");
СтруктураБазовойЦены.Вставить("discountBase", "<цена до скидки>");
СтруктураТовара.Вставить("basicPrice", СтруктураБазовойЦены);
СтруктураТовара.Вставить("boxCount", "<количество грузовых мест>");
СтруктураТовара.Вставить("category", "<категория товара в вашем магазине>");
МассивСертификатов = Новый Массив;
МассивСертификатов.Добавить("<номер документа на товар>");
СтруктураТовара.Вставить("certificates", МассивСертификатов);
СтруктураЦеныДляСкидок = Новый Структура;
СтруктураЦеныДляСкидок.Вставить("currencyId" , "<код валюты>");
СтруктураЦеныДляСкидок.Вставить("value" , "<цена>");
СтруктураТовара.Вставить("cofinancePrice", СтруктураЦеныДляСкидок);
СтруктураСостояния = Новый Структура;
СтруктураСостояния.Вставить("quality", "<внешний вид товара>");
СтруктураСостояния.Вставить("reason" , "<описание дефектов>");
СтруктураСостояния.Вставить("type" , "<тип уценки>");
СтруктураТовара.Вставить("condition", СтруктураСостояния);
// TODO: Доописать
СтруктураТовара.Вставить("customsCommodityCode", "<код товара ТН ВЭД>");
СтруктураТовара.Вставить("description", "<подробное описание товара>");
СтруктураТовара.Вставить("downloadable", "<признак цифрового товара>");
СтруктураТовара.Вставить("guaranteePeriod", "<гарантийный срок>");
СтруктураТовара.Вставить("lifeTime", "<срок службы>");
МассивРуководств = Новый Массив;
МассивРуководств.Добавить("<руководство>");
СтруктураТовара.Вставить("manuals", МассивРуководств);
МассивСтран = Новый Массив;
МассивСтран.Добавить("<страна производства>");
СтруктураТовара.Вставить("manufacturerCountries", МассивСтран);
СтруктураТовара.Вставить("marketCategoryId", "<идентификатор категории на Маркете>");
СтруктураТовара.Вставить("name", "<имя товара>");
МассивХарактеристик = Новый Массив;
МассивХарактеристик.Добавить("<характеристика>");
СтруктураТовара.Вставить("parameterValues", МассивХарактеристик);
МассивКартинок = Новый Массив;
МассивКартинок.Добавить("<ссылка на картинку товара>");
СтруктураТовара.Вставить("pictures", МассивКартинок);
СтруктураТовара.Вставить("purchasePrice", "<себестоимость>");
СтруктураТовара.Вставить("shelfLife", "<срок годности>");
МассивТэгов = Новый Массив;
МассивТэгов.Добавить("<метка>");
СтруктураТовара.Вставить("tags", МассивТэгов);
СтруктураТовара.Вставить("type", "<особый тип товара>");
СтруктураТовара.Вставить("vendor", "<название бренда или производителя>");
СтруктураТовара.Вставить("vendorCode", "<артикул товара от производителя>");
МассивВидео = Новый Массив;
МассивВидео.Добавить("<ссылка на видео>");
СтруктураТовара.Вставить("videos", МассивВидео);
СтруктураТовара.Вставить("weightDimensions", "<габариты и вес товара>");
Если Пустая Тогда
СтруктураТовара = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураТовара);
КонецЕсли;
//@skip-check constructor-function-return-section
Возврат СтруктураТовара;
КонецФункции
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция СоздатьЗаголовкиЗапроса(Знач Токен)
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
Заголовки = Новый Соответствие;
Заголовки.Вставить("Api-Key", Токен);
Возврат Заголовки;
КонецФункции
#КонецОбласти

View File

@ -18,6 +18,7 @@
<module name="OPI_VKTeams" file="core/Modules/OPI_VKTeams.os"/>
<module name="OPI_YandexDisk" file="core/Modules/OPI_YandexDisk.os"/>
<module name="OPI_YandexID" file="core/Modules/OPI_YandexID.os"/>
<module name="OPI_YandexMarket" file="core/Modules/OPI_YandexMarket.os"/>
<module name="OPI_Инструменты" file="tools/Modules/internal/Modules/OPI_Инструменты.os"/>
<module name="OPI_Криптография" file="tools/Modules/internal/Modules/OPI_Криптография.os"/>
<module name="OPI_ПолучениеДанныхТестов" file="tools/Modules/OPI_ПолучениеДанныхТестов.os"/>

View File

@ -2068,6 +2068,36 @@
#КонецОбласти
#Область YandexMarket
Процедура ЯМаркет_КабинетыИМагазины() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Token" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Campaign", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Business", ПараметрыТеста);
YandexMarket_ПолучитьСписокМагазинов(ПараметрыТеста);
YandexMarket_ПолучитьМагазин(ПараметрыТеста);
YandexMarket_ПолучитьНастройкиКабинета(ПараметрыТеста);
YandexMarket_ПолучитьНастройкиМагазина(ПараметрыТеста);
КонецПроцедуры
Процедура ЯМаркет_РаботаСТоварами() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Token" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Business", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Video" , ПараметрыТеста);
YandexMarket_ДобавитьОбновитьТовары(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецОбласти
@ -13232,7 +13262,7 @@
// OPI_ПолучениеДанныхТестов.Проверка_ОзонЗаданиеЗагрузки(Результат);
// IDЗадания = Результат["result"]["task_id"];
IDЗадания = 1;
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Ozon_CodesTaskID", IDЗадания);
ПараметрыФункции.Вставить("Ozon_CodesTaskID", IDЗадания);
@ -14309,6 +14339,140 @@
#КонецОбласти
#Область YandexMarket
Процедура YandexMarket_ПолучитьСписокМагазинов(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
Результат = OPI_YandexMarket.ПолучитьСписокМагазинов(Токен);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокМагазинов", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_ЯМаркетМагазины(Результат);
КонецПроцедуры
Процедура 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_ПолучениеДанныхТестов.Проверка_ЯМаркетКабинет(Результат);
КонецПроцедуры
Процедура YandexMarket_ПолучитьНастройкиМагазина(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
IDМагазина = ПараметрыФункции["YMarket_Campaign"];
Результат = OPI_YandexMarket.ПолучитьНастройкиМагазина(Токен, IDМагазина);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьНастройкиМагазина", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_Соответствие(Результат);
КонецПроцедуры
Процедура YandexMarket_ДобавитьОбновитьТовары(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
IDКабинета = ПараметрыФункции["YMarket_Business"];
Картинка = ПараметрыФункции["Picture"];
Видео = ПараметрыФункции["Video"];
СтруктураОбновления = Новый Структура;
СтруктураТовара = Новый Структура;
СтруктураТовара.Вставить("offerId" , "11111");
СтруктураТовара.Вставить("name" , "Ударная дрель Makita HP1630, 710 Вт");
СтруктураТовара.Вставить("marketCategoryId", 15221861);
СтруктураТовара.Вставить("category" , "Дрель");
МассивКартинок = Новый Массив;
МассивКартинок.Добавить(Картинка);
СтруктураТовара.Вставить("pictures", МассивКартинок);
МассивВидео = Новый Массив;
МассивВидео.Добавить(Видео);
СтруктураТовара.Вставить("videos", МассивВидео);
СтруктураТовара.Вставить("vendor", "LEVENHUK");
МассивШтрихкодов = Новый Массив;
МассивШтрихкодов.Добавить("46012300000000");
СтруктураТовара.Вставить("barcodes" , МассивШтрихкодов);
СтруктураТовара.Вставить("description", "Описание");
МассивСтран = Новый Массив;
МассивСтран.Добавить("Россия");
СтруктураТовара.Вставить("manufacturerCountries", МассивСтран);
СтруктураРазмеров = Новый Структура;
СтруктураРазмеров.Вставить("length", 65.55);
СтруктураРазмеров.Вставить("width" , 50.7);
СтруктураРазмеров.Вставить("height", 20);
СтруктураРазмеров.Вставить("weight", 1.001);
СтруктураТовара.Вставить("weightDimensions", СтруктураРазмеров);
СтруктураТовара.Вставить("vendorCode" , "VNDR-0005A");
МассивТэгов = Новый Массив;
МассивТэгов.Добавить("до 500 рублей");
СтруктураТовара.Вставить("tags", МассивТэгов);
СтруктураПериода = Новый Структура;
СтруктураПериода.Вставить("timePeriod", 24);
СтруктураПериода.Вставить("timeUnit" , "HOUR");
СтруктураПериода.Вставить("comment" , "Комментарий");
СтруктураТовара.Вставить("shelfLife" , СтруктураПериода);
СтруктураТовара.Вставить("lifeTime" , СтруктураПериода);
СтруктураТовара.Вставить("guaranteePeriod" , СтруктураПериода);
СтруктураТовара.Вставить("customsCommodityCode", 8517610008);
СтруктураТовара.Вставить("type" , "DEFAULT");
СтруктураТовара.Вставить("downloadable" , Ложь);
СтруктураТовара.Вставить("adult" , Ложь);
СтруктураОбновления.Вставить("offer", СтруктураТовара);
Результат = OPI_YandexMarket.ДобавитьОбновитьТовары(Токен, IDКабинета, СтруктураОбновления);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьОбновитьТовары", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_ЯМаркетОк(Результат);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецОбласти

View File

@ -2064,6 +2064,24 @@
#КонецОбласти
#Область YandexMarket
Процедура CLI_ЯМаркет_КабинетыИМагазины() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Token" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Campaign", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Business", ПараметрыТеста);
CLI_YandexMarket_ПолучитьСписокМагазинов(ПараметрыТеста);
CLI_YandexMarket_ПолучитьМагазин(ПараметрыТеста);
CLI_YandexMarket_ПолучитьНастройкиКабинета(ПараметрыТеста);
CLI_YandexMarket_ПолучитьНастройкиМагазина(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецОбласти
@ -16280,6 +16298,65 @@
#КонецОбласти
#Область YandexMarket
Процедура CLI_YandexMarket_ПолучитьСписокМагазинов(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
Результат = OPI_YandexMarket.ПолучитьСписокМагазинов(Токен);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокМагазинов", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_ЯМаркетМагазины(Результат);
КонецПроцедуры
Процедура CLI_YandexMarket_ПолучитьМагазин(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
IDМагазина = ПараметрыФункции["YMarket_Campaign"];
Результат = OPI_YandexMarket.ПолучитьМагазин(Токен, IDМагазина);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьМагазин", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_Соответствие(Результат);
КонецПроцедуры
Процедура CLI_YandexMarket_ПолучитьНастройкиКабинета(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
IDКабинета = ПараметрыФункции["YMarket_Business"];
Результат = OPI_YandexMarket.ПолучитьНастройкиКабинета(Токен, IDКабинета);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьМагазин", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_ЯМаркетКабинет(Результат);
КонецПроцедуры
Процедура CLI_YandexMarket_ПолучитьНастройкиМагазина(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
IDМагазина = ПараметрыФункции["YMarket_Campaign"];
Результат = OPI_YandexMarket.ПолучитьНастройкиМагазина(Токен, IDМагазина);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьНастройкиМагазина", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_Соответствие(Результат);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецОбласти

View File

@ -66,6 +66,7 @@
Разделы.Вставить("Ozon" , 5);
Разделы.Вставить("Neocities" , 5);
Разделы.Вставить("CDEK" , 5);
Разделы.Вставить("YandexMarket" , 5);
Возврат Разделы;
@ -95,6 +96,7 @@
Разделы.Вставить("Ozon" , СтандартныеЗависимости);
Разделы.Вставить("Neocities" , СтандартныеЗависимости);
Разделы.Вставить("CDEK" , СтандартныеЗависимости);
Разделы.Вставить("YandexMarket" , СтандартныеЗависимости);
Возврат Разделы;
@ -120,6 +122,7 @@
Озон = "Ozon";
Неоситиз = "Neocities";
Сдэк = "CDEK";
ЯМаркет = "YandexMarket";
ТаблицаТестов = Новый ТаблицаЗначений;
ТаблицаТестов.Колонки.Добавить("Метод");
@ -246,6 +249,8 @@
НовыйТест(ТаблицаТестов, "СдэкАПИ_ОбщиеМетоды" , "Общие методы" , Сдэк);
НовыйТест(ТаблицаТестов, "СдэкАПИ_РаботаСЗаказами" , "Работа с заказами" , Сдэк);
НовыйТест(ТаблицаТестов, "СдэкАПИ_РаботаСЗаявкамиНаВызовКурьера", "Работа с заявками курьера" , Сдэк);
НовыйТест(ТаблицаТестов, "ЯМаркет_КабинетыИМагазины" , "Кабинеты и магазины" , ЯМаркет);
НовыйТест(ТаблицаТестов, "ЯМаркет_РаботаСТоварами" , "Работа с товарами" , ЯМаркет);
Возврат ТаблицаТестов;
@ -1907,6 +1912,33 @@
КонецПроцедуры
Процедура Проверка_ЯМаркетМагазины(Знач Результат) Экспорт
ОжидаетЧто(Результат["campaigns"]).ИмеетТип("Массив");
ОжидаетЧто(Результат["pager"]).ИмеетТип("Соответствие").Заполнено();
КонецПроцедуры
Процедура Проверка_ЯМаркетМагазин(Знач Результат) Экспорт
ОжидаетЧто(Результат["campaign"]).ИмеетТип("Соответствие");
ОжидаетЧто(Результат["campaign"]["id"]).Заполнено();
КонецПроцедуры
Процедура Проверка_ЯМаркетКабинет(Знач Результат) Экспорт
ОжидаетЧто(Результат["result"]["settings"]).ИмеетТип("Соответствие").Заполнено();
КонецПроцедуры
Процедура Проверка_ЯМаркетОк(Знач Результат) Экспорт
ОжидаетЧто(Результат["status"]).Равно("OK");
ОжидаетЧто(Результат["results"]).Равно(Неопределено);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@ -1943,9 +1975,9 @@
КонецФункции
Функция ПолучитьОбщийМодуль(Знач Имя)
Модуль = Вычислить(Имя);
Возврат Модуль;
КонецФункции

View File

@ -0,0 +1,323 @@
// OneScript: ./OInt/core/Modules/OPI_YandexMarket.os
// Lib: Yandex Market
// CLI: yamarket
// MIT License
// Copyright (c) 2023 Anton Tsitavets
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
// https://github.com/Bayselonarrend/OpenIntegrations
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:UsingServiceTag-off
// BSLLS:LineLength-off
//@skip-check module-structure-top-region
//@skip-check module-structure-method-in-regions
//@skip-check wrong-string-literal-content
//@skip-check method-too-many-params
// Раскомментировать, если выполняется OneScript
// #Использовать "../../tools"
#Область ПрограммныйИнтерфейс
#Область КабинетыИМагазины
// Получить список магазинов
// Получает список магазинов в кабинете по токену
//
// Примечание:
// Метод в документации API: [Список магазинов пользователя](@yandex.ru/dev/market/partner-api/doc/ru/reference/campaigns/getCampaigns)
//
// Параметры:
// Токен - Строка - Токен авторизации (Api-Key) - token
// Страница - Число - Номер страницы выдачи списка - page
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
Функция ПолучитьСписокМагазинов(Знач Токен, Знач Страница = 1) Экспорт
URL = "https://api.partner.market.yandex.ru/campaigns";
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
РазмерСтраницы = 100;
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("page" , Страница , "Число", Параметры);
OPI_Инструменты.ДобавитьПоле("pageSize", РазмерСтраницы, "Число", Параметры);
Ответ = OPI_Инструменты.Get(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Получить магазин
// Получает информацию о магазине (кампании) по ID
//
// Примечание:
// Метод в документации API: [Информация о магазине](@yandex.ru/dev/market/partner-api/doc/ru/reference/campaigns/getCampaign)
//
// Параметры:
// Токен - Строка - Токен авторизации (Api-Key) - token
// IDМагазина - Строка, Число - ID магазина (кампании) - campaign
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
Функция ПолучитьМагазин(Знач Токен, Знач IDМагазина) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDМагазина);
URL = "https://api.partner.market.yandex.ru/campaigns/" + IDМагазина;
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Get(URL, , Заголовки);
Возврат Ответ;
КонецФункции
// Получить настройки кабинета
// Получает значения настроек кабинета по ID
//
// Примечание:
// Метод в документации API: [Настройки кабинета](@yandex.ru/dev/market/partner-api/doc/ru/reference/businesses/getBusinessSettings)
//
// Параметры:
// Токен - Строка - Токен авторизации (Api-Key) - token
// IDКабинета - Строка, Число - ID кабинета - business
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
Функция ПолучитьНастройкиКабинета(Знач Токен, Знач IDКабинета) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDКабинета);
URL = "https://api.partner.market.yandex.ru/businesses/%1/settings";
URL = СтрШаблон(URL, IDКабинета);
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Post(URL, , Заголовки);
Возврат Ответ;
КонецФункции
// Получить настройки магазина
// Получает настройки магазина по ID
//
// Примечание:
// Метод в документации API: [Настройки магазина](@yandex.ru/dev/market/partner-api/doc/ru/reference/campaigns/getCampaignSettings)
//
// Параметры:
// Токен - Строка - Токен авторизации (Api-Key) - token
// IDМагазина - Строка, Число - ID магазина (кампании) - campaign
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
Функция ПолучитьНастройкиМагазина(Знач Токен, Знач IDМагазина) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDМагазина);
URL = "https://api.partner.market.yandex.ru/campaigns/%1/settings";
URL = СтрШаблон(URL, IDМагазина);
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Get(URL, , Заголовки);
Возврат Ответ;
КонецФункции
#КонецОбласти
#Область РаботаСТоварами
// Добавить обновить товары
// Добавляет или обновляет информацию о товарах в каталоге
//
// Примечание:
// Метод в документации API: [Добавление товаров в каталог и изменение информации о них](@yandex.ru/dev/market/partner-api/doc/ru/reference/business-assortment/updateOfferMappings)
//
// Параметры:
// Токен - Строка - Токен авторизации (Api-Key) - token
// IDКабинета - Строка, Число - ID кабинета - business
// МассивТоваров - Структура, Массив Из Структура - Массив описаний товаров - offers
// СвоиИзображения - Булево - Признак использования только своих изображений товаров - pmedia
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
Функция ДобавитьОбновитьТовары(Знач Токен, Знач IDКабинета, Знач МассивТоваров, Знач СвоиИзображения = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDКабинета);
URL = "https://api.partner.market.yandex.ru/businesses/%1/offer-mappings/update";
URL = СтрШаблон(URL, IDКабинета);
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("offerMappings" , МассивТоваров , "Массив", Параметры);
OPI_Инструменты.ДобавитьПоле("onlyPartnerMediaContent", СвоиИзображения, "Булево", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Получить структуру товара
// Получает структуру стандартных полей товара
//
// Примечание:
// Описание в документации API: [UpdateOfferDTO](@https://yandex.ru/dev/market/partner-api/doc/ru/reference/business-assortment/updateOfferMappings#updateofferdto)
//
// Параметры:
// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Структура полей товара
Функция ПолучитьСтруктуруТовара(Знач Пустая = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
СтруктураТовара = Новый Структура;
СтруктураТовара.Вставить("offerId", "<идентификатор товара в вашей системе>");
СтруктураРасходов = Новый Структура;
СтруктураРасходов.Вставить("currencyId" , "<код валюты>");
СтруктураРасходов.Вставить("value" , "<доп. расходы>");
СтруктураТовара.Вставить("additionalExpenses", СтруктураРасходов);
СтруктураТовара.Вставить("adult" , "<параметр включает для товара пометку 18+>");
СтруктураВозраста = Новый Структура;
СтруктураВозраста.Вставить("ageUnit", "<единица измерения: YEAR, MONTH>");
СтруктураВозраста.Вставить("value" , "<возрастное ограничение>");
СтруктураТовара.Вставить("age", СтруктураВозраста);
МассивШтрихкодов = Новый Массив;
МассивШтрихкодов.Добавить("<штрихкод>");
СтруктураТовара.Вставить("barcodes", МассивШтрихкодов);
СтруктураБазовойЦены = Новый Структура;
СтруктураБазовойЦены.Вставить("currencyId" , "<код валюты>");
СтруктураБазовойЦены.Вставить("value" , "<цена>");
СтруктураБазовойЦены.Вставить("discountBase", "<цена до скидки>");
СтруктураТовара.Вставить("basicPrice", СтруктураБазовойЦены);
СтруктураТовара.Вставить("boxCount", "<количество грузовых мест>");
СтруктураТовара.Вставить("category", "<категория товара в вашем магазине>");
МассивСертификатов = Новый Массив;
МассивСертификатов.Добавить("<номер документа на товар>");
СтруктураТовара.Вставить("certificates", МассивСертификатов);
СтруктураЦеныДляСкидок = Новый Структура;
СтруктураЦеныДляСкидок.Вставить("currencyId" , "<код валюты>");
СтруктураЦеныДляСкидок.Вставить("value" , "<цена>");
СтруктураТовара.Вставить("cofinancePrice", СтруктураЦеныДляСкидок);
СтруктураСостояния = Новый Структура;
СтруктураСостояния.Вставить("quality", "<внешний вид товара>");
СтруктураСостояния.Вставить("reason" , "<описание дефектов>");
СтруктураСостояния.Вставить("type" , "<тип уценки>");
СтруктураТовара.Вставить("condition", СтруктураСостояния);
// TODO: Доописать
СтруктураТовара.Вставить("customsCommodityCode", "<код товара ТН ВЭД>");
СтруктураТовара.Вставить("description", "<подробное описание товара>");
СтруктураТовара.Вставить("downloadable", "<признак цифрового товара>");
СтруктураТовара.Вставить("guaranteePeriod", "<гарантийный срок>");
СтруктураТовара.Вставить("lifeTime", "<срок службы>");
МассивРуководств = Новый Массив;
МассивРуководств.Добавить("<руководство>");
СтруктураТовара.Вставить("manuals", МассивРуководств);
МассивСтран = Новый Массив;
МассивСтран.Добавить("<страна производства>");
СтруктураТовара.Вставить("manufacturerCountries", МассивСтран);
СтруктураТовара.Вставить("marketCategoryId", "<идентификатор категории на Маркете>");
СтруктураТовара.Вставить("name", "<имя товара>");
МассивХарактеристик = Новый Массив;
МассивХарактеристик.Добавить("<характеристика>");
СтруктураТовара.Вставить("parameterValues", МассивХарактеристик);
МассивКартинок = Новый Массив;
МассивКартинок.Добавить("<ссылка на картинку товара>");
СтруктураТовара.Вставить("pictures", МассивКартинок);
СтруктураТовара.Вставить("purchasePrice", "<себестоимость>");
СтруктураТовара.Вставить("shelfLife", "<срок годности>");
МассивТэгов = Новый Массив;
МассивТэгов.Добавить("<метка>");
СтруктураТовара.Вставить("tags", МассивТэгов);
СтруктураТовара.Вставить("type", "<особый тип товара>");
СтруктураТовара.Вставить("vendor", "<название бренда или производителя>");
СтруктураТовара.Вставить("vendorCode", "<артикул товара от производителя>");
МассивВидео = Новый Массив;
МассивВидео.Добавить("<ссылка на видео>");
СтруктураТовара.Вставить("videos", МассивВидео);
СтруктураТовара.Вставить("weightDimensions", "<габариты и вес товара>");
Если Пустая Тогда
СтруктураТовара = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураТовара);
КонецЕсли;
//@skip-check constructor-function-return-section
Возврат СтруктураТовара;
КонецФункции
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция СоздатьЗаголовкиЗапроса(Знач Токен)
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
Заголовки = Новый Соответствие;
Заголовки.Вставить("Api-Key", Токен);
Возврат Заголовки;
КонецФункции
#КонецОбласти

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="7c183b97-38f5-4fe6-a19f-c5af2ab85875">
<name>OPI_YandexMarket</name>
<synonym>
<key>ru</key>
<value>Yandex Market (ОПИ)</value>
</synonym>
<server>true</server>
<externalConnection>true</externalConnection>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>

View File

@ -66,6 +66,7 @@
Разделы.Вставить("Ozon" , 5);
Разделы.Вставить("Neocities" , 5);
Разделы.Вставить("CDEK" , 5);
Разделы.Вставить("YandexMarket" , 5);
Возврат Разделы;
@ -95,6 +96,7 @@
Разделы.Вставить("Ozon" , СтандартныеЗависимости);
Разделы.Вставить("Neocities" , СтандартныеЗависимости);
Разделы.Вставить("CDEK" , СтандартныеЗависимости);
Разделы.Вставить("YandexMarket" , СтандартныеЗависимости);
Возврат Разделы;
@ -120,6 +122,7 @@
Озон = "Ozon";
Неоситиз = "Neocities";
Сдэк = "CDEK";
ЯМаркет = "YandexMarket";
ТаблицаТестов = Новый ТаблицаЗначений;
ТаблицаТестов.Колонки.Добавить("Метод");
@ -246,6 +249,8 @@
НовыйТест(ТаблицаТестов, "СдэкАПИ_ОбщиеМетоды" , "Общие методы" , Сдэк);
НовыйТест(ТаблицаТестов, "СдэкАПИ_РаботаСЗаказами" , "Работа с заказами" , Сдэк);
НовыйТест(ТаблицаТестов, "СдэкАПИ_РаботаСЗаявкамиНаВызовКурьера", "Работа с заявками курьера" , Сдэк);
НовыйТест(ТаблицаТестов, "ЯМаркет_КабинетыИМагазины" , "Кабинеты и магазины" , ЯМаркет);
НовыйТест(ТаблицаТестов, "ЯМаркет_РаботаСТоварами" , "Работа с товарами" , ЯМаркет);
Возврат ТаблицаТестов;
@ -1907,6 +1912,33 @@
КонецПроцедуры
Процедура Проверка_ЯМаркетМагазины(Знач Результат) Экспорт
ОжидаетЧто(Результат["campaigns"]).ИмеетТип("Массив");
ОжидаетЧто(Результат["pager"]).ИмеетТип("Соответствие").Заполнено();
КонецПроцедуры
Процедура Проверка_ЯМаркетМагазин(Знач Результат) Экспорт
ОжидаетЧто(Результат["campaign"]).ИмеетТип("Соответствие");
ОжидаетЧто(Результат["campaign"]["id"]).Заполнено();
КонецПроцедуры
Процедура Проверка_ЯМаркетКабинет(Знач Результат) Экспорт
ОжидаетЧто(Результат["result"]["settings"]).ИмеетТип("Соответствие").Заполнено();
КонецПроцедуры
Процедура Проверка_ЯМаркетОк(Знач Результат) Экспорт
ОжидаетЧто(Результат["status"]).Равно("OK");
ОжидаетЧто(Результат["results"]).Равно(Неопределено);
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/tests/Modules/internal/OPI_Тесты.os
// OneScript: ./OInt/tests/Modules/internal/OPI_Тесты.os
// MIT License
@ -2068,6 +2068,36 @@
#КонецОбласти
#Область YandexMarket
Процедура ЯМаркет_КабинетыИМагазины() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Token" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Campaign", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Business", ПараметрыТеста);
YandexMarket_ПолучитьСписокМагазинов(ПараметрыТеста);
YandexMarket_ПолучитьМагазин(ПараметрыТеста);
YandexMarket_ПолучитьНастройкиКабинета(ПараметрыТеста);
YandexMarket_ПолучитьНастройкиМагазина(ПараметрыТеста);
КонецПроцедуры
Процедура ЯМаркет_РаботаСТоварами() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Token" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Business", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Video" , ПараметрыТеста);
YandexMarket_ДобавитьОбновитьТовары(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецОбласти
@ -13232,7 +13262,7 @@
// OPI_ПолучениеДанныхТестов.Проверка_ОзонЗаданиеЗагрузки(Результат);
// IDЗадания = Результат["result"]["task_id"];
IDЗадания = 1;
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Ozon_CodesTaskID", IDЗадания);
ПараметрыФункции.Вставить("Ozon_CodesTaskID", IDЗадания);
@ -14309,6 +14339,140 @@
#КонецОбласти
#Область YandexMarket
Процедура YandexMarket_ПолучитьСписокМагазинов(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
Результат = OPI_YandexMarket.ПолучитьСписокМагазинов(Токен);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокМагазинов", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_ЯМаркетМагазины(Результат);
КонецПроцедуры
Процедура 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_ПолучениеДанныхТестов.Проверка_ЯМаркетКабинет(Результат);
КонецПроцедуры
Процедура YandexMarket_ПолучитьНастройкиМагазина(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
IDМагазина = ПараметрыФункции["YMarket_Campaign"];
Результат = OPI_YandexMarket.ПолучитьНастройкиМагазина(Токен, IDМагазина);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьНастройкиМагазина", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_Соответствие(Результат);
КонецПроцедуры
Процедура YandexMarket_ДобавитьОбновитьТовары(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
IDКабинета = ПараметрыФункции["YMarket_Business"];
Картинка = ПараметрыФункции["Picture"];
Видео = ПараметрыФункции["Video"];
СтруктураОбновления = Новый Структура;
СтруктураТовара = Новый Структура;
СтруктураТовара.Вставить("offerId" , "11111");
СтруктураТовара.Вставить("name" , "Ударная дрель Makita HP1630, 710 Вт");
СтруктураТовара.Вставить("marketCategoryId", 15221861);
СтруктураТовара.Вставить("category" , "Дрель");
МассивКартинок = Новый Массив;
МассивКартинок.Добавить(Картинка);
СтруктураТовара.Вставить("pictures", МассивКартинок);
МассивВидео = Новый Массив;
МассивВидео.Добавить(Видео);
СтруктураТовара.Вставить("videos", МассивВидео);
СтруктураТовара.Вставить("vendor", "LEVENHUK");
МассивШтрихкодов = Новый Массив;
МассивШтрихкодов.Добавить("46012300000000");
СтруктураТовара.Вставить("barcodes" , МассивШтрихкодов);
СтруктураТовара.Вставить("description", "Описание");
МассивСтран = Новый Массив;
МассивСтран.Добавить("Россия");
СтруктураТовара.Вставить("manufacturerCountries", МассивСтран);
СтруктураРазмеров = Новый Структура;
СтруктураРазмеров.Вставить("length", 65.55);
СтруктураРазмеров.Вставить("width" , 50.7);
СтруктураРазмеров.Вставить("height", 20);
СтруктураРазмеров.Вставить("weight", 1.001);
СтруктураТовара.Вставить("weightDimensions", СтруктураРазмеров);
СтруктураТовара.Вставить("vendorCode" , "VNDR-0005A");
МассивТэгов = Новый Массив;
МассивТэгов.Добавить("до 500 рублей");
СтруктураТовара.Вставить("tags", МассивТэгов);
СтруктураПериода = Новый Структура;
СтруктураПериода.Вставить("timePeriod", 24);
СтруктураПериода.Вставить("timeUnit" , "HOUR");
СтруктураПериода.Вставить("comment" , "Комментарий");
СтруктураТовара.Вставить("shelfLife" , СтруктураПериода);
СтруктураТовара.Вставить("lifeTime" , СтруктураПериода);
СтруктураТовара.Вставить("guaranteePeriod" , СтруктураПериода);
СтруктураТовара.Вставить("customsCommodityCode", 8517610008);
СтруктураТовара.Вставить("type" , "DEFAULT");
СтруктураТовара.Вставить("downloadable" , Ложь);
СтруктураТовара.Вставить("adult" , Ложь);
СтруктураОбновления.Вставить("offer", СтруктураТовара);
Результат = OPI_YandexMarket.ДобавитьОбновитьТовары(Токен, IDКабинета, СтруктураОбновления);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьОбновитьТовары", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_ЯМаркетОк(Результат);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецОбласти

View File

@ -2064,6 +2064,24 @@
#КонецОбласти
#Область YandexMarket
Процедура CLI_ЯМаркет_КабинетыИМагазины() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Token" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Campaign", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Business", ПараметрыТеста);
CLI_YandexMarket_ПолучитьСписокМагазинов(ПараметрыТеста);
CLI_YandexMarket_ПолучитьМагазин(ПараметрыТеста);
CLI_YandexMarket_ПолучитьНастройкиКабинета(ПараметрыТеста);
CLI_YandexMarket_ПолучитьНастройкиМагазина(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецОбласти
@ -16280,6 +16298,65 @@
#КонецОбласти
#Область YandexMarket
Процедура CLI_YandexMarket_ПолучитьСписокМагазинов(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
Результат = OPI_YandexMarket.ПолучитьСписокМагазинов(Токен);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокМагазинов", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_ЯМаркетМагазины(Результат);
КонецПроцедуры
Процедура CLI_YandexMarket_ПолучитьМагазин(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
IDМагазина = ПараметрыФункции["YMarket_Campaign"];
Результат = OPI_YandexMarket.ПолучитьМагазин(Токен, IDМагазина);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьМагазин", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_Соответствие(Результат);
КонецПроцедуры
Процедура CLI_YandexMarket_ПолучитьНастройкиКабинета(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
IDКабинета = ПараметрыФункции["YMarket_Business"];
Результат = OPI_YandexMarket.ПолучитьНастройкиКабинета(Токен, IDКабинета);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьМагазин", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_ЯМаркетКабинет(Результат);
КонецПроцедуры
Процедура CLI_YandexMarket_ПолучитьНастройкиМагазина(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
IDМагазина = ПараметрыФункции["YMarket_Campaign"];
Результат = OPI_YandexMarket.ПолучитьНастройкиМагазина(Токен, IDМагазина);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьНастройкиМагазина", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_Соответствие(Результат);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецОбласти

View File

@ -62,6 +62,7 @@
<commonModules>CommonModule.OPI_Ozon</commonModules>
<commonModules>CommonModule.OPI_Neocities</commonModules>
<commonModules>CommonModule.OPI_CDEK</commonModules>
<commonModules>CommonModule.OPI_YandexMarket</commonModules>
<commonModules>CommonModule.OPI_Тесты</commonModules>
<commonModules>CommonModule.OPI_ТестыCLI</commonModules>
<commonModules>CommonModule.OPI_ПолучениеДанныхТестов</commonModules>