Розробка модуля інтеграції з маркетплейсами для 1С-Бітрікс починається із задачі: синхронізувати каталог на 50 000 товарів з Ozon і Wildberries. Здається, що це кілька рядків коду, але на практиці — десятки edge-кейсів: маркетплейс змінює API без попередження, товари відхиляються через невідповідність атрибутів, залишки розходяться через гонку станів між складами. Втрата замовлень, штрафи за розбіжність залишків, ручне звіряння щоранку — ось ціна помилки.
Середній проєкт включає 3-5 маркетплейсів, 50 000+ товарів і 1000+ замовлень на добу. Без системи черг і грамотного маппінгу атрибутів інтеграція розвалиться під навантаженням. Ми побудували модуль, який витримує пікові навантаження і не втрачає дані. Досвід роботи з 1С-Бітрікс — понад 10 років, виконано понад 50 інтеграцій з маркетплейсами.
Як розробити модуль інтеграції з маркетплейсами для 1С-Бітрікс?
Стандартний модуль інтеграції для 1С-Бітрікс працює в рамках системи модулів (/bitrix/modules/). Він реєструється через RegisterModule(), додає агенти через CAgent::AddAgent() і вішає обробники на події інфоблоків (OnAfterIBlockElementAdd, OnAfterIBlockElementUpdate, OnAfterIBlockElementDelete). Документація 1С-Бітрікс зі створення модулів рекомендує саме цей підхід.
Мінімальний набір функцій: вивантаження товарів (маппінг полів інфоблоку на схему маркетплейсу, завантаження зображень, передача характеристик), синхронізація залишків (оновлення CATALOG_QUANTITY), отримання замовлень (створення замовлень у b_sale_order) та обробка статусів (двостороння синхронізація).
Чому черга обов'язкова? — розробка модуля інтеграції
Прямий виклик API маркетплейсу з обробника події — антипатерн. Ozon допускає не більше 10 RPS, WB — 1 запит/секунду на /api/v3/orders. Якщо товарів 5000+, масове редагування в адмінці створить шквал запитів і поверне 429.
Правильна схема:
- Подія Бітрікс → запис задачі в чергу (HL-блок або окрема таблиця)
- Агент кожні N хвилин → читає чергу пачками → викликає API маркетплейсу
- Результат → лог + оновлення статусу задачі в черзі
Черга — це єдиний спосіб гарантувати, що ви не перевищите ліміти API. В одному з проєктів з каталогом у 200 000 товарів стандартний підхід (прямі запити з обробників) призводив до 429-х помилок кожні 5 хвилин. Після впровадження черги на HL-блоці навантаження на API маркетплейсу знизилося в 3 рази, а час синхронізації — з 4 годин до 20 хвилин.
| Поле | Тип | Опис |
|---|---|---|
| ID | int, AI | |
| ENTITY_TYPE | varchar(50) | product / order / stock |
| ENTITY_ID | int | ID елемента/замовлення |
| ACTION | varchar(50) | create / update / delete |
| MARKETPLACE | varchar(30) | ozon / wb / yandex |
| STATUS | varchar(20) | pending / processing / done / error |
| ATTEMPTS | int | лічильник спроб |
| LAST_ERROR | text | текст останньої помилки |
| CREATED_AT | datetime | |
| PROCESSED_AT | datetime |
Маппінг атрибутів — найбільш трудомістке місце
У кожного маркетплейсу своя система категорій і обов'язкових атрибутів. Для Ozon потрібно отримати список атрибутів через /v3/category/attribute, для WB — /content/v2/object/charcs/{subjectId}. У модулі реалізується адміністративний інтерфейс, де задаються:
- Відповідність категорій (розділи інфоблоку ↔ ID категорії маркетплейсу)
- Маппінг властивостей (
UF_*абоPROPERTY_*↔attribute_id) - Маппінг складів (
CATALOG_STORE↔ warehouse_id) - Правила трансформації значень (наприклад, числові характеристики WB передаються як рядки)
Сертифіковані спеціалісти 1С-Бітрікс з багаторічним досвідом налаштовують маппінг так, щоб жоден товар не був відхилений через невірний формат.
Торгові пропозиції та варіативні товари
WB і Ozon по-різному працюють з варіативністю. WB використовує масив розмірів sizes[], Ozon — color_image. У Бітрікс ТП зберігаються в дочірньому інфоблоці. При вивантаженні отримуємо всі ТП через CCatalogSKU::GetOffersList() і збираємо структуру під формат маркетплейсу. При оновленні залишків оновлюємо кожен SKU окремо.
Отримання та обробка замовлень
Замовлення надходять через polling (агент) або webhook. При створенні замовлення в Бітрікс:
- Покупець створюється як анонімний або прив'язується за email.
- Спосіб доставки та оплати повинні бути заведені в системі (
b_sale_delivery_service,b_sale_pay_system). - Артикул маркетплейсу має збігатися з
CATALOG_ARTICLEабоXML_IDелемента інфоблоку. - Зовнішній ID замовлення зберігається в
b_sale_order_propsдля зворотної синхронізації.
Обробка помилок та моніторинг
Модуль без логування — чорна скринька. Мінімальний лог пишеться в b_event_log. Для production — власна таблиця з полями: рівень, маркетплейс, дія, HTTP-код, тіло відповіді (truncate до 4KB). Окремий агент раз на годину повторює задачі з ATTEMPTS < 3, алармує невдалі через CEvent::Send() або Telegram.
Що входить в роботу?
При замовленні розробки модуля інтеграції ви отримуєте:
- Архітектурна документація з описом усіх сутностей і потоків даних.
- Налаштування модуля в бойовому середовищі (доступи, конфігурація, тестовий запуск).
- Навчання адміністраторів (2 години, можливий віддалений формат).
- Гарантійна підтримка 2 місяці (виправлення помилок, консультації).
- Вихідний код модуля, переданий вам у власність.
Чому наш модуль надійніший за стандартні рішення?
Використовуємо чергу як єдину точку входу для всіх API-викликів. Це гарантує дотримання rate limits, повтор при тимчасових помилках і повний лог. Модуль не зламається при стрибку навантаження — перевірено на каталогах з 500 000 товарів. Всі інтеграції виконуються на ліцензійному ПЗ, з дотриманням стандартів безпеки.
Етапи розробки модуля інтеграції
- Аудит поточної системи та вимог.
- Проєктування архітектури модуля з урахуванням навантаження.
- Розробка адаптерів для кожного маркетплейсу.
- Реалізація UI маппінгу атрибутів і категорій.
- Налаштування черг і агентів.
- Інтеграційне тестування в sandbox (де доступний).
- Документація з експлуатації та навчання адміністраторів.
- Гарантійна підтримка 2 місяці.
Строки розробки
| Обсяг інтеграції | Строк |
|---|---|
| Один маркетплейс, лише вивантаження товарів + залишки | 3–5 тижнів |
| Один маркетплейс, повний цикл (товари + замовлення + статуси) | 6–9 тижнів |
| Два маркетплейси, повний цикл | 10–14 тижнів |
| Три і більше маркетплейсів зі спільною чергою та UI маппінгу | 16–24 тижні |
Строки вказані для розробки з нуля. При використанні готового ядра черги та перевикористанні адаптерів — скорочення на 25–30%.
Тестування та приймання
Кожен адаптер повинен мати unit-тести для маппінгу та інтеграційні тести з sandbox-оточенням (Ozon і Яндекс Маркет надають sandbox, WB — тестування через бій з тестовими артикулами). Перед релізом перевіряємо сценарії: масове оновлення цін (500+ позицій), прихід 50+ замовлень одночасно, обнулення залишків.
Зв'яжіться з нами для попередньої оцінки вашого проєкту — це безкоштовно. Ми проаналізуємо архітектуру та запропонуємо оптимальне рішення.
Отримайте консультацію з архітектури інтеграції — обговоримо деталі та строки.







