Настройка интеграции 1С-Битрикс с Яндекс.Маркет: от фида до API
Каталог загружен, но товары не проходят модерацию на Яндекс.Маркете — 30% фидов содержат ошибки XML. Цены и остатки не синхронизируются, заказы теряются. Один из наших клиентов, магазин электроники с каталогом 3000 позиций, столкнулся с отклонением 50% товаров из-за неверного маппинга категорий и отсутствия штрихкодов. После настройки корректного YML-фида и интеграции Partner API модерация прошла за 2 дня, а частота ошибок снизилась до 0%.
Интеграция 1С-Битрикс с Яндекс.Маркет — стандартная задача, но дьявол в деталях: кривой YML-фид, неверный маппинг категорий, ошибки в обработке callback-запросов. За 5 лет мы настроили более 50 интеграций для каталогов от 100 до 50 000 товаров. Ниже — разбор типовых проблем и решений.
Закажите настройку интеграции — и мы закроем все проблемы с модерацией и синхронизацией.
Архитектура интеграции
Яндекс.Маркет общается с магазином через два канала:
- YML-фид — XML-файл с товарами, который Маркет периодически забирает по URL. Основной канал для каталога.
-
Partner API (
https://api.partner.market.yandex.ru/) — REST API для управления заказами, ценами, остатками, статусами.
В 1С-Битрикс за генерацию фида отвечает модуль catalog.export с профилем экспорта «Яндекс.Маркет (YML)». За работу с API — либо модуль из Marketplace (RetailCRM, Kooplex, «МоёДело»), либо кастомный обработчик, который мы пишем под вашу архитектуру.
Генерация YML-фида: глубокая настройка
Стандартный профиль экспорта создаётся в Магазин → Настройки → Экспорт каталога → Яндекс.Маркет. Базовые параметры:
- Тип торговли: DBS (Delivery by Seller), FBS (Fulfillment by Seller), FBY (Fulfillment by Yandex).
- Инфоблок каталога: привязка к конкретному инфоблоку товаров.
- Свойства для экспорта: маппинг полей инфоблока на теги YML.
Обязательные теги для каждого <offer>:
| Тег YML | Поле в Битрикс | Примечание |
|---|---|---|
<name> |
NAME элемента |
До 150 символов |
<price> |
Цена каталога | В рублях, без скидок |
<currencyId> |
Валюта | RUR / USD |
<categoryId> |
Раздел инфоблока | Маппится на категории Маркета |
<picture> |
DETAIL_PICTURE или свойство |
Минимум 300×300 px, до 10 фото |
<vendor> |
Свойство «Бренд» | Обязательно для большинства категорий |
<barcode> |
Свойство «Штрихкод» | EAN-13. Без него — ограничения по размещению |
<description> |
DETAIL_TEXT |
До 3000 символов, HTML-теги ограничены |
Критичный момент — <param>. Яндекс.Маркет требует характеристики товара через <param name="Размер">42</param>. В Битрикс характеристики — это свойства инфоблока. Стандартный экспортный профиль выгружает только те свойства, которые явно отмечены в настройках. Если свойство множественное, каждое значение генерирует отдельный <param>. Мы дорабатываем обработчик экспорта в /bitrix/php_interface/include/catalog_export/, чтобы гарантировать корректную структуру.
Проблема с торговыми предложениями (SKU) — если товар имеет SKU (размер, цвет), каждое предложение — отдельный <offer> в фиде, связанный через <group_id>. Стандартный экспорт Битрикс не всегда корректно формирует group_id — мы правим код, чтобы дубли не появлялись. Подробнее о настройке модуля экспорта — в официальной документации Битрикс.
Какие данные обязательны в YML-фиде?
Помимо базовых тегов, для успешной модерации важны атрибуты <vendor>, <barcode> и <param>. Без штрихкода товар не попадёт в категории, где требуется EAC-маркировка. По статистике, 20% отказов в модерации связаны с отсутствием barcode у товаров, где он обязателен. Мы всегда проверяем это на этапе аудита.
Почему важен правильный маппинг категорий?
Яндекс.Маркет использует собственное дерево категорий. Раздел «Электроника → Смартфоны» в вашем каталоге — это конкретный categoryId в дереве Маркета. Маппинг задаётся двумя способами:
- Через модуль интеграции — загружается дерево категорий Маркета, и для каждого раздела инфоблока выбирается соответствие.
- Через
market_categoryв YML — тег<market_category>Электроника/Смартфоны</market_category>внутри<offer>. Яндекс пытается сопоставить автоматически.
Первый способ надёжнее. По нашим данным, около 70% фидов отклоняются из-за невалидного XML, а некорректный маппинг категорий — причина 20% отказов в модерации.
Как управлять заказами через Partner API?
Когда покупатель заказывает товар на Яндекс?
Маркет, заказ нужно принять и обработать. Схема:
- Маркет отправляет POST на ваш endpoint (callback URL) с данными заказа.
- Обработчик на стороне Битрикс создаёт заказ в модуле
saleчерезBitrix\Sale\Order::create(). - При смене статуса заказа в Битрикс — отправляется PUT-запрос в Partner API для обновления статуса на Маркете.
Статусы Маркета: PROCESSING → DELIVERY → DELIVERED / CANCELLED. Маппинг на статусы Битрикс (N, P, F, C) настраивается в модуле интеграции. Мы подключаем автоматическое обновление статусов и уведомления для менеджеров.
Обновление остатков. Маркет ожидает актуальные остатки. Два подхода:
- Через фид — тег
<count>в<offer>. Фид обновляется по cron раз в 30–60 минут. - Через API — метод
PUT /campaigns/{campaignId}/offers/stocks. Обновление в реальном времени, критично для товаров с быстрым спросом. Требования к остаткам описаны в документации Partner API.
Частые ошибки при интеграции
- Фид не проходит валидацию. Яндекс проверяет XSD-схему. Незакрытые теги, спецсимволы (
&,<,>) в описании без CDATA, кириллица в URL картинок — всё это причины отклонения. Мы используем автоматическую проверку фида перед отправкой. - Цены не совпадают. Если на сайте действуют скидки, а фид выгружает цену до скидки — Маркет может заблокировать магазин за расхождение цен. Решение: в экспортном профиле выбрать тип цены, соответствующий цене на сайте, или формировать
<oldprice>для зачёркнутой цены. - Дубли товаров. При переиндексации каталога меняются ID элементов инфоблока. Маркет считает новые ID новыми офферами, а старые — удалёнными. Используйте
<shop-sku>на основе артикула (свойствоARTICLE), а не ID элемента.
Если вы столкнулись с одной из этих проблем — свяжитесь с нами, мы поможем быстро их устранить.
Чек-лист проверки фида перед загрузкой
- Все обязательные теги присутствуют
- URL изображений доступны и ведут на файлы ≥300×300 px
- Штрихкоды (barcode) переданы для товаров в категориях, где они требуются
- Описание не содержит запрещённых HTML-тегов (







