Экспорт каталога в YML для Яндекс.Маркета

Как собрать YML-фид для Яндекс.Маркета из XML, CSV, JSON или 1С-источника: формат YML, площадка «Яндекс Маркет», автоматический каркас и условия выгрузки.

Eofferix позволяет собирать готовый YML-фид для Яндекс.Маркета из любого источника — XML, CSV, JSON, 1С-выгрузки и Excel-таблиц.

Можно настроить как разовую выгрузку, так и регулярную автоматическую обработку: сервис сам будет забирать исходник, преобразовывать его по подготовленному шаблону и передавать готовый YML-фид по ссылке, отправлять по email или выгружать на FTP.

1. Создайте профиль

Откройте раздел «Интерпретатор» и нажмите «Новый профиль».

Раздел Интерпретатор с кнопкой Новый профиль, выделенной красной рамкой
Пустой раздел «Интерпретатор»: кнопка «Новый профиль» открывает мастер создания.

Задайте название профиля и загрузите исходный файл — XML, CSV, JSON, XLS/XLSX или выгрузку 1С. После загрузки нажмите «Загрузить файл»: сервис прочитает структуру источника и покажет доступные форматы экспорта.

2. Выберите формат YML и площадку «Яндекс Маркет»

В блоке «В какой формат выгружать?» на вкладке «Форматы» выберите карточку YML.

Блок В какой формат выгружать с выделенной красной рамкой карточкой YML на вкладке Форматы
YML — самостоятельный формат экспорта, а не пресет XML: он лежит на вкладке «Форматы» рядом с XML, JSON, CSV, XLS и XLSX.

После выбора YML под карточками появится блок «Профиль YML» со списком «Площадка или сценарий». По умолчанию там стоит «Универсальный YML» — откройте список и выберите «Яндекс Маркет».

Список Площадка или сценарий с выбранным пунктом Яндекс Маркет, выделенным красной рамкой
В этом же списке есть и другие готовые сценарии YML: «Яндекс Товары / Поиск», «Яндекс Директ», «Товары и услуги Яндекс.Бизнес», «2ГИС» и «Ozon: цены и остатки» — механика подготовки каркаса для них одинаковая.

Нажмите «Продолжить» — сервис откроет редактор шаблона на странице снапшота.

3. Соберите структуру по боковой подсказке

В редакторе справа есть панель «Подготовка YML для Яндекс.Маркет». Она построчно проверяет требования площадки и подсказывает, что сделать дальше. Разберём панель по элементам — что где находится и что каждый значок означает.

Где включить и выключить панель

Панель открыта по умолчанию. Если её закрыли, откройте кнопку «Инструменты» над снапшотом.

Кнопка Инструменты над снапшотом, выделенная красной рамкой
Кнопка «Инструменты» открывает выпадающее меню с дополнительными действиями снапшота.

В меню — пункт «Показать панель YML» / «Скрыть панель YML» (текст меняется в зависимости от текущего состояния).

Пункт меню Скрыть панель YML, выделенный красной рамкой
Тот же пункт меню включает и выключает панель — можно закрыть её, если она временно мешает работе со снапшотом, и открыть обратно тем же кликом.

Заголовок панели

Сверху — название площадки, под ним короткое пояснение сервиса, как панелью пользоваться. Крестик справа сворачивает панель — то же самое, что пункт меню «Скрыть панель YML» из «Инструментов».

Заголовок панели Подготовка YML для Яндекс.Маркет с крестиком закрытия, выделенный красной рамкой
Пока не все обязательные пункты выполнены, здесь написано «Панель проверяет требования площадки…»; когда всё готово, текст меняется на «Обязательная структура и поля закрыты».

Разделы панели

Ниже заголовка список разбит на разделы: «Каркас YML», «Обязательные поля offer», «Условно обязательные», «Рекомендуемые», «Прочие параметры» и раздел с полями источника, которых нет в требованиях площадки. У каждого раздела — счётчик пунктов и кнопка «Скрыть»/«Показать», сворачивающая раздел целиком.

Заголовок раздела Каркас YML со счётчиком 11 и кнопкой Скрыть, выделенный красной рамкой
«Каркас YML» — самый важный раздел: это структура yml_catalog/shop/offers и обязательные поля товара. Число рядом — сколько пунктов в разделе.

Как устроена одна строка чек-листа

У каждого пункта слева значок состояния, по центру название и краткий статус, справа — кнопка действия (если оно нужно) и, если пункт уже применён, значок отмены.

