From 0b2035fdcd0a731f7950946aae16bcb88edfb3b3 Mon Sep 17 00:00:00 2001 From: Anton Date: Fri, 16 Feb 2024 18:59:23 +0300 Subject: [PATCH] =?UTF-8?q?VK:=20=D0=B2=D1=81=D0=B5=20=D0=BF=D0=BE=20?= =?UTF-8?q?=D1=82=D0=BE=D0=B2=D0=B0=D1=80=D0=B0=D0=BC,=20=D0=BA=D1=80?= =?UTF-8?q?=D0=BE=D0=BC=D0=B5=20=D0=B7=D0=B0=D0=BA=D0=B0=D0=B7=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OPI/src/CommonModules/OPI_VK/Module.bsl | 401 ++++++++++++++++++--- OPI/src/CommonModules/YAX_Тесты/Module.bsl | 207 ++++++++++- 2 files changed, 544 insertions(+), 64 deletions(-) diff --git a/OPI/src/CommonModules/OPI_VK/Module.bsl b/OPI/src/CommonModules/OPI_VK/Module.bsl index 36c3da046a..8348aee315 100644 --- a/OPI/src/CommonModules/OPI_VK/Module.bsl +++ b/OPI/src/CommonModules/OPI_VK/Module.bsl @@ -784,38 +784,77 @@ #Область РаботаСТоварами -Функция ДобавитьТовар(Знач ОписаниеТовара, Знач Подборка = "", Знач Параметры = "") Экспорт +Функция ПолучитьСписокКатегорийТоваров(Знач Параметры = "") Экспорт Параметры_ = ПолучитьСтандартныеПараметры(Параметры); - Параметры_.Вставить("v", "5.199"); - - ОсновноеФото = ОписаниеТовара["ОсновноеФото"]; - ДопФото = ОписаниеТовара["ДополнительныеФото"]; - Подборка = OPI_Инструменты.ЧислоВСтроку(Подборка); + Ответ = OPI_Инструменты.Get("api.vk.com/method/market.getCategories", Параметры_); + Количество = Ответ["response"]["count"]; - Если ЗначениеЗаполнено(ОсновноеФото) Тогда - Ответ = ЗагрузитьФотоНаСервер(ОсновноеФото, Параметры_, "Товар"); - ИДФото = Ответ["response"]["photo_id"]; - ИДФото = OPI_Инструменты.ЧислоВСтроку(ИДФото); - Параметры_.Вставить("main_photo_id", ИДФото); - КонецЕсли; + Параметры_.Вставить("count", Количество); + Ответ = OPI_Инструменты.Get("api.vk.com/method/market.getCategories", Параметры_); + Категории = Ответ["response"]["items"]; - ДобавитьДополнительныеФотоТовара(ДопФото, Параметры_); + СоответствиеКатегорий = Новый Соответствие; - Для Каждого Поле Из ПолучитьСоответствиеПараметровТовара() Цикл - Параметры_.Вставить(Поле.Значение, ОписаниеТовара[Поле.Ключ]); + Для Каждого Категория Из Категории Цикл + СоответствиеКатегорий.Вставить(Категория["id"], Категория["name"]); КонецЦикла; - - Ответ = OPI_Инструменты.Get("api.vk.com/method/market.add", Параметры_); - ИДТовара = Ответ["response"]["market_item_id"]; - ИДТовара = OPI_Инструменты.ЧислоВСтроку(ИДТовара); + + Возврат СоответствиеКатегорий; - Если ЗначениеЗаполнено(Подборка) Тогда - ОтветПодборки = ДобавитьТоварВПодборку(ИДТовара, Подборка, Параметры_); +КонецФункции + +Функция ПолучитьСписокТоваров(Знач Альбом = "", Знач Параметры = "") Экспорт + + Параметры_ = ПолучитьСтандартныеПараметры(Параметры); + Параметры_.Вставить("count" , 200); + Параметры_.Вставить("extended" , 1); + Параметры_.Вставить("with_disabled", 1); + + Если ЗначениеЗаполнено(Альбом) Тогда + Параметры_.Вставить("album_id", OPI_Инструменты.ЧислоВСтроку(Альбом)); КонецЕсли; + МассивТоваров = Новый Массив; + ПолучитьСписокТоваровРекурсивно(МассивТоваров, Параметры_); + + Возврат МассивТоваров; + +КонецФункции + +Функция ПолучитьТоварыПоИД(Знач Товары, Знач Параметры = "") Экспорт + + Параметры_ = ПолучитьСтандартныеПараметры(Параметры); + СтрокаТоваров = ""; + + Если ТипЗнч(Товары) <> Тип("Массив") Тогда + Товар = Товары; + Товары = Новый Массив; + Товары.Добавить(Товар); + КонецЕсли; + + Для Каждого Товар Из Товары Цикл + ТекущийТовар = Параметры["owner_id"] + "_" + Товар; + ТекущийТовар = OPI_Инструменты.ЧислоВСтроку(ТекущийТовар); + СтрокаТоваров = СтрокаТоваров + ТекущийТовар + ","; + КонецЦикла; + + СтрокаТоваров = Лев(СтрокаТоваров, СтрДлина(СтрокаТоваров) - 1); + Параметры_.Вставить("item_ids", СтрокаТоваров); + Параметры_.Вставить("extended", 1); + + Ответ = OPI_Инструменты.Get("api.vk.com/method/market.getById", Параметры_); + Возврат Ответ; - + +КонецФункции + +Функция ДобавитьТовар(Знач ОписаниеТовара, Знач Подборка = "", Знач Параметры = "") Экспорт + Возврат УправлениеТоваром(ОписаниеТовара, , Подборка, Параметры); +КонецФункции + +Функция ИзменитьТовар(Знач ИДТовара, Знач ОписаниеТовара, Знач Подборка = "", Знач Параметры = "") Экспорт + Возврат УправлениеТоваром(ОписаниеТовара, ИДТовара, Подборка, Параметры); КонецФункции Функция УдалитьТовар(Знач Товар, Знач Параметры = "") Экспорт @@ -831,6 +870,29 @@ КонецФункции +Функция СгруппироватьТовары(Знач МассивТоваров, Знач СуществующаяГруппа = "", Знач Параметры = "") Экспорт + + Параметры_ = ПолучитьСтандартныеПараметры(Параметры); + МассивТоваров_ = Новый Массив; + + Для Каждого Товар Из МассивТоваров Цикл + МассивТоваров_.Добавить(OPI_Инструменты.ЧислоВСтроку(Товар)); + КонецЦикла; + + Товары = СтрСоединить(МассивТоваров_, ","); + + Параметры_.Вставить("item_ids", Товары); + + Если ЗначениеЗаполнено(СуществующаяГруппа) Тогда + Параметры_.Вставить("item_group_id", OPI_Инструменты.ЧислоВСтроку(СуществующаяГруппа)); + КонецЕсли; + + Ответ = OPI_Инструменты.Get("api.vk.com/method/market.groupItems", Параметры_); + + Возврат Ответ; + +КонецФункции + Функция ПолучитьОписаниеТовара() Экспорт Товар = Новый Соответствие(); @@ -856,29 +918,47 @@ КонецФункции -Функция ПолучитьСписокКатегорийТоваров(Знач Параметры = "") Экспорт +#КонецОбласти + +#Область РаботаСПодборкамиТоваров + +Функция ПолучитьСписокПодборок(Знач Параметры = "") Экспорт Параметры_ = ПолучитьСтандартныеПараметры(Параметры); - Ответ = OPI_Инструменты.Get("api.vk.com/method/market.getCategories", Параметры_); - Количество = Ответ["response"]["count"]; + Параметры_.Вставить("count", 100); - Параметры_.Вставить("count", Количество); - Ответ = OPI_Инструменты.Get("api.vk.com/method/market.getCategories", Параметры_); - Категории = Ответ["response"]["items"]; + МассивАльбомов = Новый Массив; + ПолучитьСписокАльбомовРекурсивно(МассивАльбомов, Параметры_); - СоответствиеКатегорий = Новый Соответствие; - - Для Каждого Категория Из Категории Цикл - СоответствиеКатегорий.Вставить(Категория["id"], Категория["name"]); - КонецЦикла; - - Возврат СоответствиеКатегорий; + Возврат МассивАльбомов; КонецФункции -#КонецОбласти - -#Область РаботаСПодборками +Функция ПолучитьПодборкиПоИД(Знач Подборки, Знач Параметры = "") Экспорт + + Параметры_ = ПолучитьСтандартныеПараметры(Параметры); + СтрокаПодборок = ""; + + Если ТипЗнч(Подборки) <> Тип("Массив") Тогда + Подборка = Подборки; + Подборки = Новый Массив; + Подборки.Добавить(Подборка); + КонецЕсли; + + Для Каждого Подборка Из Подборки Цикл + //ТекущаяПодборка = Параметры["owner_id"] + "_" + Товар; + ТекущаяПодборка = OPI_Инструменты.ЧислоВСтроку(Подборка); + СтрокаПодборок = СтрокаПодборок + ТекущаяПодборка + ","; + КонецЦикла; + + СтрокаПодборок = Лев(СтрокаПодборок, СтрДлина(СтрокаПодборок) - 1); + Параметры_.Вставить("album_ids", СтрокаПодборок); + + Ответ = OPI_Инструменты.Get("api.vk.com/method/market.getAlbumById", Параметры_); + + Возврат Ответ; + +КонецФункции Функция СоздатьПодборкуТоваров(Знач Название , Знач Картинка @@ -886,20 +966,19 @@ , Знач Скрытая = Ложь , Знач Параметры = "") Экспорт - Параметры_ = ПолучитьСтандартныеПараметры(Параметры); - Ответ = ЗагрузитьФотоНаСервер(Картинка, Параметры_, "Товар"); - ИДФото = Ответ["response"]["photo_id"]; - ИДФото = OPI_Инструменты.ЧислоВСтроку(ИДФото); - - Параметры_.Вставить("photo_id" , ИДФото); - Параметры_.Вставить("title" , Название); - Параметры_.Вставить("main_album" , ?(Основная, 1, 0)); - Параметры_.Вставить("is_hidden" , ?(Скрытая, 1, 0)); + Возврат УправлениеПодборкой(Название, Картинка, , Основная, Скрытая, Параметры); - Ответ = OPI_Инструменты.Get("api.vk.com/method/market.addAlbum", Параметры_); - - Возврат Ответ; +КонецФункции +Функция ИзменитьПодборкуТоваров(Знач Название + , Знач Подборка + , Знач Картинка = "" + , Знач Основная = Ложь + , Знач Скрытая = Ложь + , Знач Параметры = "") Экспорт + + Возврат УправлениеПодборкой(Название, Картинка, Подборка, Основная, Скрытая, Параметры); + КонецФункции Функция ДобавитьТоварВПодборку(Знач МассивТовар, Знач Подборка, Знач Параметры = "") Экспорт @@ -931,6 +1010,20 @@ КонецФункции +Функция УдалитьТоварИзПодборки(Знач Товар, Знач Подборка, Знач Параметры = "") Экспорт + + Параметры_ = ПолучитьСтандартныеПараметры(Параметры); + Подборка = OPI_Инструменты.ЧислоВСтроку(Подборка); + + Параметры_.Вставить("item_id" , OPI_Инструменты.ЧислоВСтроку(Товар)); + Параметры_.Вставить("album_ids", Подборка); + + Ответ = OPI_Инструменты.Get("api.vk.com/method/market.removeFromAlbum", Параметры_); + + Возврат Ответ; + +КонецФункции + Функция УдалитьПодборку(Знач Подборка, Знач Параметры = "") Экспорт Подборка = OPI_Инструменты.ЧислоВСтроку(Подборка); @@ -948,6 +1041,17 @@ #Область РаботаСоСвойствамиТоваров +Функция ПолучитьСписокСвойств(Знач Параметры = "") Экспорт + + Параметры_ = ПолучитьСтандартныеПараметры(Параметры); + + Ответ = OPI_Инструменты.Get("api.vk.com/method/market.getProperties", Параметры_); + Свойства = Ответ["response"]["items"]; + + Возврат Свойства; + +КонецФункции + Функция СоздатьСвойствоТовара(Знач Название, Знач Параметры = "") Экспорт Параметры_ = ПолучитьСтандартныеПараметры(Параметры); @@ -970,11 +1074,24 @@ КонецФункции +Функция ИзменитьСвойствоТовара(Знач Название, Знач Свойство, Знач Параметры = "") Экспорт + + Параметры_ = ПолучитьСтандартныеПараметры(Параметры); + Параметры_.Вставить("title" , Название); + Параметры_.Вставить("property_id", OPI_Инструменты.ЧислоВСтроку(Свойство)); + Параметры_.Вставить("type" , "text"); + + Ответ = OPI_Инструменты.Get("api.vk.com/method/market.editProperty", Параметры_); + + Возврат Ответ; + +КонецФункции + Функция ДобавитьВариантСвойстваТовара(Знач Значение, Знач Свойство, Знач Параметры = "") Экспорт Параметры_ = ПолучитьСтандартныеПараметры(Параметры); Параметры_.Вставить("property_id", OPI_Инструменты.ЧислоВСтроку(Свойство)); - Параметры_.Вставить("title" , Свойство); + Параметры_.Вставить("title" , Значение); Ответ = OPI_Инструменты.Get("api.vk.com/method/market.addPropertyVariant", Параметры_); @@ -982,6 +1099,19 @@ КонецФункции +Функция ИзменитьВариантСвойстваТовара(Знач Значение, Знач Свойство, Знач Вариант, Знач Параметры = "") Экспорт + + Параметры_ = ПолучитьСтандартныеПараметры(Параметры); + Параметры_.Вставить("property_id", OPI_Инструменты.ЧислоВСтроку(Свойство)); + Параметры_.Вставить("variant_id" , OPI_Инструменты.ЧислоВСтроку(Вариант)); + Параметры_.Вставить("title" , Значение); + + Ответ = OPI_Инструменты.Get("api.vk.com/method/market.editPropertyVariant", Параметры_); + + Возврат Ответ; + +КонецФункции + Функция УдалитьВариантСвойстваТовара(Знач Вариант, Знач Параметры = "") Экспорт Параметры_ = ПолучитьСтандартныеПараметры(Параметры); @@ -1149,19 +1279,99 @@ Поля.Вставить("СтараяЦена" , "old_price"); Поля.Вставить("URL" , "url"); Поля.Вставить("ГлавныйВГруппе" , "is_main_variant"); - Поля.Вставить("НомерГруппы" , "variant_ids"); Поля.Вставить("Ширина" , "dimension_width"); Поля.Вставить("Высота" , "dimension_height"); Поля.Вставить("Глубина" , "dimension_length"); Поля.Вставить("Вес" , "weight"); Поля.Вставить("SKU" , "sku"); Поля.Вставить("ДоступныйОстаток" , "stock_amount"); - Поля.Вставить("ЗначенияСвойств" , "variant_ids"); - + Возврат Поля; КонецФункции +Функция УправлениеТоваром(Знач ОписаниеТовара, Знач ИДТовара = "", Знач Подборка = "", Знач Параметры = "") + + Параметры_ = ПолучитьСтандартныеПараметры(Параметры); + Параметры_.Вставить("v", "5.199"); + + Подборка = OPI_Инструменты.ЧислоВСтроку(Подборка); + + ЗаполнитьПоляЗапросаТовара(ОписаниеТовара, Параметры_); + + Если ЗначениеЗаполнено(ИДТовара) Тогда + Параметры_.Вставить("item_id", OPI_Инструменты.ЧислоВСтроку(ИДТовара)); + Метод = "edit"; + Иначе + Метод = "add"; + КонецЕсли; + + Ответ = OPI_Инструменты.Get("api.vk.com/method/market." + Метод, Параметры_); + + Если Не ЗначениеЗаполнено(ИДТовара) Тогда + ИДТовара = Ответ["response"]["market_item_id"]; + ИДТовара = OPI_Инструменты.ЧислоВСтроку(ИДТовара); + КонецЕсли; + + Если ЗначениеЗаполнено(Подборка) Тогда + ОтветПодборки = ДобавитьТоварВПодборку(ИДТовара, Подборка, Параметры_); + КонецЕсли; + + Возврат Ответ; + +КонецФункции + +Функция УправлениеПодборкой(Знач Название + , Знач Картинка = "" + , Знач ИДПодборки = "" + , Знач Основная = Ложь + , Знач Скрытая = Ложь + , Знач Параметры = "") + + Параметры_ = ПолучитьСтандартныеПараметры(Параметры); + + Если ЗначениеЗаполнено(Картинка) Тогда + + Ответ = ЗагрузитьФотоНаСервер(Картинка, Параметры_, "Товар"); + ИДФото = Ответ["response"]["photo_id"]; + ИДФото = OPI_Инструменты.ЧислоВСтроку(ИДФото); + + Параметры_.Вставить("photo_id", ИДФото); + + Иначе + + Если ЗначениеЗаполнено(ИДПодборки) Тогда + + Подборки = OPI_VK.ПолучитьПодборкиПоИД(ИДПодборки, Параметры_); + Подборки = Подборки["response"]["items"]; + + Если Не Подборки.Количество() = 0 Тогда + ИДФото = Подборки[0]["photo"]["id"]; + ИДФото = OPI_Инструменты.ЧислоВСтроку(ИДФото); + Параметры_.Вставить("photo_id", ИДФото); + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + + Параметры_.Вставить("title" , Название); + Параметры_.Вставить("main_album" , ?(Основная, 1, 0)); + Параметры_.Вставить("is_hidden" , ?(Скрытая, 1, 0)); + + Если ЗначениеЗаполнено(ИДПодборки) Тогда + Параметры_.Вставить("album_id", OPI_Инструменты.ЧислоВСтроку(ИДПодборки)); + Метод = "editAlbum"; + Иначе + Метод = "addAlbum"; + КонецЕсли; + + Ответ = OPI_Инструменты.Get("api.vk.com/method/market." + Метод, Параметры_); + + Возврат Ответ; + +КонецФункции + Процедура ЗаполнитьПараметрыЗагрузкиФото(Знач Метод, Знач Ответ, Параметры) Способ = Метод["Способ"]; @@ -1199,6 +1409,49 @@ КонецПроцедуры +Процедура ЗаполнитьПоляЗапросаТовара(Знач ОписаниеТовара, Параметры) + + ОсновноеФото = ОписаниеТовара["ОсновноеФото"]; + ДопФото = ОписаниеТовара["ДополнительныеФото"]; + Свойства = ОписаниеТовара["ЗначенияСвойств"]; + + Если ЗначениеЗаполнено(ОсновноеФото) Тогда + Ответ = ЗагрузитьФотоНаСервер(ОсновноеФото, Параметры, "Товар"); + ИДФото = Ответ["response"]["photo_id"]; + ИДФото = OPI_Инструменты.ЧислоВСтроку(ИДФото); + Параметры.Вставить("main_photo_id", ИДФото); + КонецЕсли; + + Если ТипЗнч(Свойства) = Тип("Массив") Тогда + + Свойства_ = Новый Массив; + + Для Каждого Свойство Из Свойства Цикл + Свойства_.Добавить(OPI_Инструменты.ЧислоВСтроку(Свойство)); + КонецЦикла; + + Свойства = СтрСоединить(Свойства_, ","); + + КонецЕсли; + + Если ЗначениеЗаполнено(Свойства) Тогда + Параметры.Вставить("variant_ids", OPI_Инструменты.ЧислоВСтроку(Свойства)); + КонецЕсли; + + ДобавитьДополнительныеФотоТовара(ДопФото, Параметры); + + Для Каждого Поле Из ПолучитьСоответствиеПараметровТовара() Цикл + + Значение = ОписаниеТовара[Поле.Ключ]; + + Если Значение <> Неопределено Тогда + Параметры.Вставить(Поле.Значение, ОписаниеТовара[Поле.Ключ]); + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + Процедура ДобавитьДополнительныеФотоТовара(Знач МассивФото, Параметры) Если ТипЗнч(МассивФото) = Тип("Массив") Тогда @@ -1222,4 +1475,44 @@ КонецПроцедуры +Процедура ПолучитьСписокТоваровРекурсивно(МассивТоваров, Параметры, Сдвиг = 0) + + МаксимумВЗапросе = 200; + Ответ = OPI_Инструменты.Get("api.vk.com/method/market.get", Параметры); + Товары = Ответ["response"]["items"]; + + Если Товары.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + Для Каждого Товар Из Товары Цикл + МассивТоваров.Добавить(Товар); + КонецЦикла; + + Сдвиг = Сдвиг + МаксимумВЗапросе; + Параметры.Вставить("offset", Сдвиг); + ПолучитьСписокТоваровРекурсивно(МассивТоваров, Параметры, Сдвиг); + +КонецПроцедуры + +Процедура ПолучитьСписокАльбомовРекурсивно(МассивАльбомов, Параметры, Сдвиг = 0) + + МаксимумВЗапросе = 100; + Ответ = OPI_Инструменты.Get("api.vk.com/method/market.getAlbums", Параметры); + Альбомы = Ответ["response"]["items"]; + + Если Альбомы.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + Для Каждого Альбом Из Альбомы Цикл + МассивАльбомов.Добавить(Альбом); + КонецЦикла; + + Сдвиг = Сдвиг + МаксимумВЗапросе; + Параметры.Вставить("offset", Сдвиг); + ПолучитьСписокАльбомовРекурсивно(МассивАльбомов, Параметры, Сдвиг); + +КонецПроцедуры + #КонецОбласти \ No newline at end of file diff --git a/OPI/src/CommonModules/YAX_Тесты/Module.bsl b/OPI/src/CommonModules/YAX_Тесты/Module.bsl index 913274b8bd..8257c81847 100644 --- a/OPI/src/CommonModules/YAX_Тесты/Module.bsl +++ b/OPI/src/CommonModules/YAX_Тесты/Module.bsl @@ -42,6 +42,10 @@ .ДобавитьСерверныйТест("ВК_ОтправитьСообщение" , "Отправить сообщение") .ДобавитьСерверныйТест("ВК_ПолучитьКатегорииТоваров" , "Получить категории товаров") .ДобавитьСерверныйТест("ВК_СоздатьТоварПодборку" , "Создать товар и подборку") + .ДобавитьСерверныйТест("ВК_СоздатьТоварСоСвойствами" , "Создать товар со свойствами") + .ДобавитьСерверныйТест("ВК_ПолучитьСписокТоваров" , "Получить список товаров") + .ДобавитьСерверныйТест("ВК_ПолучитьСписокПодборок" , "Получить список подборок") + .ДобавитьСерверныйТест("ВК_ПолучитьСписокСвойств" , "Получить список свойств") .ДобавитьТестовыйНабор("Яндекс.Диск") .ДобавитьСерверныйТест("ЯДиск_ПолучитьИнформациюОДиске" , "Получить информацию о диске") @@ -890,15 +894,23 @@ , Картинка , Истина , Ложь - , Параметры); + , Параметры); + ЮТОбщий.Пауза(5); ЮТест.ОжидаетЧто(Результат) .ИмеетТип("Соответствие") .Свойство("response.albums_count").ИмеетТип("Число").Заполнено() .Свойство("response.market_album_id").ИмеетТип("Число").Заполнено(); - + ИДПодборки = Результат["response"]["market_album_id"]; - + + Результат = OPI_VK.ИзменитьПодборкуТоваров("Измененная подборка", ИДПодборки, , , , Параметры); + ЮТОбщий.Пауза(5); + + ЮТест.ОжидаетЧто(Результат) + .ИмеетТип("Соответствие") + .Свойство("response").ИмеетТип("Число").Равно(1); + МассивКартинок = Новый Массив; МассивКартинок.Добавить(ИВФ); МассивКартинок.Добавить(Картинка); @@ -929,19 +941,38 @@ ИДТовара = Результат["response"]["market_item_id"]; + Товар = Новый Соответствие; + Товар.Вставить("Имя", "Тестовый товар измененный"); + + Результат = OPI_VK.ИзменитьТовар(ИДТовара, Товар, , Параметры); // Изменение товара + + ЮТест.ОжидаетЧто(Результат) + .ИмеетТип("Соответствие") + .Свойство("response").ИмеетТип("Число").Равно(1); + Результат = OPI_VK.ДобавитьТоварВПодборку(ИДТовара, ИДПодборки, Параметры); // Добавление в подборку + ЮТОбщий.Пауза(5); ЮТест.ОжидаетЧто(Результат) .ИмеетТип("Соответствие") .Свойство("response").ИмеетТип("Число").Заполнено(); + Результат = OPI_VK.УдалитьТоварИзПодборки(ИДТовара, ИДПодборки, Параметры); // Удаляет из подборки + ЮТОбщий.Пауза(5); + + ЮТест.ОжидаетЧто(Результат) + .ИмеетТип("Соответствие") + .Свойство("response").ИмеетТип("Число").Равно(1); + Результат = OPI_VK.УдалитьТовар(ИДТовара, Параметры); // Удаление товара + ЮТОбщий.Пауза(5); ЮТест.ОжидаетЧто(Результат) .ИмеетТип("Соответствие") .Свойство("response").ИмеетТип("Число").Равно(1); Результат = OPI_VK.УдалитьПодборку(ИДПодборки, Параметры); // Уадление подборки + ЮТОбщий.Пауза(5); ЮТест.ОжидаетЧто(Результат) .ИмеетТип("Соответствие") @@ -962,16 +993,136 @@ МассивВариантов.Добавить("Красный"); Результат = OPI_VK.СоздатьСвойствоТовара("Цвет", Параметры); + Свойство = Результат["response"]["property_id"]; + Свойство = OPI_Инструменты.ЧислоВСтроку(Свойство); + + СоответствиеСвойств = Новый Соответствие; + ЮТест.ОжидаетЧто(Результат) + .ИмеетТип("Соответствие") + .Свойство("response.property_id").ИмеетТип("Число").Заполнено(); + + Результат = OPI_VK.ИзменитьСвойствоТовара("Цвет (изм.)", Свойство, Параметры); + + ЮТест.ОжидаетЧто(Результат) + .ИмеетТип("Соответствие") + .Заполнено() + .Свойство("response").ИмеетТип("Число").Равно(1); + Для Каждого Вариант Из МассивВариантов Цикл + Результат = OPI_VK.ДобавитьВариантСвойстваТовара(Вариант, Свойство, Параметры); + ЮТест.ОжидаетЧто(Результат) + .ИмеетТип("Соответствие") + .Свойство("response.variant_id").ИмеетТип("Число").Заполнено(); + + ИДВарианта = Результат["response"]["variant_id"]; + СоответствиеСвойств.Вставить(Вариант, ИДВарианта); + + Результат = OPI_VK.ИзменитьВариантСвойстваТовара(Вариант + " (изм.)" + , Свойство + , ИДВарианта + , Параметры); + + ЮТест.ОжидаетЧто(Результат) + .ИмеетТип("Соответствие") + .Заполнено() + .Свойство("response").ИмеетТип("Число").Равно(1); + КонецЦикла; МассивКартинок = Новый Массив; МассивКартинок.Добавить(ИВФ); МассивКартинок.Добавить(Картинка); + Товар = Новый Соответствие(); + Товар.Вставить("Имя" , "Тестовый товар (" + "Желтый" + ")"); + Товар.Вставить("Описание" , "Описание товара"); + Товар.Вставить("Категория" , "20173"); + Товар.Вставить("Цена" , 1); + Товар.Вставить("СтараяЦена" , 15); + Товар.Вставить("ОсновноеФото" , Картинка); + Товар.Вставить("URL" , "https://github.com/Bayselonarrend/OpenIntegrations"); + Товар.Вставить("ДополнительныеФото" , МассивКартинок); + Товар.Вставить("ГлавныйВГруппе" , Истина); + Товар.Вставить("НомерГруппы" , Неопределено); + Товар.Вставить("Ширина" , 20); + Товар.Вставить("Высота" , 30); + Товар.Вставить("Глубина" , 40); + Товар.Вставить("Вес" , 100); + Товар.Вставить("SKU" , 12345); + Товар.Вставить("ДоступныйОстаток" , "10"); + Товар.Вставить("ЗначенияСвойств" , СоответствиеСвойств["Желтый"]); + + Результат = OPI_VK.ДобавитьТовар(Товар, , Параметры); // Добавление товара + ЮТОбщий.Пауза(10); + + ИДЖелтого = Результат["response"]["market_item_id"]; + + ЮТест.ОжидаетЧто(Результат) + .ИмеетТип("Соответствие") + .Свойство("response.market_item_id").ИмеетТип("Число").Заполнено(); + + Товар.Вставить("Имя" , "Тестовый товар (" + "Красный" + ")"); + Товар.Вставить("ЗначенияСвойств", СоответствиеСвойств["Красный"]); + + Результат = OPI_VK.ДобавитьТовар(Товар, , Параметры); // Добавление товара + ЮТОбщий.Пауза(10); + + ИДКрасного = Результат["response"]["market_item_id"]; + + ЮТест.ОжидаетЧто(Результат) + .ИмеетТип("Соответствие") + .Свойство("response.market_item_id").ИмеетТип("Число").Заполнено(); + + МассивТоваров = Новый Массив; + МассивТоваров.Добавить(ИДЖелтого); + МассивТоваров.Добавить(ИДКрасного); + + Результат = OPI_VK.ПолучитьТоварыПоИД(МассивТоваров, Параметры); + + ЮТест.ОжидаетЧто(Результат) + .ИмеетТип("Соответствие") + .Свойство("response.items").ИмеетТип("Массив").ИмеетДлину(2); + + Результат = OPI_VK.СгруппироватьТовары(МассивТоваров, , Параметры); + + ЮТест.ОжидаетЧто(Результат) + .ИмеетТип("Соответствие") + .Свойство("response.item_group_id").ИмеетТип("Число").Заполнено(); + + OPI_VK.УдалитьТовар(ИДЖелтого , Параметры); + OPI_VK.УдалитьТовар(ИДКрасного, Параметры); + + Для Каждого Вариант Из СоответствиеСвойств Цикл + + Удаление = OPI_VK.УдалитьВариантСвойстваТовара(Вариант.Значение, Параметры); + + ЮТест.ОжидаетЧто(Удаление) + .ИмеетТип("Соответствие") + .Заполнено() + .Свойство("response").ИмеетТип("Число").Равно(1); + + КонецЦикла; + + Удаление = OPI_VK.УдалитьСвойствоТовара(Свойство, Параметры); + + ЮТест.ОжидаетЧто(Удаление) + .ИмеетТип("Соответствие") + .Заполнено() + .Свойство("response").ИмеетТип("Число").Равно(1); + +Конецпроцедуры + +Процедура ВК_ПолучитьСписокТоваров() Экспорт + + Параметры = ПолучитьПараметрыВК(); + Картинка = ПолучитьДвоичные("Картинка"); + + МассивКартинок = Новый Массив; + МассивКартинок.Добавить(Картинка); + Товар = Новый Соответствие(); Товар.Вставить("Имя" , "Тестовый товар 2"); Товар.Вставить("Описание" , "Описание товара"); @@ -990,16 +1141,52 @@ Товар.Вставить("SKU" , 12345); Товар.Вставить("ДоступныйОстаток" , "10"); - Результат = OPI_VK.ДобавитьТовар(Товар, , Параметры); // Добавление товара + Результат = OPI_VK.ДобавитьТовар(Товар, , Параметры); + ИДТовара = Результат["response"]["market_item_id"]; + ЮТОбщий.Пазуа(5); + + Результат = OPI_VK.ПолучитьСписокТоваров(, Параметры); + ЮТОбщий.Пазуа(5); ЮТест.ОжидаетЧто(Результат) - .ИмеетТип("Соответствие") - .Свойство("response.market_item_id").ИмеетТип("Число").Заполнено(); - - ИДТовара = Результат["response"]["market_item_id"]; - OPI_VK.УдалитьТовар(ИДТовара, Параметры); // Удаление товара + .ИмеетТип("Массив").Заполнено(); + + OPI_VK.УдалитьТовар(ИДТовара, Параметры); + +КонецПроцедуры + +Процедура ВК_ПолучитьСписокПодборок() Экспорт + + Параметры = ПолучитьПараметрыВК(); + Картинка = ПолучитьДвоичные("Картинка"); + Результат = OPI_VK.СоздатьПодборкуТоваров("Тестовая подборка" + , Картинка + , Истина + , Ложь + , Параметры); + + ИДПодборки = Результат["response"]["market_album_id"]; + Результат = OPI_VK.ПолучитьСписокПодборок(Параметры); + ЮТОбщий.Пазуа(5); + + ЮТест.ОжидаетЧто(Результат) + .ИмеетТип("Массив").Заполнено(); + + OPI_VK.УдалитьПодборку(ИДПодборки, Параметры); + +КонецПроцедуры + +Процедура ВК_ПолучитьСписокСвойств() Экспорт + + Параметры = ПолучитьПараметрыВК(); + Результат = OPI_VK.ПолучитьСписокСвойств(Параметры); + ЮТОбщий.Пазуа(5); + + ЮТест.ОжидаетЧто(Результат) + .ИмеетТип("Массив").Заполнено(); + +КонецПроцедуры -Конецпроцедуры #КонецОбласти #Область YandexDisk