Что такое YML-фид для Яндекс Маркета и как подготовить для него данные из Excel

Знакомая ситуация: 2 000 позиций на Яндекс Маркете, цены поставщика меняются дважды в неделю, и каждое обновление — это ручная загрузка Excel через кабинет. Где-то на десятом круге все слышат слово «фид»: мол, можно отдать Маркету ссылку, и он будет забирать актуальные данные сам. Разбираемся, что такое YML-фид, из чего он состоит и какую роль в этой схеме играет подготовка данных из Excel.

Что такое YML-фид

YML (Yandex Market Language) — это XML-файл со всеми товарами магазина, который лежит на вашем сервере по постоянной ссылке. Маркет ходит по этой ссылке по расписанию и подтягивает свежие цены, остатки и описания без вашего участия.

В этом главное отличие от табличной загрузки: Excel-файл вы загружаете руками каждый раз, а фид обновляется автоматически — стоит один раз настроить генерацию, и дальше витрина синхронизируется сама. Оба пути мы разбирали в обзоре форматов прайс-листа для Маркета.

Из чего состоит фид

YML-файл выглядит пугающе только снаружи. Внутри — обычная вложенная структура:

  • shop — корневой блок магазина: название, компания, ссылка на сайт.
  • currencies — валюты, в которых отдаются цены (обычно одна — рубль).
  • categories — дерево категорий магазина: у каждой свой числовой идентификатор и, при необходимости, родительская категория.
  • offers — сами товары. Каждый offer — это карточка: уникальный offer id (ваш артикул), price, categoryId (привязка к категории из блока выше), название, ссылка на фото, остаток.

По сути, фид — это та же таблица прайса, только «завёрнутая» в XML-теги: строка таблицы становится offer'ом, колонки — его полями. Поэтому качество фида процентов на девяносто определяется качеством таблицы, из которой он собирается.

Кому нужен фид, а кому хватит Excel

Фид имеет смысл, когда обновления — постоянный поток: тысячи позиций, цены и остатки меняются каждый день, складов или поставщиков несколько. Тогда автообновление по ссылке экономит часы ежедневно.

Если у вас пара сотен товаров и цены меняются раз в неделю, проще загружать Excel-шаблон через кабинет — вот пошаговый разбор загрузки из прайса поставщика. Никакой разработки не нужно, а контроль над каждой загрузкой выше.

Честно: фид генерирует не конвертер

YML-файл должен жить на сервере и обновляться сам. Это делает либо CMS магазина (у многих движков есть готовый модуль экспорта), либо скрипт, который пишет разработчик. Онлайн-конвертер фид не генерирует — важно понимать это до того, как искать кнопку «сделать YML».

Зато конвертер закрывает самую трудоёмкую часть — подготовку данных, из которых фид собирается. Скрипту или модулю CMS нужна чистая таблица: одна строка — один товар, цена числом, без строк «Итого» и позиций с нулевым остатком. Прайс поставщика таким не бывает никогда: шапка в две строки, цены с «руб.» и пробелами-тысячами, разделы-категории вперемешку с товарами.

Как подготовить данные для фида из Excel

Откройте конвертер прайсов для Яндекс Маркета и перетащите файл поставщика на страницу. Дальше — четыре шага с живым превью:

  1. Структура. Укажите, с какой строки начинается таблица, схлопните двухстрочную шапку, удалите строки-разделы.
  2. Колонки. Переименуйте колонки под поля будущего фида: «Артикул» → offer id, «Цена опт» → price, «Группа» → categoryId. Лишние удалите.
  3. Действия на колонках. «Убрать пробелы» уберёт тысячные разделители из цен, «Умножить» добавит наценку (например, ×1,15), «Округлить» приведёт цены к рублям.
  4. Фильтры. «Остаток больше 0» отсечёт отсутствующие позиции, «Не содержит Итого» — служебные строки.
Сопоставление колонок прайса полям YML-фида
Колонки переименованы под поля фида, цена — с наценкой

На шаге фильтров видно, сколько строк уйдёт из выгрузки ещё до того, как файл попадёт в скрипт:

Фильтры строк: остаток больше нуля и без служебных строк
Нулевые остатки и строки-разделы отфильтрованы

На экспорте вы получаете XLSX со значениями (без формул) или CSV в UTF-8 — чистую таблицу, которую скрипт или CMS превратит в фид без ошибок валидации:

Экспорт чистой таблицы для генерации YML-фида
Готовая таблица — источник данных для генератора фида

Обратная задача — разобрать чужой фид в таблицу для анализа — тоже решается через таблицу: об этом статья про преобразование YML в Excel.

Частые вопросы

Чем YML отличается от XML?

YML — это частный случай XML со своими правилами: строго заданные теги (shop, categories, offers), обязательные поля у offer'а. Обычный XML Маркет не примет — нужен именно YML, собранный по спецификации.

Может ли конвертер выдать готовый YML-файл?

Нет. Конвертер готовит чистую таблицу (XLSX или CSV): приводит колонки, чистит цены, фильтрует строки. Генерация фида из этой таблицы — задача скрипта или модуля CMS, потому что фид должен обновляться на сервере сам.

Сколько товаров — порог, после которого нужен фид?

Жёсткого правила нет. Ориентир простой: если ручная загрузка Excel занимает больше получаса в день или цены устаревают раньше, чем вы успеваете их обновить, — пора на фид. До этого Excel в кабинете справляется.

Прайс приходит каждую неделю. Всё настраивать заново?

Нет. После регистрации настройки сохраняются шаблоном: новый прайс → применить шаблон → скачать готовую таблицу → отдать её генератору фида.