Открываем свою лавку на платформе VK Market

27.04.24

Интеграция - WEB-интеграция

VK Market - сервис и часть социальной сети ВКонтакте, который позволяет превращать группы в интерактивные витрины для продажи своих товаров или услуг. Сегодня посмотрим, как это можно использовать с опорой на 1С, а также разберем вариант простой интеграции с данным ресурсом при помощи ОПИ

Если вы не слышали ранее об Открытом Пакете Интеграций (что вполне вероятно), то небольшая вводная часть ниже, под катом. Для тех, кто уже знаком с ОПИ, данный раздел можно пропустить.

 
 Что такое Открытый Пакет Интеграций

 

Открытый Пакет Интеграций (ОПИ) - это набор open-source библиотек для интеграции с некоторыми популярными API для 1С:Предприятие и OneScript. Он представляет из себя расширение (а для OneScript - пакет), состоящее из общих модулей, каждый из которых отвечает за свой собственный сервис для работы. 


  • ОПИ бесплатен и имеет открытый исходный код на GitHub. Вы всегда можете получить последнюю версию библиотеки на странице репозитория, а подписавшись - узнавать о выходе обновлений. Все релизы сопровождаются статьями на Инфостарт и разделами единой документации. На Инфостарт вы можете подписаться уже хоть сейчас, а про документацию я расскажу далее.

 

 

 

  • Удобная единая документация. Она расположена на сайте opi.neocities.org и содержит в себе всю информацию, необходимую для работы: инструкции по предварительным действиям для начала интеграции, описания всех методов с параметрами и возвращаемыми значениями, примеры кода и т.д. Каждый API имеет там свой раздел.

 

 

 

 

  • Простая установка. ОПИ распространяется сразу в 3-х вариантах для 1С: как XML файлы расширения, как EDT проект расширения и как файл расширения формата .cfe (версия 1С 8.3.9), а также как файл пакета для OneScript. Однако, помимо этого, вы даже можете просто скопировать код ОПИ руками! Весь проект состоит из модулей, которые можно перенести в аналогичные, созданные самостоятельно в конфгураторе/проекте.

 

На момент последнего обновления данной статьи, доступны следующие API:

Наиболее актуальную информацию можно посмотреть в репозитории или на вводной странице документации.

 

Я думаю, ВКонтакте в представлении не нуждается - это одна из самых популярных социальных сетей в России и странах СНГ. Однако не все знают, что помимо возможности создавать развлекательный контент, в ВК также предусмотрен серьезный функционал для организации продаж и продвижения своих товаров и услуг, который буквально позволяет превратить группу в интерактивную витрину собственного онлайн магазина.

Вот, для примера, просто первый попавшийся магазин с прикольными керамическими изделиями:

 

Таких магазинов на просторах ВК целая куча. Все подобные товары и витрины объединены в общую систему маркета: любой пользователь может нажать на кнопку в главном меню сайта и на странице торговой площадки будут подобраны интересные для него товары



 

Это, на самом деле, интересная и глубокая система.

Во-первых, интернет маркетинг - направление не новое, но при работе с маркетом продвижение через группы позволяет не только делится новостями магазина с заинтересованными подписчиками, но и конкретно выводить товары пользователю в том месте, где он захочет на них посмотреть - на специальной странице, куда заходят как раз лишь для того, чтобы что-нибудь прикупить.

Во-вторых, как бы сомнительно и пугающе это не звучало, ВК имеет кучу информации о каждом своем пользователе, что позволяет ему собирать более точные персональные подборки товаров. А это, в свою очередь - серьезное увеличение шансов для вашего товара быть замеченным потенциальным покупателем. 

Ну и еще можно отметить наличие смежных сервисов: VK Pay для приема оплаты, Ads для продвижения своего магазина через рекламу или банально система сообщений, которая позволяет общаться с клиентами. 

 

Ну и что?

