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

11.08.24

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

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

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

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

 

Открытый Пакет Интеграций (ОПИ) - это open-source набор методов для простой и быстрой интеграции с различными популярными API. Он состоит из аналогичных по функционалу 1С-расширения (CFE), OS-пакета и программы для Windows и Linux, которые предоставляют готовые функции для работы с целым набором различных онлайн-сервисов.


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

 

 

 

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

 

 

 

 

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

 

На момент последнего обновления данной статьи, доступны следующие 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 ВКонтакте

См. также

Оптовая торговля Розничная торговля WEB-интеграция 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

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

57600 руб.

26.11.2024    1230    1    1    

4

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

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

36000 руб.

03.08.2020    18350    20    22    

18

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

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23): 1С:Управление торговлей, 1С:Управление Нашей фирмой 3, 1С:Комплексная автоматизация 2, Объединенное решение: Модуль 1С:CRM 3 (3.0.21.3) +1С:ERP Управление предприятием 2. При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

7200 руб.

04.05.2021    20557    13    19    

18

WEB-интеграция Программист Бизнес-аналитик Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

14400 руб.

20.12.2024    317    2    0    

5

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

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки.

24000 руб.

27.09.2024    2444    1    0    

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

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