You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-08-10 22:41:43 +02:00
VK: товары, подборки, свойства товаров
This commit is contained in:
@@ -784,11 +784,14 @@
|
||||
|
||||
#Область РаботаСТоварами
|
||||
|
||||
Функция ДобавитьТовар(Знач ОписаниеТовара, Знач Параметры = "") Экспорт
|
||||
Функция ДобавитьТовар(Знач ОписаниеТовара, Знач Подборка = "", Знач Параметры = "") Экспорт
|
||||
|
||||
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
||||
Параметры_.Вставить("v", "5.199");
|
||||
|
||||
ОсновноеФото = ОписаниеТовара["ОсновноеФото"];
|
||||
ДопФото = ОписаниеТовара["ДополнительныеФото"];
|
||||
Подборка = OPI_Инструменты.ЧислоВСтроку(Подборка);
|
||||
|
||||
Если ЗначениеЗаполнено(ОсновноеФото) Тогда
|
||||
Ответ = ЗагрузитьФотоНаСервер(ОсновноеФото, Параметры_, "Товар");
|
||||
@@ -796,12 +799,33 @@
|
||||
ИДФото = OPI_Инструменты.ЧислоВСтроку(ИДФото);
|
||||
Параметры_.Вставить("main_photo_id", ИДФото);
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
ДобавитьДополнительныеФотоТовара(ДопФото, Параметры_);
|
||||
|
||||
Для Каждого Поле Из ПолучитьСоответствиеПараметровТовара() Цикл
|
||||
Параметры_.Вставить(Поле.Значение, ОписаниеТовара[Поле.Ключ]);
|
||||
КонецЦикла;
|
||||
|
||||
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.add", Параметры_);
|
||||
|
||||
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.add", Параметры_);
|
||||
ИДТовара = Ответ["response"]["market_item_id"];
|
||||
ИДТовара = OPI_Инструменты.ЧислоВСтроку(ИДТовара);
|
||||
|
||||
Если ЗначениеЗаполнено(Подборка) Тогда
|
||||
ОтветПодборки = ДобавитьТоварВПодборку(ИДТовара, Подборка, Параметры_);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция УдалитьТовар(Знач Товар, Знач Параметры = "") Экспорт
|
||||
|
||||
Товар = OPI_Инструменты.ЧислоВСтроку(Товар);
|
||||
|
||||
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
||||
Параметры_.Вставить("item_id", Товар);
|
||||
|
||||
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.delete", Параметры_);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
@@ -812,20 +836,21 @@
|
||||
Товар = Новый Соответствие();
|
||||
Товар.Вставить("Имя" , "Новый товар"); // Имя товара
|
||||
Товар.Вставить("Описание" , "Описание товара"); // Описание товара
|
||||
Товар.Вставить("Категория" , "1210"); // См ПолучитьСписокКатегорийТоваров()
|
||||
Товар.Вставить("Категория" , "20173"); // См ПолучитьСписокКатегорийТоваров()
|
||||
Товар.Вставить("Цена" , 1); // Цена в руб.
|
||||
Товар.Вставить("СтараяЦена" , Неопределено); // Для отражения изменения цены
|
||||
Товар.Вставить("ОсновноеФото" , Неопределено); // ДД или путь к осн. фото
|
||||
Товар.Вставить("Удален" , Ложь); // Признак неактивности
|
||||
Товар.Вставить("URL" , Неопределено); // Ссылка на страницу магазина
|
||||
Товар.Вставить("ДополнительныеФото" , Новый Массив); // Массив путей или ДД для доп. фото
|
||||
Товар.Вставить("ЗначенияСвойств" , Новый Массив); // Значения свойств (варианты). Максимум 2
|
||||
Товар.Вставить("ГлавныйВГруппе" , Ложь); // Сделать главным в своей группе
|
||||
Товар.Вставить("НомерГруппы" , Неопределено);
|
||||
Товар.Вставить("Ширина" , Неопределено); // В миллиметрах
|
||||
Товар.Вставить("Высота" , Неопределено); // В миллиметрах
|
||||
Товар.Вставить("Глубина" , Неопределено); // В миллиметрах
|
||||
Товар.Вставить("Вес" , Неопределено); // В граммах
|
||||
Товар.Вставить("SKU" , Неопределено);
|
||||
Товар.Вставить("SKU" , Неопределено); // Артикул
|
||||
Товар.Вставить("ДоступныйОстаток" , 1);
|
||||
|
||||
Возврат Товар;
|
||||
|
||||
@@ -853,6 +878,123 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область РаботаСПодборками
|
||||
|
||||
Функция СоздатьПодборкуТоваров(Знач Название
|
||||
, Знач Картинка
|
||||
, Знач Основная = Ложь
|
||||
, Знач Скрытая = Ложь
|
||||
, Знач Параметры = "") Экспорт
|
||||
|
||||
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
||||
Ответ = ЗагрузитьФотоНаСервер(Картинка, Параметры_, "Товар");
|
||||
ИДФото = Ответ["response"]["photo_id"];
|
||||
ИДФото = OPI_Инструменты.ЧислоВСтроку(ИДФото);
|
||||
|
||||
Параметры_.Вставить("photo_id" , ИДФото);
|
||||
Параметры_.Вставить("title" , Название);
|
||||
Параметры_.Вставить("main_album" , ?(Основная, 1, 0));
|
||||
Параметры_.Вставить("is_hidden" , ?(Скрытая, 1, 0));
|
||||
|
||||
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.addAlbum", Параметры_);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ДобавитьТоварВПодборку(Знач МассивТовар, Знач Подборка, Знач Параметры = "") Экспорт
|
||||
|
||||
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
||||
Подборка = OPI_Инструменты.ЧислоВСтроку(Подборка);
|
||||
МассивТовар_ = Новый Массив;
|
||||
|
||||
Если Не ТипЗнч(МассивТовар) = Тип("Массив") Тогда
|
||||
|
||||
Товар = МассивТовар;
|
||||
МассивТовар = Новый Массив;
|
||||
МассивТовар.Добавить(Товар);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Товар Из МассивТовар Цикл
|
||||
МассивТовар_.Добавить(OPI_Инструменты.ЧислоВСтроку(Товар));
|
||||
КонецЦикла;
|
||||
|
||||
СписокТоваров = СтрСоединить(МассивТовар_, ",");
|
||||
|
||||
Параметры_.Вставить("item_ids" , СписокТоваров);
|
||||
Параметры_.Вставить("album_ids", Подборка);
|
||||
|
||||
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.addToAlbum", Параметры_);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция УдалитьПодборку(Знач Подборка, Знач Параметры = "") Экспорт
|
||||
|
||||
Подборка = OPI_Инструменты.ЧислоВСтроку(Подборка);
|
||||
|
||||
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
||||
Параметры_.Вставить("album_id", Подборка);
|
||||
|
||||
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.deleteAlbum", Параметры_);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область РаботаСоСвойствамиТоваров
|
||||
|
||||
Функция СоздатьСвойствоТовара(Знач Название, Знач Параметры = "") Экспорт
|
||||
|
||||
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
||||
Параметры_.Вставить("title", Название);
|
||||
|
||||
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.addProperty", Параметры_);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция УдалитьСвойствоТовара(Знач Свойство, Знач Параметры = "") Экспорт
|
||||
|
||||
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
||||
Параметры_.Вставить("property_id", OPI_Инструменты.ЧислоВСтроку(Свойство));
|
||||
|
||||
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.deleteProperty", Параметры_);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ДобавитьВариантСвойстваТовара(Знач Значение, Знач Свойство, Знач Параметры = "") Экспорт
|
||||
|
||||
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
||||
Параметры_.Вставить("property_id", OPI_Инструменты.ЧислоВСтроку(Свойство));
|
||||
Параметры_.Вставить("title" , Свойство);
|
||||
|
||||
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.addPropertyVariant", Параметры_);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция УдалитьВариантСвойстваТовара(Знач Вариант, Знач Параметры = "") Экспорт
|
||||
|
||||
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
||||
Параметры_.Вставить("variant_id", OPI_Инструменты.ЧислоВСтроку(Вариант));
|
||||
|
||||
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.deletePropertyVariant", Параметры_);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область Прочие
|
||||
|
||||
// Сформировать клавиатуру.
|
||||
@@ -1004,8 +1146,7 @@
|
||||
Поля.Вставить("Описание" , "description");
|
||||
Поля.Вставить("Категория" , "category_id");
|
||||
Поля.Вставить("Цена" , "price");
|
||||
Поля.Вставить("СтараяЦена" , "old_price");
|
||||
Поля.Вставить("Удален" , "deleted");
|
||||
Поля.Вставить("СтараяЦена" , "old_price");
|
||||
Поля.Вставить("URL" , "url");
|
||||
Поля.Вставить("ГлавныйВГруппе" , "is_main_variant");
|
||||
Поля.Вставить("НомерГруппы" , "variant_ids");
|
||||
@@ -1013,7 +1154,9 @@
|
||||
Поля.Вставить("Высота" , "dimension_height");
|
||||
Поля.Вставить("Глубина" , "dimension_length");
|
||||
Поля.Вставить("Вес" , "weight");
|
||||
Поля.Вставить("SKU" , "sku");
|
||||
Поля.Вставить("SKU" , "sku");
|
||||
Поля.Вставить("ДоступныйОстаток" , "stock_amount");
|
||||
Поля.Вставить("ЗначенияСвойств" , "variant_ids");
|
||||
|
||||
Возврат Поля;
|
||||
|
||||
@@ -1056,4 +1199,27 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьДополнительныеФотоТовара(Знач МассивФото, Параметры)
|
||||
|
||||
Если ТипЗнч(МассивФото) = Тип("Массив") Тогда
|
||||
Если МассивФото.Количество() > 0 Тогда
|
||||
|
||||
СтрокаФотографий = "";
|
||||
|
||||
Для Каждого Фото Из МассивФото Цикл
|
||||
|
||||
Ответ = ЗагрузитьФотоНаСервер(Фото, Параметры, "Товар");
|
||||
ИДФото = Ответ["response"]["photo_id"];
|
||||
ИДФото = OPI_Инструменты.ЧислоВСтроку(ИДФото);
|
||||
СтрокаФотографий = СтрокаФотографий + ИДФото + ",";
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
СтрокаФотографий = Лев(СтрокаФотографий, СтрДлина(СтрокаФотографий) - 1);
|
||||
Параметры.Вставить("photo_ids", СтрокаФотографий);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
@@ -41,8 +41,8 @@
|
||||
.ДобавитьСерверныйТест("ВК_СоздатьРекламнуюКампанию" , "Создать рекламную кампанию")
|
||||
.ДобавитьСерверныйТест("ВК_ОтправитьСообщение" , "Отправить сообщение")
|
||||
.ДобавитьСерверныйТест("ВК_ПолучитьКатегорииТоваров" , "Получить категории товаров")
|
||||
.ДобавитьСерверныйТест("ВК_СоздатьТовар" , "Создать товар")
|
||||
|
||||
.ДобавитьСерверныйТест("ВК_СоздатьТоварПодборку" , "Создать товар и подборку")
|
||||
|
||||
.ДобавитьТестовыйНабор("Яндекс.Диск")
|
||||
.ДобавитьСерверныйТест("ЯДиск_ПолучитьИнформациюОДиске" , "Получить информацию о диске")
|
||||
.ДобавитьСерверныйТест("ЯДиск_СоздатьПапку" , "Создать папку")
|
||||
@@ -879,22 +879,127 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВК_СоздатьТовар() Экспорт
|
||||
Процедура ВК_СоздатьТоварПодборку() Экспорт
|
||||
|
||||
Параметры = ПолучитьПараметрыВК();
|
||||
Картинка = ПолучитьДвоичные("Картинка");
|
||||
Товар = OPI_VK.ПолучитьОписаниеТовара();
|
||||
|
||||
Товар.Вставить("ОсновноеФото", Картинка);
|
||||
ИВФ = ПолучитьИмяВременногоФайла("png");
|
||||
Картинка.Записать(ИВФ);
|
||||
|
||||
Результат = OPI_VK.ДобавитьТовар(Товар, Параметры);
|
||||
Результат = OPI_VK.СоздатьПодборкуТоваров("Тестовая подборка"
|
||||
, Картинка
|
||||
, Истина
|
||||
, Ложь
|
||||
, Параметры);
|
||||
|
||||
ЮТест.ОжидаетЧто(Результат)
|
||||
.ИмеетТип("Соответствие")
|
||||
.Свойство("response.albums_count").ИмеетТип("Число").Заполнено()
|
||||
.Свойство("response.market_album_id").ИмеетТип("Число").Заполнено();
|
||||
|
||||
ИДПодборки = Результат["response"]["market_album_id"];
|
||||
|
||||
МассивКартинок = Новый Массив;
|
||||
МассивКартинок.Добавить(ИВФ);
|
||||
МассивКартинок.Добавить(Картинка);
|
||||
|
||||
Товар = Новый Соответствие();
|
||||
Товар.Вставить("Имя" , "Тестовый товар 2");
|
||||
Товар.Вставить("Описание" , "Описание товара");
|
||||
Товар.Вставить("Категория" , "20173");
|
||||
Товар.Вставить("Цена" , 1);
|
||||
Товар.Вставить("СтараяЦена" , 15);
|
||||
Товар.Вставить("ОсновноеФото" , Картинка);
|
||||
Товар.Вставить("URL" , "https://github.com/Bayselonarrend/OpenIntegrations");
|
||||
Товар.Вставить("ДополнительныеФото" , МассивКартинок);
|
||||
Товар.Вставить("ГлавныйВГруппе" , Истина);
|
||||
Товар.Вставить("НомерГруппы" , Неопределено);
|
||||
Товар.Вставить("Ширина" , 20);
|
||||
Товар.Вставить("Высота" , 30);
|
||||
Товар.Вставить("Глубина" , 40);
|
||||
Товар.Вставить("Вес" , 100);
|
||||
Товар.Вставить("SKU" , 12345);
|
||||
Товар.Вставить("ДоступныйОстаток" , "10");
|
||||
|
||||
Результат = OPI_VK.ДобавитьТовар(Товар, ИДПодборки, Параметры); // Добавление товара
|
||||
|
||||
ЮТест.ОжидаетЧто(Результат)
|
||||
.ИмеетТип("Соответствие")
|
||||
.Свойство("response.market_item_id").ИмеетТип("Число").Заполнено();
|
||||
|
||||
ИДТовара = Результат["response"]["market_item_id"];
|
||||
|
||||
Результат = OPI_VK.ДобавитьТоварВПодборку(ИДТовара, ИДПодборки, Параметры); // Добавление в подборку
|
||||
|
||||
ЮТест.ОжидаетЧто(Результат)
|
||||
.ИмеетТип("Соответствие")
|
||||
.Свойство("response").ИмеетТип("Число").Заполнено();
|
||||
|
||||
Результат = OPI_VK.УдалитьТовар(ИДТовара, Параметры); // Удаление товара
|
||||
|
||||
ЮТест.ОжидаетЧто(Результат)
|
||||
.ИмеетТип("Соответствие")
|
||||
.Свойство("response").ИмеетТип("Число").Равно(1);
|
||||
|
||||
Результат = OPI_VK.УдалитьПодборку(ИДПодборки, Параметры); // Уадление подборки
|
||||
|
||||
ЮТест.ОжидаетЧто(Результат)
|
||||
.ИмеетТип("Соответствие")
|
||||
.Свойство("response").ИмеетТип("Число").Равно(1);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВК_СоздатьТоварСоСвойствами() Экспорт
|
||||
|
||||
Параметры = ПолучитьПараметрыВК();
|
||||
Картинка = ПолучитьДвоичные("Картинка");
|
||||
ИВФ = ПолучитьИмяВременногоФайла("png");
|
||||
Картинка.Записать(ИВФ);
|
||||
|
||||
МассивВариантов = Новый Массив;
|
||||
МассивВариантов.Добавить("Желтый");
|
||||
МассивВариантов.Добавить("Синий");
|
||||
МассивВариантов.Добавить("Красный");
|
||||
|
||||
Результат = OPI_VK.СоздатьСвойствоТовара("Цвет", Параметры);
|
||||
|
||||
Для Каждого Вариант Из МассивВариантов Цикл
|
||||
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
МассивКартинок = Новый Массив;
|
||||
МассивКартинок.Добавить(ИВФ);
|
||||
МассивКартинок.Добавить(Картинка);
|
||||
|
||||
Товар = Новый Соответствие();
|
||||
Товар.Вставить("Имя" , "Тестовый товар 2");
|
||||
Товар.Вставить("Описание" , "Описание товара");
|
||||
Товар.Вставить("Категория" , "20173");
|
||||
Товар.Вставить("Цена" , 1);
|
||||
Товар.Вставить("СтараяЦена" , 15);
|
||||
Товар.Вставить("ОсновноеФото" , Картинка);
|
||||
Товар.Вставить("URL" , "https://github.com/Bayselonarrend/OpenIntegrations");
|
||||
Товар.Вставить("ДополнительныеФото" , МассивКартинок);
|
||||
Товар.Вставить("ГлавныйВГруппе" , Истина);
|
||||
Товар.Вставить("НомерГруппы" , Неопределено);
|
||||
Товар.Вставить("Ширина" , 20);
|
||||
Товар.Вставить("Высота" , 30);
|
||||
Товар.Вставить("Глубина" , 40);
|
||||
Товар.Вставить("Вес" , 100);
|
||||
Товар.Вставить("SKU" , 12345);
|
||||
Товар.Вставить("ДоступныйОстаток" , "10");
|
||||
|
||||
Результат = OPI_VK.ДобавитьТовар(Товар, , Параметры); // Добавление товара
|
||||
|
||||
ЮТест.ОжидаетЧто(Результат)
|
||||
.ИмеетТип("Соответствие")
|
||||
.Свойство("response.market_item_id").ИмеетТип("Число").Заполнено();
|
||||
|
||||
ИДТовара = Результат["response"]["market_item_id"];
|
||||
OPI_VK.УдалитьТовар(ИДТовара, Параметры); // Удаление товара
|
||||
|
||||
Конецпроцедуры
|
||||
#КонецОбласти
|
||||
|
||||
#Область YandexDisk
|
||||
|
Reference in New Issue
Block a user