Это все, конечно, не стоило бы того, чтобы здесь сегодня собраться, однако как и у практически любого другого механизма ВКонтакте, у маркета есть свой API. Мысль о возможности выгружать товары из справочника Номенклатуры и регистра Свободных остатков в группу ВК не давала мне покоя. Поэтому я добавил методы этого API в библиотеку работы с ВК Открытого Пакета Интеграций.

Вот что я успел реализовать к текущему обновлению:

  • Методы работы с товарами
    • Получить список категорий товаров
    • Получить список товаров группы
    • Получить товары по ID
    • Добавить товар
    • Изменить товар
    • Удалить товар
    • Сгруппировать товары
  • Методы работы с подборками товаров
    • Получить список подборок
    • Получить подборки по ID
    • Добавить подборку
    • Удалить товар из подборки
    • Удалить подборку
  • Работа со свойствами товаров
    • Получить список свойств
    • Создать универсальное свойство товара
    • Изменить универсальное свойство товара
    • Удалить универсальное свойство товара
    • Создать вариант значения свойства
    • Изменить вариант значения свойства
    • Удалить вариант значения свойства
       

Ну а сейчас мы создадим свою небольшую лавку и посмотрим, как это все работает изнутри.

 

Автоматизируем продажу пирожков

Тематика нашей лавки - пекарня. При помощи нейросети и небольшой ловкости рук я создал пафосный мега бренд своего будущего заведения


 

Называется он BARX RIXY, так как эту, на удивление приятную уху, билиберду Midjourney написал на нижней ленте, когда я попросил его сделать эмблему. Но пока это просто группа. Для превращения ее в магазин нам необходимо включить данный функционал в настройках



Выбираем Расширенные товары. Также можно нажать Показать настройки и, собственно, настроить под себя еще некоторые моменты

 

Теперь можно добавлять на витрину нашу продукцию. Так как это не дебют библиотеки для работы с ВК, я не буду здесь подробно разбирать начало работы с API - инструкцию по получению необходимых данных вы можете найти в документации. Скажу лишь, что буквально недавно ВКонтакте обновили процедуру создания приложения для получения токена - она стала сложнее. Однако, если вы всерьез намерены заниматься продажами через маркет, то никаких смертельных препятствий в этом процессе вы не встретите.

Если далее в листингах кода вы видите ПараметрыВК - то это как раз  та структура с токеном, ID приложения и прочими данными, необходимыми для работы с любыми методами библиотеки ВК.

 

Подборки товаров

Прежде чем добавлять товар, удобнее будет определится с группами, в которые мы их будем объединять. Раз уж у нас пекарня, то я создам 3 подборки: пироги, булочки и хлеб. 

Выполним следующий код:
 

	ПараметрыВК          = ПолучитьПараметрыВК();
	СоответствиеПодборок = Новый Соответствие;
	СоответствиеСоздания = Новый Соответствие;
	
	СоответствиеСоздания.Вставить("Пироги" , "C:/pie.png");
	СоответствиеСоздания.Вставить("Булочки", "C:/small_pie.png");
	СоответствиеСоздания.Вставить("Хлеб"   , "C:/bread.png");
	
	Для Каждого Подборка Из СоответствиеСоздания Цикл
		
		Результат = OPI_VK.СоздатьПодборкуТоваров(Подборка.Ключ, Подборка.Значение, , , ПараметрыВК);
		СоответствиеПодборок.Вставить(Подборка.Ключ, Результат["response"]["market_album_id"]);
		
	КонецЦикла;

 

Он не сложный, но некоторые моменты требуют объяснения:

  • При создании подборок я использую пути к файлам png картинок, однако функция создания (как и все остальные функции, принимающие в качестве параметров файлы) может принимать и двоичные данные точно так же. Просто мне, в данном случае, было удобнее использовать файлы на диске.
  • При вызове СоздатьПодборкуТоваров я пропускаю два параметра - это булево Главная и булево Скрытая. Оба по умолчанию - Ложь и оба нам пока не нужны.

 

В итоге у нас появилось три группы. Они пока не видны пользователям, так как нет ни одного товара, но мы можем посмотреть их в меню управления магазином.

 

