Настройка витрины товаров в ВКонтакте для 1С-Битрикс
ВКонтакте позволяет подключить магазин прямо к сообществу через раздел «Товары». Покупатель видит карточки с ценами, не уходя из соцсети. Битрикс умеет синхронизировать каталог с ВК через API, но «из коробки» это работает только при правильной настройке модуля catalog и корректно заполненных данных товаров.
Как устроена интеграция
ВКонтакте принимает товары через VK API: метод market.add добавляет товар, market.edit обновляет, market.delete удаляет. Каждый товар привязан к owner_id — это отрицательный идентификатор сообщества. Фотографии передаются отдельно через photos.saveMarketPhoto и photos.getMarketUploadServer.
На стороне Битрикс есть готовый модуль socialservices, который содержит класс CSocServVkontakte. Однако полноценная витрина товаров работает через модуль sale совместно с компонентом bitrix:sale.export.vk. Этот компонент генерирует YML-фид для ВК — формат аналогичен Яндекс.Маркету, но с рядом отличий в структуре <offer>.
Что нужно подготовить в каталоге
Перед настройкой витрины проверяются обязательные поля товаров:
- Название — до 100 символов, без спецсимволов
- Описание — до 4096 символов
- Цена — числовое значение без форматирования, валюта RUB
- Фото — минимум одно, разрешение от 400×400 px, форматы JPG/PNG
- Категория — обязательна привязка к разделу инфоблока
В таблице b_iblock_element хранятся элементы каталога, в b_catalog_price — цены с привязкой к CATALOG_GROUP_ID. Для витрины ВК используется базовая ценовая группа (обычно ID=1).
Настройка выгрузки
Компонент bitrix:sale.export.vk размещается на отдельной странице сайта (например /vk-export/). В параметрах компонента задаются:
-
IBLOCK_ID— ID инфоблока каталога -
PRICE_ID— ID типа цен для выгрузки -
SECTION_ID— корневой раздел (если нужна частичная выгрузка) -
USE_CML2_QUANTITY— учёт остатков изb_catalog_store_product
Для автоматической синхронизации настраивается агент через CAgent::Add() или задание в cron — обычно раз в 1–4 часа. Агент вызывает обновление через VK API, сравнивая хэши данных товаров с последним сохранённым состоянием.
Авторизация через VK API
В настройках приложения ВКонтакте (vk.com/editapp) создаётся Standalone-приложение. Токен с правами market, photos, groups сохраняется в настройках модуля:
Настройки → Настройки продукта → Маркет VK → Ключ доступа
Токен хранится в b_option с модулем socialservices. Срок жизни токена — 1 год для серверных приложений, поэтому нужно предусмотреть механизм обновления.
Распространённые проблемы
Фотографии не загружаются — чаще всего причина в том, что URL картинки недоступен извне (локальная разработка, закрытый сервер). VK API тянет фото по HTTP, поэтому изображения должны быть на публичном URL.
Товары дублируются при каждой синхронизации, если не сохраняется маппинг element_id → vk_item_id. Для этого заводится UF-поле UF_VK_ITEM_ID в инфоблоке или отдельная таблица соответствий.
| Масштаб каталога | Первичная загрузка | Регулярная синхронизация |
|---|---|---|
| до 500 товаров | 1 день | настраивается сразу |
| 500–5000 товаров | 2–3 дня | от 1 часа |
| более 5000 товаров | от 5 дней | требует очереди задач |
Что входит в настройку
- Создание и настройка приложения ВКонтакте, получение токена
- Размещение и конфигурирование компонента
bitrix:sale.export.vk - Настройка маппинга категорий Битрикс → категории ВК
- Первичная загрузка товаров с проверкой каждой карточки
- Настройка агента для автоматической синхронизации
- Создание UF-поля для хранения VK ID товара







