Интеграция 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 недели |
Стоимость рассчитывается индивидуально после анализа структуры каталога и текущих настроек экспорта.