В финале нашей функции мы заполняем соответствие подборок. Там теперь находятся имя подборки и ID, возвращенное от ВК. Последнее мы будем использовать для добавления туда товаров.

 

Создаем товары

Теперь нам нужно добавить непосредственно продукцию пекарни, для чего необходимо её описать. Так как всевозможных полей свойств товаров очень много, внутри библиотеки они описываются как соответствие, состав полей (макет) которого можно найти в функции ПолучитьОписаниеТовара()

 

    Товар = Новый Соответствие();
    Товар.Вставить("Имя"                , "Новый товар");     // Имя товара
    Товар.Вставить("Описание"           , "Описание товара"); // Описание товара
    Товар.Вставить("Категория"          , "20173");           // См ПолучитьСписокКатегорийТоваров()
    Товар.Вставить("Цена"               , 1);                 // Цена.
    Товар.Вставить("СтараяЦена"         , Неопределено);      // Для отражения изменения цены 
    Товар.Вставить("ОсновноеФото"       , Неопределено);      // ДД или путь к осн. фото
    Товар.Вставить("URL"                , Неопределено);      // Ссылка на страницу магазина
    Товар.Вставить("ДополнительныеФото" , Новый Массив);      // Массив путей или ДД для доп. фото
    Товар.Вставить("ЗначенияСвойств"    , Новый Массив);      // Значения свойств (варианты). Максимум 2
    Товар.Вставить("ГлавныйВГруппе"     , Ложь);              // Сделать главным в своей группе  
    Товар.Вставить("Ширина"             , Неопределено);      // В миллиметрах
    Товар.Вставить("Высота"             , Неопределено);      // В миллиметрах
    Товар.Вставить("Глубина"            , Неопределено);      // В миллиметрах
    Товар.Вставить("Вес"                , Неопределено);      // В граммах
    Товар.Вставить("SKU"                , Неопределено);      // Артикул
    Товар.Вставить("ДоступныйОстаток"   , 1);

 

Добавим в каталог продукции нашей пекарни пирожки с капустой

 

    ПараметрыВК = ПолучитьПараметрыВК();
	
    ИДПодборки = СоответствиеПодборок["Булочки"];
    МассивФото = Новый Массив;
    МассивФото.Добавить("C:/Пекарня/Пирожок с капустой (доп 1).jpg");
    МассивФото.Добавить("C:/Пекарня/Пирожок с капустой (доп 2).jpg");
	
    Товар = Новый Соответствие();
    Товар.Вставить("Имя"                , "Пирожок с капустой");
    Товар.Вставить("Описание"           , "Очень вкусный пирожок с капустой никого не оставит равнодушными. Настоящий вкус детства");
    Товар.Вставить("Категория"          , "20063");           
    Товар.Вставить("Цена"               , 60);                
    Товар.Вставить("СтараяЦена"         , 70);     
    Товар.Вставить("ОсновноеФото"       , "C:/Пекарня/Пирожки с капустой.jpg");     
    Товар.Вставить("URL"                , "https://vk.com/barxrixy");     
    Товар.Вставить("ДополнительныеФото" , МассивФото);     
    Товар.Вставить("ЗначенияСвойств"    , Неопределено);     
    Товар.Вставить("ГлавныйВГруппе"     , Истина);             
    Товар.Вставить("Ширина"             , 30);     
    Товар.Вставить("Высота"             , 20);     
    Товар.Вставить("Глубина"            , 10);     
    Товар.Вставить("Вес"                , 120);     
    Товар.Вставить("SKU"                , "123123");     
    Товар.Вставить("ДоступныйОстаток"   , 100);

    Результат = OPI_VK.ДобавитьТовар(Товар, ИДПодборки, ПараметрыВК); 
    ИДТовара  = Результат["response"]["market_item_id"];

 

