YML — это XML-формат выгрузки каталога, который исходно придумали для Яндекс.Маркета, но сегодня его же (иногда с оговорками) принимают многие площадки и рекламные системы. В 1С-Битрикс такой фид собирается штатным профилем экспорта каталога: разберём, как настроить его один раз и получить стабильный файл по постоянному URL.
Что такое YML-фид и кому он нужен
YML (Yandex Market Language) — это диалект XML для передачи каталога: список категорий и список товарных предложений (offers) с ценой, наличием, картинками и характеристиками. Формат родом из Яндекс.Маркета, но по факту стал отраслевым: его же скелет принимают Мегамаркет, VK Реклама, Google Merchant (через adapter), Авито и десятки прайс-агрегаторов и рекламных фидов.
Важно понимать разницу между фидом и API-интеграцией. YML — это выгрузка «в одну сторону»: площадка периодически скачивает ваш файл по ссылке и обновляет карточки. Полноценные маркетплейсы вроде Ozon и Wildberries работают через свой API и по YML товар обычно не заводят — там фид годится разве что для первичной подготовки данных. Поэтому YML — это в первую очередь про Яндекс.Маркет, ценовые площадки и рекламные системы.
catalog через механизм экспорта данных. Никаких сторонних скриптов для базового сценария не нужно — тип экспорта «Яндекс Маркет (YML)» входит в поставку редакций с интернет-магазином.Где в Битрикс настраивается экспорт
Точка входа — раздел Магазин → Настройки → Экспорт данных (в старых сборках путь может называться Каталог → Экспорт данных). Здесь хранится список профилей экспорта; каждый профиль — это один настроенный фид. Служебные страницы админки — catalog_export_setup.php (список) и catalog_export_edit.php (карточка профиля).
Сформированный файл движок кладёт в каталог /bitrix/catalog_export/ и отдаёт по постоянному публичному адресу — например https://site.ru/bitrix/catalog_export/yandex_run.php?... или в виде статического .xml. Именно эту ссылку вы передаёте в кабинет площадки. Файл перегенерируется, ссылка остаётся прежней — это ключевое удобство штатного механизма.
- Тип экспорта — выбираете «Яндекс Маркет (YML)» как основу даже для других площадок: структура одинаковая.
- Профиль — набор настроек: какие инфоблоки, какой тип цены, какая валюта, какие свойства и в какие теги маппятся.
- Права — на файл экспорта в
/bitrix/catalog_export/нужны права на запись у веб-сервера.
Настройка профиля: инфоблоки, цены, свойства
Создание фида — это мастер из нескольких шагов. Пройдём ключевые решения, которые определяют качество выгрузки:
- Инфоблоки и разделы. Выберите каталог(и) и, при необходимости, конкретные разделы. Для площадок обычно выгружают не весь ассортимент, а товарные категории, которые реально продаются.
- Тип цены. Укажите, какую цену отдавать в тег
<price>(например, «Розничная»). Если у товара есть скидки каталога, решите, отдавать базовую цену или уже с учётом скидки через<oldprice>. - Валюта. В
<currencyId>обычно идётRUB(иногдаRUR— сверяйтесь с требованиями площадки). - Наличие. Атрибут
available="true|false"у оффера берётся из количества/флага наличия. Правильно связать его со складским учётом критично — иначе на площадке «висят» отсутствующие товары.
Отдельный и самый содержательный шаг — маппинг свойств инфоблока в теги YML. Здесь вы сопоставляете свойства товара со стандартными тегами и параметрами: производитель → <vendor>, артикул → <vendorCode>, характеристики (цвет, размер, материал) → набор тегов <param name="...">.
Как устроен готовый YML-файл
Понимание структуры помогает быстро находить проблемы в выгрузке. Корень документа — <yml_catalog date="...">, внутри — единственный узел <shop> с описанием магазина и двумя основными списками:
<currencies>— список валют с курсами;<categories>— дерево категорий сidиparentId;<offers>— сами товарные предложения.
Каждый <offer id="..." available="true"> содержит минимальный обязательный набор: <url>, <price>, <currencyId>, <categoryId>, <picture>, <name>. Дальше идут необязательные, но важные для карточки теги — <vendor>, <description>, <barcode> и характеристики <param>.
<offer>. Проверьте, что у них корректно передаётся общий товар и различающие параметры, иначе площадка склеит или задублирует карточки.Требования разных площадок
«Собрать один YML на всех» — заманчиво, но на практике площадки предъявляют разные требования, и универсальный фид часто отклоняется по частностям. Ориентир по типовым различиям:
| Площадка | Формат | На что смотреть |
|---|---|---|
| Яндекс.Маркет | YML (родной) | Тип оффера (simplified/vendor.model), обязательные param, актуальность цен |
| Мегамаркет | YML с оговорками | Свои обязательные поля, штрихкоды, категории по справочнику |
| VK Реклама / Директ | YML-фид | Корректные picture и url, UTM-метки при необходимости |
| Google Merchant | чаще Google-XML | YML напрямую не всегда подходит — нужен маппинг в свой формат |
Практичная стратегия — отдельный профиль экспорта под каждую площадку. Так вы точечно управляете набором товаров, ценой и составом тегов, не ломая уже принятый другой площадкой фид. Ozon и Wildberries в этот список не входят: там заведение товара идёт через API, а не через YML.
Автообновление файла по расписанию
Фид бесполезен, если он статичен: цены и остатки меняются ежедневно. В карточке профиля есть настройка автоматического обновления файла экспорта с указанием периода. Технически перегенерацию запускает агент модуля на «хитах» либо (правильнее для магазина под нагрузкой) внешний вызов агентов по cron.
- Для крупного каталога включите запуск агентов на cron (
/bitrix/php_interface/dbconn.php→define("BX_CRON", true)и задание в crontab), чтобы тяжёлая выгрузка не тормозила посетителей. - Период обновления согласуйте с частотой скачивания площадкой — чаще, чем площадка забирает файл, генерировать смысла нет.
- Если данные о ценах и остатках приходят из 1С, планируйте перегенерацию фида после завершения обмена, а не во время него — иначе в файл попадут промежуточные значения.
Проверка фида и типовые ошибки
Перед тем как отдавать ссылку площадке, прогоните файл через валидатор в кабинете маркетплейса — он покажет, какие офферы отклонены и почему. Чаще всего проблемы одни и те же:
- Пустые обязательные теги — нет картинки, цены или категории. Обычно это следствие незаполненных свойств товара, а не ошибки экспорта.
- Абсолютные vs относительные URL — в
<url>и<picture>должны быть полные адреса с доменом и протоколом. - Некорректная кодировка или спецсимволы — амперсанды и угловые скобки в названиях/описаниях должны быть экранированы; файл — в
UTF-8. - Рассинхрон наличия —
availableне совпадает с реальными остатками, потому что фид сгенерирован до обмена с 1С. - Отсутствующие
param— для ряда категорий площадка требует конкретные характеристики (размер, цвет), без них карточка не проходит модерацию.
Полезно хранить исходный .xml и периодически открывать его глазами: визуальная проверка первых офферов быстро выявляет сбитый маппинг свойств.
Итог
YML-фид в 1С-Битрикс — это штатный профиль экспорта каталога, который один раз настраивается (инфоблоки, тип цены, валюта, маппинг свойств в теги offer) и дальше сам обновляется по расписанию, отдаваясь площадке по постоянной ссылке. Ключ к стабильной выгрузке — аккуратный маппинг характеристик, корректная связка наличия со складом и перегенерация фида после обмена с 1С, а не во время. Для разных площадок держите отдельные профили: так проще проходить их различающиеся требования.
Если каталог большой, торговые предложения сложные, а площадок несколько, ручная настройка быстро упирается в частности модерации. Мы в B2Bsite настраиваем и сопровождаем YML-фиды и полноценные API-интеграции с маркетплейсами: от корректного маппинга свойств до автообновления и синхронизации цен и остатков.
Частые вопросы
Подходит ли YML-фид для Ozon и Wildberries?
Для заведения товаров — нет: эти маркетплейсы работают через собственный API. YML пригодится там разве что для первичной подготовки данных. Родная площадка для YML — Яндекс.Маркет, а также рекламные фиды и ценовые агрегаторы.
Где в админке Битрикс создаётся YML-фид?
В разделе Магазин → Настройки → Экспорт данных (в части сборок — Каталог → Экспорт данных). Там создаётся профиль экспорта с типом «Яндекс Маркет (YML)».
Где физически лежит файл фида и какую ссылку давать площадке?
Битрикс кладёт файл в каталог /bitrix/catalog_export/ и отдаёт по постоянному публичному URL. Именно эту ссылку указывают в кабинете площадки — при перегенерации она не меняется.
Как передать в фид цвет, размер и другие характеристики?
На шаге маппинга профиля свойства инфоблока сопоставляются с тегами param (name=«Цвет» и т.п.). Производитель обычно идёт в vendor, артикул — в vendorCode.
Как настроить автоматическое обновление фида?
В карточке профиля включается автообновление файла с заданным периодом. Перегенерацию запускают агенты модуля; для нагруженного магазина их лучше выносить на cron, чтобы не тормозить посетителей.
Как в YML передаётся наличие товара?
Через атрибут available="true|false" у оффера, который берётся из остатков или флага наличия. Важно генерировать фид после обмена с 1С, иначе наличие на площадке будет рассинхронизировано.
Можно ли одним фидом закрыть несколько площадок?
Технически да, но требования площадок различаются по обязательным полям и категориям. Надёжнее держать отдельный профиль экспорта под каждую площадку.
Почему часть товаров отклоняется при загрузке фида?
Чаще всего из-за пустых обязательных тегов (нет цены, картинки, категории), относительных URL вместо абсолютных или отсутствия обязательных для категории param. Валидатор в кабинете площадки покажет конкретные офферы.
Поможем с настройкой и поддержкой 1С-Битрикс: Управление сайтом
Поможем с настройкой, доработкой и поддержкой 1С-Битрикс: Управление сайтом.