Інтеграція 1С-Бітрікс із Deal.by (Білорусь)
Deal.by — білоруська торгова майданчик, агрегатор пропозицій інтернет-магазинів. Для магазину на 1С-Бітрікс інтеграція означає автоматичне вивантаження товарного фіда у форматі, який приймає Deal.by, та синхронізацію цін і залишків без ручного втручання. Без автоматизації оновлення прайсу на 5000+ позицій вручну — це щоденні втрати актуальності й потенційний бан за неактуальні ціни.
Формат фіда Deal.by
Deal.by приймає фід у форматі YML (Yandex Market Language) — той самий XML-формат, що використовує Яндекс.Маркет. Це спрощує роботу: якщо для магазину вже налаштовано вивантаження на Маркет, базова структура перевикористовується. Але у Deal.by є власні вимоги до додаткових параметрів.
Мінімальна структура офера в Deal.by YML:
<offer id="12345" available="true">
<url>https://yourshop.by/catalog/product-123/</url>
<price>149.90</price>
<currencyId>BYN</currencyId>
<categoryId>42</categoryId>
<picture>https://yourshop.by/img/product-123.jpg</picture>
<name>Назва товару</name>
<vendor>Бренд</vendor>
<description>Опис товару</description>
<param name="Колір">Червоний</param>
</offer>
Валюта для білоруського ринку — BYN (білоруський рубль). Якщо каталог Бітрікс ведеться в RUB або USD, у фіді потрібна конвертація за поточним курсом. Курс НБ РБ оновлюється щодня — агент повинен забирати актуальний курс перед генерацією фіда.
Генерація фіда в 1С-Бітрікс
У Бітрікс немає готового модуля для Deal.by, але YML-фід для Яндекс.Маркету генерується стандартним модулем catalog.export. Для Deal.by адаптуємо цей підхід.
Створюємо власний обробник експорту, що успадковує \Bitrix\Catalog\Export\Setup. Перевизначаємо методи:
-
getTemplate()— шаблон XML-документа для Deal.by -
getOfferFields()— набір полів офера з маппінгом властивостей інфоблоку
Властивості товарів із b_iblock_element_property маппуються на теги <param> у XML. Частина властивостей вимагає нормалізації — наприклад, «Колір: Червоний/червоний/ЧЕРВОНИЙ» повинні зводитися до єдиного регістру, інакше фільтрація на Deal.by працюватиме некоректно.
Генерацію фіда запускаємо агентом раз на годину (або частіше для магазинів із ціами, що швидко змінюються). Фід зберігаємо в upload/ із публічним доступом — Deal.by сам періодично забирає його за URL.
Синхронізація цін і залишків
Для Deal.by актуальність фіда критична: якщо ціна у фіді нижча за реальну, майданчик може штрафувати магазин. Тому:
-
Фід генерується лише для товарів із ненульовим залишком — тег
available="true"виставляємо через перевіркуb_catalog_product.QUANTITY > 0. -
Товари без залишку включаємо з
available="false"— вони залишаються в каталозі Deal.by, але позначаються як недоступні. Це краще, ніж повне видалення: історія відгуків і рейтинг зберігаються. -
Ціни беремо з типу цін «роздрібна» (
b_catalog_priceзCATALOG_GROUP_ID = 1). Якщо використовується мультивалютність — конвертуємо в BYN через актуальний курс НБ РБ.
Категоризація: маппінг на дерево Deal.by
Deal.by має власне дерево категорій. Магазин повинен зіставити свої категорії з категоріями майданчика. Це робиться через розділ управління фідом: таблиця маппінгу свій_розділ_id → deal_by_category_id.
Якщо маппінг не налаштовано, товари потрапляють до загальної категорії «Різне» і практично не знаходяться через пошук майданчика.
Орієнтири за строками
| Задача | Строк |
|---|---|
| Налаштування YML-фіда для Deal.by | 3–7 днів |
| + конвертація валют BYN + актуалізація залишків | 1–2 тижні |
| + повний маппінг категорій (100+ розділів) | 2–3 тижні |
Вартість розраховується індивідуально після аналізу структури каталогу та поточних налаштувань експорту.