Рассмотрим теперь эту функцию

  • Вместо путей к файлу, как и в предыдущем примере, можно использовать двоичные данные
  • В поле категория указывается номер раздела товаров ВК, который можно получить при помощи функции ПолучитьСписокКатегорийТоваров(). Также полный список текстом есть в документации на странице описания этой самой функции получения списка категорий.
  • В конце мы получаем ID товара. В последствии его можно использовать для изменения данных (Функция ИзменитьТовар) или удаления товара (Функция УдалитьТовар) 
  • Мы добавляем товар в подборку, передавая ее ID прямо в функцию создания - это сделано для упрощения работы с библиотекой. Однако, вы также всегда можете добавить товар в подборку отдельно специальной функцией ДобавитьТоварВПодборку

 

Теперь наши пирожки отображаются на главной странице группы


 

Вот так выглядит их страница. Не все данные, которые мы отправили, здесь видны - некоторые из них предназначены больше для служебного пользования: определения доступности по наличию остатка или расчета доставки по весу и габаритам.

 

Добавился он и в нашу подборку булочек

 

Объединение товаров

Последнее, что я хотел бы сегодня показать - группировка по свойствам. Часто бывает так, что несколько предметов - это вариации одного и того же товара, но с какой-то особенностью. Например, разного цвета или разного объема. Для таких случаев существуют свойства. Сейчас мы создадим дав товара - два пирога с ягодами, но ягоды в них будут разные.

 

    ИДПодборки              = СоотвтествиеПодборок["Пироги"];
    ПараметрыВК             = ПолучитьПараметрыВК();	
    СоответствиеВариантов   = Новый Соответствие;
	
    Результат = OPI_VK.СоздатьСвойствоТовара("Ягоды", ПараметрыВК);                       //Создаем свойство
    Свойство  = Результат["response"]["property_id"];
	
    МассивВариантов = Новый Массив;
    МассивВариантов.Добавить("Брусника");
    МассивВариантов.Добавить("Малина");
	
    Для Каждого Вариант Из МассивВариантов Цикл
        
        Результат = OPI_VK.ДобавитьВариантСвойстваТовара(Вариант, Свойство, ПараметрыВК); //Добавляем варианты свойств
        СоответствиеВариантов.Вставить(Вариант, Результат["response"]["variant_id"]);
		
    КонецЦикла;
	
    Товар = Новый Соответствие();
    Товар.Вставить("Имя"                , "Пироог с ягодами (брусника)");
    Товар.Вставить("Описание"           , "Вкусный ягодный прирог");
    Товар.Вставить("Категория"          , "20063");           
    Товар.Вставить("Цена"               , 400);                
    Товар.Вставить("СтараяЦена"         , 410);     
    Товар.Вставить("ОсновноеФото"       , "C:/Пекарня/Пирог с ягодами.jpg");     
    Товар.Вставить("URL"                , "https://vk.com/barxrixy");     
    Товар.Вставить("ДополнительныеФото" , Неопределено);     
    Товар.Вставить("ЗначенияСвойств"    , СоответствиеВариантов["Брусника"]);     
    Товар.Вставить("ГлавныйВГруппе"     , Ложь);                 
    Товар.Вставить("SKU"                , "123124");     
    Товар.Вставить("ДоступныйОстаток"   , 100);

    Результат      = OPI_VK.ДобавитьТовар(Товар, ИДПодборки, ПараметрыВК);              //Добавляем пирог с брусникой
    ИДБрусничного  = Результат["response"]["market_item_id"];
	
    Товар.Вставить("Имя"            , "Пироог с ягодами (малина)");                     //Меняем бруснику на малину
    Товар.Вставить("ЗначенияСвойств", СоответствиеВариантов["Малина"]);
    Товар.Вставить("SKU"            , "123125"); 
    Товар.Вставить("ОсновноеФото"   , "C:/Пекарня/Пирог с ягодами 2.jpg");
	
    Результат    = OPI_VK.ДобавитьТовар(Товар, ИДПодборки, ПараметрыВК);                //Добавляем пирог с малиной
    ИДМалинового = Результат["response"]["market_item_id"];
	
    МассивТоваров = Новый Массив;
    МассивТоваров.Добавить(ИДБрусничного);
    МассивТоваров.Добавить(ИДМалинового);
	
    Результат = OPI_VK.СгруппироватьТовары(МассивТоваров, , ПараметрыВК);
    ИДГруппы  = Результат["response"]["item_group_id"];


