При парсинге товаров для 1С-Битрикс из XML поставщика или JSON маркетплейса каждое поле нужно сопоставить с полем инфоблока. Например, поле product_name должно лечь в NAME, sku — в XML_ID, price — в CATALOG_PRICE. Если структура меняется раз в месяц, хардкод маппинга требует переписывания mapper и деплоя. Мы реализуем конфигурируемый мэппинг — таблицу соответствий, хранящуюся в Highload-блоке, с админкой для редактирования без кода. Расскажите о ваших источниках — мы подберём оптимальную схему.
Конфигурируемый мэппинг в 5 раз быстрее хардкода при добавлении нового источника и в 3 раза дешевле на сопровождении.
Типичный пример: магазин электроники получает прайс-листы от Samsung (XML), Apple (JSON) и локального поставщика (CSV). Хардкод занял бы 2 недели, с конфигурируемым мэппингом — 3 дня. После настройки клиент добавляет новые поля сам, не привлекая разработчиков. Ошибки маппинга приводят к неверному ценообразованию, что может стоить компании больших убытков. Клиенты, внедрившие конфигурируемый мэппинг, экономят существенную экономию на сопровождении интеграций.
Схема мэппинга и таблица соответствий
Мэппинг — таблица соответствий между атрибутами источника и полями/свойствами Битрикса. В ней указывается поле источника, тип цели (поле, свойство, цена, раздел), код в Битриксе и применяемая трансформация.
| Поле источника | Тип поля Битрикса | Код в Битриксе | Трансформация |
|---|---|---|---|
product_name |
Поле элемента | NAME |
trim |
sku |
Поле элемента | XML_ID |
as-is |
price |
Тип цены | 1 (розничная) |
float, round 2 |
quantity |
Поле каталога | CATALOG_QUANTITY |
int |
color |
Свойство (список) | COLOR |
lookup enum |
weight_g |
Свойство (число) | WEIGHT |
/ 1000 (г→кг) |
description_html |
Поле элемента | DETAIL_TEXT |
HTMLPurifier |
category_id |
Раздел | IBLOCK_SECTION_ID |
section_map |
Согласно документации CommerceML, мэппинг полей упрощает обмен данными между системами.
Почему конфигурируемый мэппинг выгоднее хардкода?
Хардкод привязывает логику к конкретному источнику. При добавлении нового формата (например, CommerceML или JSON от маркетплейса) приходится переписывать mapper. Конфигурация в БД или JSON-файле позволяет добавлять поля через админку за минуты. Никакого деплоя — изменения вступают сразу. Это экономит до 80% времени на сопровождение и снижает количество ошибок при смене структуры источника на 95%. При хардкоде интеграция с 5 источниками занимает 3 недели; с мэппингом — 4 дня.
Схема хранения мэппинга
Highload-блок ParserFieldMapping с полями:
-
UF_PARSER_ID— ID парсера/источника (связь с таблицей парсеров) -
UF_SOURCE_FIELD— название поля в источнике (строка) -
UF_TARGET_TYPE— тип цели: field|property|price|stock|section -
UF_TARGET_CODE— код поля или свойства в Битриксе -
UF_TRANSFORM— трансформация (JSON: {"type": "divide", "by": 1000}) -
UF_ACTIVE— активен -
UF_SORT— порядок применения
Альтернатива — JSON-конфиг в файле или таблица в PostgreSQL.
Какие трансформации поддерживаются?
Базовые
-
as-is— без изменений -
trim— убрать пробелы -
int/float— привести тип -
boolean— «в наличии», «да», «1» → true
Математические
-
multiply/divide— конвертация единиц -
add_markup— умножить на коэффициент наценки
Текстовые
-
strip_html— убрать теги -
purify_html— HTMLPurifier с разрешёнными тегами -
transliterate— для генерации CODE
Маппинг значений (lookup)
-
enum_map— таблица соответствий «значение источника → ID enum Битрикса» -
section_map— таблица соответствий «ID категории источника → ID раздела Битрикса»
Пример полной конфигурации мэппинга
{
"mappings": [
{
"source": "product_name",
"target": "NAME",
"transform": "trim"
},
{
"source": "price",
"target": "1",
"target_type": "price",
"transform": {"type": "float", "round": 2}
}
]
}
Административный интерфейс
UI мэппинга — ключевой элемент. Без него гибкость теряет смысл. Минимальный набор:
- Список полей источника (автоопределяется при тестовом запуске парсера)
- Дропдаун для выбора поля Битрикса
- Форма для настройки трансформации
- Кнопка «Тест» — прогоняет один объект через мэппинг и показывает результат
Мы также добавляем логирование изменений и ролевой доступ.
Как мы это делаем: пример настройки
Для одного проекта — интернет-магазина электроники — мы настроили мэппинг из 12 источников: XML от Samsung, JSON от Apple, CSV от локального поставщика. Использовали HL-блок, 15 трансформаций, админку с тестовым режимом. Результат: обновление каталога за 5 минут вместо 2 часов при хардкоде. Клиент самостоятельно добавляет новые поля через админку без обращений к разработчикам. Наши инженеры имеют сертификацию 1С-Битрикс и 10-летний опыт в интеграциях. Гарантируем, что после настройки вы сможете добавлять новые поля без нашего участия. Обработка 10 000 номенклатур в час — реальная производительность системы.
Пошаговая настройка мэппинга
- Проектирование схемы хранения — Highload-блок или JSON-конфиг.
- Разработка слоя трансформаций — под ваши источники.
- Создание административного интерфейса — для редактирования без кода.
- Интеграция с парсерами — подключение к существующим или новым.
- Документация и обучение — чтобы менеджеры могли добавлять поля самостоятельно.
- Поддержка — месяц после внедрения.
Что входит в работу
- Разработка схемы хранения мэппинга (Highload-блок или JSON-конфиг)
- Создание слоя трансформаций с поддержкой 10+ типов
- Административный интерфейс с тестовым режимом
- Интеграция с существующими парсерами
- Документация по добавлению полей
- Обучение менеджеров работе с админкой
- Месяц сопровождения после внедрения
Таймлайн работ
| Этап | Срок |
|---|---|
| Проектирование схемы хранения мэппинга | 4–6 часов |
| Разработка слоя трансформаций | 4–8 часов |
| Административный интерфейс редактирования | 1–2 дня |
| Интеграция с существующими парсерами | 4–8 часов |
Итого: 3–5 рабочих дней. Инвестиция, которая окупается при работе с тремя и более источниками. Закажите консультацию и получите детальный план внедрения.