Готовый пункт: зелёная галка, статус начинается со слова «Готово». Значок с закруглённой стрелкой справа — «Отменить»: он появляется у пунктов, которые панель применила сама или по вашему клику, и позволяет откатить именно это действие.

Готовый пункт Корень файла с зелёной галкой и значком отмены, выделенный красной рамкой
«Корень файла» сервис создаёт автоматически, поэтому пункт готов сразу — со значком отмены на случай, если нужно вернуть как было.

Пункт, который нужно применить: жёлтый восклицательный знак, под названием — что именно нужно и почему. Кнопка с волшебной палочкой справа — нажмите её, чтобы панель применила подсказку сама.

Пункт Узел shop с жёлтым восклицательным знаком и кнопкой применить, выделенный красной рамкой
«Узел shop» ещё не создан — панель объясняет, что нужно, и предлагает кнопку с волшебной палочкой, чтобы создать его одним кликом.

После клика по кнопке пункт сразу становится готовым — тем же способом, что и автоматические пункты выше.

Пункт Узел shop после применения — зелёная галка и значок отмены, выделенный красной рамкой
После клика статус меняется на «Готово: shop вложен в yml_catalog» и появляется значок отмены.

Если узел товара панель определила верно, у него та же кнопка с волшебной палочкой перенесёт его в offers и переименует в offer одним кликом. Любую подсказку можно не принимать: клик по названию поля прямо в снапшоте открывает его настройки, где название, путь и преобразования редактируются вручную, в обход панели.

Обязательные поля offer

Ниже «Каркаса YML» идёт раздел «Обязательные поля offer» — тут те же значки и та же кнопка с волшебной палочкой, но уже для конкретных полей товара: id, name, price, currencyId. Панель подсказывает, какое поле источника подходит, и переименовывает его при клике — например, поле photo исходника панель сама превращает в picture, как того требует YML.

Раздел Обязательные поля offer с пунктом offer/@id и кнопкой применить, выделенный красной рамкой
Панель нашла дочерний узел id и предлагает сделать из него атрибут offer/@id — стандартный способ задать SKU в YML.

Остальные разделы работают по той же логике значков и кнопок: «Условно обязательные» и «Рекомендуемые» — это необязательные, но желательные поля офера (например, штрихкод или ссылка на карточку товара); «Прочие параметры» — поля источника, для которых панель не нашла обязательного места в YML: их можно оставить, перенести вручную или исключить кнопкой с иконкой корзины, не трогая исходные данные; категории по умолчанию собираются из текстовых значений поля категории и получают собственный числовой id.

Полностью сопоставленный снапшот YML с узлом offer и завершённым чек-листом панели
Когда чек-лист панели весь зелёный, каждый offer уже содержит id, name, price, currencyId, categoryId и переименованные поля источника.

4. Настройте условия выгрузки (необязательный шаг)

Чтобы не выгружать «мусорные» позиции — например, товары без фото или с нулевой ценой, — используется блок «Условия выгрузки» в настройках поля. Дальше — по шагам, с указанием, куда именно кликать.

Шаг 1. Откройте поле

В снапшоте кликните по значению нужного поля — например, по числу 2490 внутри узла price.

Значение поля price в снапшоте, выделенное красной рамкой — сюда нужно кликнуть
Клик по самому значению (не по названию тега) открывает панель настроек этого поля.

Шаг 2. Разверните блок «Условия выгрузки»

В открывшейся панели блок «Условия выгрузки» сначала свёрнут — заголовок работает как переключатель «Открыть/Скрыть». Значок ? рядом с заголовком — короткая подсказка сервиса о том, что делает этот блок.

Свёрнутый заголовок блока Условия выгрузки, выделенный красной рамкой — на него нужно нажать, чтобы развернуть
Кликните по заголовку «Условия выгрузки», чтобы блок развернулся.

Шаг 3. Добавьте условие

Нажмите «Добавить условие выгрузки».

Кнопка Добавить условие выгрузки, выделенная красной рамкой
До первого условия переключатель справа уже показывает «Для элемента целиком» — это область действия по умолчанию, пока в списке нет ни одного условия.

Появится строка с четырьмя настройками по умолчанию — источник «Текущее значение», момент «До преобразований», оператор «любое» (то есть пока ни на что не влияет) и пустое значение для сравнения.

Новая строка условия с настройками по умолчанию, выделенная красной рамкой
Четыре контрола слева направо: источник проверки, момент проверки, оператор, значение для сравнения.

Шаг 4. Выберите область действия