В список товаров у нас добавился только 1 пирог




Но если мы зайдем на его страничку, то увидим там выпадающий список с выбором типа ягод



 

В заключение

 

Вот такой вот небольшой онлайн магазин на базе сообщества ВК у нас получился. Его несомненным преимуществом является интегрированность в общую экосистему социальной сети: создавая витрину с товарами мы все так же оставляем за собой возможность делать посты в группе - рекламные или просто развлекательные для поднятия интереса аудитории, создавать обсуждения, добавлять разделы, публиковать истории, собирать комментарии и многое многое другое. Когда-то у меня, например, была статья, где в рамках проекта онлайн библиотеки на 1С раз в период формировались рекламные посты. Это достаточно эффективный способ продвижения своих товаров и хорошая бюджетная альтернатива сайту, которая, по итогу, может оказаться даже более успешной. Особенно если автоматизировать все из 1С ;)

 

P.S. информация о заказах может приходить в диалоги сообщества или в раздел заказов. Возможно когда-нибудь я расскажу, как и их можно обрабатывать из 1С. 

 

Спасибо за внимание!



 

Репозиторий ОПИ: github.com/Bayselonarrend/OpenIntegrations

Последний релиз: github.com/Bayselonarrend/OpenIntegrations/releases/latest

 

Другие статьи про Открытый пакет интеграций на Инфостарт:

 

 

 Мой GitHub:     https://gitub.com/Bayselonarrend 
 Лицензия MIT:   https://mit-license.org

VK API Интеграция продажи vk market ВКонтакте

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    16273    14    18    

14

Интеграция 1С и Битрикс 24 — модуль синхронизации для обмена задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    18461    10    15    

16

Модуль для обмена "1С:Предприятие 8. УАТ. ПРОФ" с FortMonitor

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    13115    34    8    

13

Автоматическая загрузка файлов (например, прайс-листов) из электронной почты, FTP, HTTP, их обработка и выгрузка на FTP (на сайт) и для других целей

Прайсы WEB-интеграция Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Автомобили, автосервисы Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Программа с заданным интервалом времени (или по ручной команде) скачивает файлы (например, прайс-листы поставщиков) из различных источников: письма электронной почты, FTP или HTTP-адреса, и сохраняет их в каталог упорядоченной структуры. При этом извлекает файлы из архивов, может переименовывать файлы и менять их формат (csv, xls, txt). Можно настроить выгрузку обработанных файлов на сайт (через FTP-подключение). Программа будет полезна компаниям, у которых есть большое количество поставщиков и/или прайс-листы поставщиков обновляются часто (необязательно прайс-листы, файлы могут быть любого назначения). Собранные таким образом актуальные версии прайс-листов можно выгрузить с помощью программы себе на сайт (или на любой FTP-сервер) или выполнить другие необходимые задачи.

25200 руб.

28.05.2015    85804    26    51    

50
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. baracuda 2 19.02.24 15:54 Сейчас в теме
А получится потом обновлять созданные в вк товары при обновлении например цены в 1с.
Какое поле буде связующим в связке товар 1с - товар вк,
2. bayselonarrend 1409 19.02.24 16:10 Сейчас в теме
(1)При создании товара возвращается ID. Его можно использовать потом в функциях, вроде ИзменитьТовар() или УдалитьТовар().

Еще есть возможность получить список всех товаров сообщества функцией ПолучитьСписокТоваров() - там их ID тоже будут
baracuda; +1 Ответить
3. baracuda 2 20.02.24 08:20 Сейчас в теме
(2) ну блин вообще сказка, если есть id товара)
сквозная витрина получается с реалтайм обновлением цен)
4. bayselonarrend 1409 20.02.24 08:48 Сейчас в теме
Оставьте свое сообщение