Что такое YML-файл и зачем он интернет-магазину
Сервисы просят «ссылку на выгрузку» — чаще всего речь про YML. Разбираем, как устроен файл, где он применяется, на каких требованиях спотыкаются и где включить выгрузку в вашей CMS.
Почти каждый сервис, которому нужен ваш ассортимент — рекламная система, маркетплейс, агрегатор цен, — просит «дайте ссылку на выгрузку». Чаще всего речь про YML. Разбираем, что это за файл, как он устроен внутри и почему один раз настроенная выгрузка избавляет от ручной работы навсегда.
Коротко: что это
YML (Yandex Market Language) — собственный стандарт Яндекса, основанный на XML. Это обычный текстовый файл, в котором описан весь каталог магазина: категории, товары, цены, наличие, картинки и характеристики.
Ключевое отличие от выгрузки в Excel: YML лежит по постоянной ссылке на вашем сайте, а не пересылается вручную. Сервис сам ходит по этому адресу раз в сколько-то часов и забирает свежие данные. Поменяли цену в админке — через ближайшее обновление она поменялась везде, куда подключена выгрузка.
Как он устроен
Минимальный файл выглядит так:
<?xml version="1.0" encoding="UTF-8"?>
<yml_catalog date="2026-08-19T12:00:00+03:00">
<shop>
<name>Хорошие ткани</name>
<company>ООО «Хорошие ткани»</company>
<url>https://example.ru</url>
<currencies>
<currency id="RUR" rate="1"/>
</currencies>
<categories>
<category id="1">Ткани</category>
<category id="2" parentId="1">Джинсовые</category>
</categories>
<offers>
<offer id="12345" available="true">
<name>Ткань джинсовая синяя, 320 г/м²</name>
<url>https://example.ru/tkan-dzhinsovaya</url>
<price>590</price>
<currencyId>RUR</currencyId>
<categoryId>2</categoryId>
<picture>https://example.ru/img/12345.jpg</picture>
<param name="Состав">100% хлопок</param>
<param name="Ширина">150 см</param>
</offer>
</offers>
</shop>
</yml_catalog>
Логика простая: корневой элемент yml_catalog с датой выгрузки, внутри shop с данными магазина, внутри — справочник категорий и список товаров offers. Каждый товар — это offer с обязательным атрибутом id: это ваш артикул, по которому сервис на следующей выгрузке поймёт, что перед ним тот же самый товар, а не новый.
Остальное — по потребности принимающей стороны. Чем богаче param с характеристиками, тем лучше товар находится и тем точнее его раскладывают по категориям.
Где применяется
Яндекс Маркет. Изначально формат придуман именно для него: так магазин передаёт ассортимент на площадку.
Яндекс Директ. Смарт-баннеры и динамические объявления строятся на товарном фиде. Директ принимает и CSV с XLSX, но YML остаётся основным форматом — он несёт больше данных о товаре.
Маркетплейсы и витрины. Многие площадки, включая teeu, подключают магазин именно по ссылке на YML: продавец ничего не заводит руками, товары приезжают сами и обновляются по расписанию.
Агрегаторы цен и товарные площадки. Тот же принцип: одна ссылка вместо переписки с прайсами.
Внутренние задачи. Обмен между сайтом и складской системой, перенос каталога при переезде на другую CMS, резервная копия ассортимента в читаемом виде.
Отсюда главная практическая ценность: выгрузка делается один раз, а подключается сколько угодно раз. Новый канал продаж перестаёт быть проектом на неделю и становится вставкой одной ссылки.
Требования, на которых спотыкаются
- Дата не должна быть старой. Яндекс не принимает каталог старше 10 дней и не принимает дату из будущего. Если выгрузка формируется раз в сутки — всё в порядке; если файл сгенерировали однажды и забыли, он однажды перестанет приниматься.
- Кодировка — UTF-8 или Windows-1251. Другие приведут к ошибке разбора.
- Никаких непечатаемых символов. Стандарт запрещает символы с кодами 0–31, кроме табуляции и переводов строки. Обычно они приезжают из описаний, скопированных из Word.
- Наличие должно быть настоящим. Атрибут
available— не украшение: по нему площадки снимают товар с витрины. Выгрузка, где всё всегда «в наличии», быстро превращается в поток отменённых заказов. - Ссылки на картинки должны открываться. Закрытые от посторонних папки с изображениями — самая частая причина, почему товары приезжают без фото.
Где взять такой файл
Хорошая новость: почти всегда его не нужно программировать. В большинстве систем выгрузка либо встроена, либо ставится модулем — надо просто знать, где включить.
Мы собрали инструкции по популярным системам в одном месте: teeu.ru/integrations. Там разобраны 1С-Битрикс, 1С, InSales, Tilda, OpenCart, WordPress, Joomla, AdvantShop, МойСклад и другие — где включается выгрузка, что настроить и какую ссылку потом использовать.
Если системы в списке нет, спросите у разработчика сайта про «YML-выгрузку для Яндекс.Маркета» — формулировка знакома любому, кто работал с российскими интернет-магазинами.
Источники: документация Яндекс Маркета про YML