Налаштування вітрини товарів у ВКонтакте для 1С-Bitrix
ВКонтакте дозволяє підключити магазин прямо до спільноти через розділ «Товари». Покупець бачить картки з цінами, не виходячи з соцмережі. Bitrix вміє синхронізувати каталог із ВК через API, але «з коробки» це працює тільки при правильному налаштуванні модуля catalog та коректно заповнених даних товарів.
Як влаштована інтеграція
ВКонтакте приймає товари через VK API: метод market.add додає товар, market.edit оновлює, market.delete видаляє. Кожен товар прив'язаний до owner_id — це від'ємний ідентифікатор спільноти. Фотографії передаються окремо через photos.saveMarketPhoto та photos.getMarketUploadServer.
На стороні Bitrix є готовий модуль 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 - Налаштування маппінгу категорій Bitrix → категорії ВК
- Первинне завантаження товарів із перевіркою кожної картки
- Налаштування агента для автоматичної синхронізації
- Створення UF-поля для зберігання VK ID товару