Переключатель справа сверху решает, что именно пропадёт из результата, если условие не выполнится: «Для узла» — только это поле; «Для элемента целиком» — весь товар (offer), строка таблицы или другой родительский элемент.

Переключатель области действия Для узла / Для элемента целиком, выделенный красной рамкой
Чтобы убрать товар целиком, а не только поле цены, оставьте «Для элемента целиком».

Шаг 5. Выберите оператор и укажите значение

Откройте список оператора и выберите нужный — например, «не равно».

Открытый список операторов с пунктом не равно, выделенным красной рамкой
Полный список операторов: равно, не равно, пустое, не пустое, содержит подстроку, не содержит подстроку, больше, меньше, больше или равно, меньше или равно, начинается с, заканчивается на, регулярное выражение, не регулярное выражение, любое.

Впишите значение для сравнения — например, 0. Значок списка справа от поля значения позволяет вставить вместо текста путь к другому узлу/атрибуту или служебное значение (текущую дату, курс валюты и т.д.).

Настроенное условие: текущее значение не равно 0, область — для элемента целиком, выделено красной рамкой
Готовое условие: «текущее значение не равно 0», область «Для элемента целиком».

Как это работает на самом деле — важно не перепутать

Условие описывает, при каком значении поле или элемент должны остаться в результате — а не то, какое значение из него убрать. Если условие не выполняется, поле (или весь элемент — в зависимости от области действия) пропадает из выгрузки. Если условий в списке несколько, они действуют как логическое «И»: должны выполниться все сразу, иначе элемент выпадает.

Отсюда практическое следствие: чтобы убрать товары с нулевой ценой, условие должно требовать обратного — «текущее значение не равно 0», как на скриншоте выше, а не «равно 0». Условие «равно 0», наоборот, оставило бы в выгрузке только нулевые товары и убрало бы все остальные. То же с фото: чтобы убрать товары без картинки, ставьте «не пустое» на поле фото — тогда останутся только те, где фото заполнено.

Управление условиями: изменить, отключить, удалить

Изменить — любой из четырёх контролов в строке можно поменять в любой момент, изменения применяются сразу.

Временно не учитывать условие, не удаляя его — переключите оператор обратно на «любое» (см. скриншот строки по умолчанию выше): такое условие выполняется всегда и перестаёт на что-либо влиять, но остаётся в списке, если нужно быстро вернуть его обратно.

Удалить — красная кнопка с крестиком справа от строки убирает условие насовсем.

Кнопка удаления условия с крестиком, выделенная красной рамкой
Крестик справа удаляет строку условия без возможности отмены.

Дублировать и переставить местами — три оставшихся значка: копия строки (если нужно похожее условие с другим оператором или значением) и стрелки вверх/вниз для порядка в списке. Порядок строк на результат не влияет — условия всё равно проверяются все одновременно, — стрелки нужны только для удобства чтения.

Значки Дублировать, Выше и Ниже, выделенные красной рамкой
Слева направо: «Дублировать», «Выше», «Ниже». Условий в одном поле можно добавить сколько угодно — той же кнопкой «Добавить условие выгрузки».

Подробный справочник по источникам проверки, моменту проверки и полному списку операторов, а также о том, чем «Условия выгрузки» отличаются от действий «не загружать поле» и «пропустить» внутри самих правил преобразования — в статье «Условия выгрузки и управление выгрузкой поля».

5. Запустите преобразование

Нажмите «Далее» и перейдите на страницу запуска. Сервис заранее показывает стоимость в кредитах; после завершения расчёта появляется кнопка «Запустить».

Страница запуска с рассчитанной стоимостью в кредитах и кнопкой Запустить, выделенной красной рамкой
Пока расчёт стоимости не завершён, кнопка неактивна и подписана «Ждём расчёт»; как только цена посчитана, она превращается в «Запустить» с суммой в кредитах.
Страница результата запуска со статусом Завершено и кнопкой Скачать YML, выделенной красной рамкой
Готовый запуск показывает статус «Завершено», число списанных кредитов и кнопку «Скачать YML» — по ней результат сразу скачивается.

Результат — файл с корнем yml_catalog, атрибутом даты, магазином, валютами, категориями и предложениями, готовый для загрузки в кабинет Яндекс.Маркета.

Разовая выгрузка или регулярная обработка

Разовая выгрузка — это то, что описано выше: один запуск, один файл на скачивание. Для регулярной обработки тот же профиль можно поставить на расписание — сервис сам будет забирать новую версию источника, прогонять её через уже настроенный шаблон и отдавать готовый YML-фид по ссылке, email или FTP, без повторной настройки.