SEO-кухня SEO-кухня 13.10.2022

Зачем нужен YML-файл и как его создать

Что такое YML-файл и зачем он нужен магазинам: структура и основы синтаксиса. Чем отличается от XML: особенности формата. Как создать и загрузить на Яндекс.Маркет вручную: пошаговая инструкция с примерами. Как проверить файл на валидность и ошибки. Как нас

Зачем нужен YML-файл и как его создать

Рассказываем, зачем нужен YML-формат, чем отличается от XML и YAML, как делать такие файлы: вручную, с помощью CMS или сторонних сервисов, — а также как проверить файл на ошибки, загрузить его в кабинет продавца на Яндекс.Маркете и впоследствии обновить.

Что такое YML-файл и зачем он нужен

YML-файл (прайс-лист) — это документ с данными о товарах, которые вы планируете размещать на Яндекс.Маркете. Он создаётся с помощью собственного языка разметки Яндекса — YML (Yandex Market Language).

Логика работы такая: вы загружаете в кабинет файл, а Яндекс превращает его в каталог товаров с карточками, ценами, условиями доставки/самовывоза и прочим.

На Яндекс.Маркет можно загружать товары и в форматах CSV и XLS, но площадка отдаёт предпочтение именно YML: так файлы загружать удобнее и быстрее, поэтому мы рассказываем именно об этом формате.

Вот как выглядит YML-файл:

Как выглядит YML-файл
Как выглядит YML‑файл

Сначала кажется, что создать YML‑файл сложно и это что‑то для программистов, но это не так. Главное — знать, какие там есть параметры и как их редактировать. Сейчас всё расскажем, и вы сможете повторить.

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

XML (eXtensible Markup Language) — расширяемый язык разметки. Он нужен для выделения логического содержимого документа для обработки. XML используется, например, в языках программирования: 1) SVG — для описания изображений в векторном формате; 2) в XAML — для описания интерфейсов приложений. И, конечно, XML — основа XHTML, благодаря чему мы видим страницы в интернете.

YML (Yandex Market Language) — собственный стандарт Яндекс.Маркета, основанный на XML. Он нужен именно для создания товаров в Яндекс.Маркете и работы с ними. YML использует синтаксис XML, но описывает исключительно товары и условия их размещения на Яндекс.Маркете.

YML не стоит путать с YAML. YAML (Yet Another Markup Language или YAML Ain’t Markup Language, «ещё один язык разметки» или «YAML — не язык разметки») — это формат хранения данных, похожий на язык разметки, но более удобный и с упрощённым синтаксисом.

YML также не имеет ничего общего с YMYL. YMYL — (Your Money or Your Life, «ваши деньги или ваша жизнь») — таким образом характеризуют контент на сайте, который может повлиять на здоровье, безопасность или финансовое благополучие людей, просматривающих этот сайт.

Из чего состоит YML‑файл

YML‑файлы в общем смысле делятся на 2 типа: такие, которые управляют товарами, и такие, которые управляют размещением (доставкой и самовывозом): у них есть общие элементы, а есть специализированные — для каждого типа свои.

Обязательные (общие) элементы

Это элементы, которые будут в любом YML‑файле.

Заголовок (шапка)

Занимает первую строку. Каждый файл должен начинаться именно с такой строки без каких‑либо изменений:

<?xml version="1.0" encoding="UTF‑8"?>

Если пользуетесь шаблоном для создания YML‑файлов, не меняйте эту строку. При создании своего файла с нуля просто скопируйте и вставьте эту строку в начало документа.

Корневой элемент <yml_catalog

В нём указываются дата и время момента, в который актуальны данные в файле, а также часовой пояс.

<yml_catalog date="2022‑05‑22T14:37+03:00">

Информация о магазине <shop>

Описывает основную информацию о вашем магазине, вкладывается в элемент <yml_catalog>.

В <shop> вкладываются следующие элементы:

Элементы <shop> и их описание
Элементы <shop> и их описание

Оффер <offers>

В <offers> вкладывается неограниченное количество элементов <offer> — конкретных товаров с ценами.

Если у вас файл, который управляет товарами, то внутри каждого <offer> нужно указать характеристики товара: название, описание, производитель. А если файл, который описывает параметры размещения — то информацию о ценах, скидках, остатках и прочем.

Также у <shop> есть атрибут – id. В id должен быть указан SKU — ваш личный идентификатор товара. Многие в качестве SKU используют артикул.

Требования к SKU: любая последовательность букв и/или цифр длиной до 80 знаков, английские и русские (кроме ё) буквы, цифры и символы . , ? ( ) [ ] — =.

Опциональные элементы

Это элементы, которые могут быть нужны или не нужны в зависимости от задачи файла.

Категории <categories>

Элемент не нужен в файле, который управляет размещением, но нужен в файле, который управляет товарами.

Описывает категории товаров. Например, у футболки будет категория «Одежда». Этот элемент вкладывается в элемент <shop>.

Каждой категории нужно присвоить уникальный идентификатор — целое положительное число длиной до 18 цифр — и записать его в атрибут id. А чтобы вложить одну категорию в другую (например, «Женскую одежду» в «Одежду»), нужно добавить атрибут parentid.

Выглядит это так:

<categories>
    <category id="1">`Товары для животных</category>
    <category id="2" parentId="1">Кошки</category>
    <category id="3" parentId="1">Собаки</category>
    <category id="4">Корм для кошек</category>
    <category id="5" parentId="4">Сухой</category>
    <category id="6">Шлейки и амуниция</category>
    <category id="7">Игрушки</category>
</categories>  

Параметры доставки <delivery‑options>

Этот элемент содержит в себе информацию о доставке — она описывается в конкретизирующих элементах <options>. Используется только в файле, управляющем размещением.

Элементов <options> может быть 5, каждый из них описывает один из способов доставки — например, обычную, ускоренную, на дом или до определённого пункта.

Параметры способа доставки задаются с помощью атрибутов:

  • cost — это атрибут для технической проверки файла, он не используется для передачи какой‑то информации и не виден покупателям. Просто напишите в этом атрибуте любое целое число.

  • days — атрибут, который рассказывает о том, за сколько дней будет осуществлена доставка. Минимум — 0 (если вы доставляете день в день), максимум — 60 дней. Если не указать этот атрибут, товар скроется с витрины: Яндекс не приемлет товары с неизвестным сроком доставки.

  • order‑before — атрибут, показывающий, до которого часа нужно оформить заказ, чтобы срок доставки начал отсчитываться с текущего дня. Можно не указывать — его значение по умолчанию 13 (если будете указывать, то указывайте целое число от 0 до 24).

Выглядит сложно, но вы сможете разобраться. Вот так это выглядит в файле:

<delivery‑options>
    <option cost="123" days="7" order‑before="15"/>
   <option cost="123" days="3" order‑before="12"/>
</delivery‑options> 

Здесь мы показали, что в одном способе доставки нужно заказать товар до 15:00, чтобы он был отправлен в этот же день, и доставка будет длиться 7 рабочих дней, а во втором — что заказать нужно до 12:00, и заказ будет доставлен за 3 дня.

Элемент <delivery‑options> может быть вложен как в <shop>, так и в <offer>. В первом случае он будет показывать условия доставки для всего магазина, во втором — для конкретного товара.

Параметры самовывоза <pickup‑options>

Здесь всё так же, как с параметрами доставки:

  • внутри может быть до пяти элементов <options>, описывающих разные способы самовывоза;

  • параметры способа самовывоза так же, как и параметры доставки, задаются атрибутами cost (технический), days (срок, в который товар будет в ПВЗ) и order‑before.

  • атрибут может быть вложен в <shop> для описания самовывоза для всего магазина и в <offer> для описания самовывоза конкретного товара.

❗️Элементы <delivery> и <pickup> нужны только в файлах, которые управляют размещением.

Ещё они нужны только тем магазинам, которые работают по модели DBS — это когда вы храните товары у себя на складе и доставляете их сами. Для двух других моделей — FBY (хранение на складе Маркета и доставка его силами) и FBS (хранение на вашем складе, доставка силами Маркета) — эти два элемента не актуальны.

Если ваш магазин не доставляет заказы покупателям или у него нет самовывоза, добавьте в файл такие строчки:

  • <delivery>false</delivery> — если нет доставки;

  • <pickup>false</pickup> — если нет самовывоза.

Пример полного YML‑файла

Хорошие примеры YML‑файлов обоих типов, сформированные корректно и с учётом всех особенностей площадки, у самого Яндекса. Вот они:

Файл для управления товарами (ZIP)

Файл для управления размещением товаров (ZIP)

На основе этих файлов и описанных выше элементов с атрибутами и будем создавать свой файл для загрузки в Маркет.

Как создать YML‑файл

Вручную

Сначала нужно зарегистрироваться на портале для селлеров и добавить магазин.

Дальше нужно скачать один из шаблонов Яндекса по ссылкам выше и отредактировать в соответствии с типом файла: заполнить обязательные элементы (заголовок, корневой элемент, информация о магазине и офферах) и описать категории и параметры доставки и самовывоза в зависимости от магазина и его условий.

Через модули CMS

Сделать файл через CMS можно, только если вы используете одну из следующих систем:

  • 1C‑Bitrix;

  • InSales;

  • WordPress;

  • Shop‑Script;

  • AdvantShop;

  • NetCat;

  • ReadyScript;

  • UMI.CMS;

  • Magento;

  • Simpla;

  • Okay CMS;

  • Ecwid;

  • Tilda Publishing.

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

Для этого перейдите в «Настройки» → «Настройки API» и нажмите на «Интеграционные модули».

Настройки API
Настройки API

Список всех CMS, интегрированных с Яндексом + информация о модулях, которые нужны для YML

Инструкция Яндекса: как сформировать файл в 1С‑Bitrix и устранить ошибки

InSales: как создать прайс‑лист для Яндекс.Маркета

С помощью специальных сервисов

Таких сервисов на момент написания статьи мы нашли два:

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

Этот вариант пригодится тем, у кого много позиций, но нет интеграции с CMS. Однако этот вариант не идеальный: это может быть небезопасно, а файл может быть сформирован с ошибками.

Как проверить файл на ошибки

Сейчас у вас уже должен быть готовый файл.

Когда вы загрузите его в Маркет, площадка автоматически проверит его и пришлёт отчёт об ошибках, поэтому заранее проверять необязательно.

Результат проверки файла
Результат проверки файла

Но можно и проверить, например через XML‑валидатор фидов в Вебмастере (проверяет и YML‑файлы).

Загрузите файл и выберите схему проверки «Маркет»:

Проверка YML-файла в Вебмастере
Проверка YML‑файла в Вебмастере

Возможные ошибки при загрузке файла

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

  1. Критичные ошибки. Они затрагивают весь файл, поэтому их обязательно нужно исправить.

  2. Ошибки в предложениях. Это ошибки в конкретных товарах. Стоит исправить, иначе опубликуются только те товарные позиции, где всё верно.

  3. Общие ошибки. Эти ошибки касаются раздела <shop>, их лучше всего исправить. Файл с такими ошибками, скорее всего, опубликуется, но с неточностями в товарах.

  4. Предупреждения в предложениях. Этот тип означает, что есть ошибки в некоторых позициях: лучше всего исправить, но опубликуется всё, просто с неточностями.

  5. Рекомендации. Это советы по улучшению листа — можно прислушаться, можно не обращать внимания (но лучше прислушаться).

Об ошибках в Яндекс.Справке

Как загрузить файл на Яндекс.Маркет

После проверки можно загружать файл в кабинет Маркета. Это можно сделать двумя способами: файлом и ссылкой.

Файлом

Файлом стоит загружать, если у вас нечасто обновляется ассортимент, потому что при каждом обновлении нужно снова загружать актуальный файл.

Перейдите в «Товары» → «Каталог» → «Загрузить файл».

Страница Каталога в Маркете
Страница каталога в Маркете

Добавьте файл, он должен быть не более 100 Мб.

Загрузка файла
Загрузка файла

Можете указать, какие данные отражать, а какие нет.

Выбор данных для отображения
Выбор данных для отображения

Ссылкой

Ссылкой рекомендуется загружать, если у вас частые обновления. Робот будет проходить по ссылке каждые 30 минут и скачивать актуальный файл — вам нужно лишь обновлять информацию в нём.

Загрузите созданные файлы в любое облачное хранилище (Яндекс.Диск или Google Drive), откройте доступ по ссылке.

Перейдите в «Товары» → «Автообновление каталога» → «Добавить ссылку на файл».

Раздел «Автообновление»
Раздел «Автообновление»

Выберите тип загружаемого файла — тот, который управляет товарами, или тот, который нужен для управления размещениями. Вы можете загрузить оба файла, но это нужно будет делать по очереди.

Вставьте ссылку, она должна быть не длиннее 512 символов.

Добавляем ссылку для автообновления
Добавляем ссылку для автообновления

Здесь также можно выбрать, какая информация будет отражена в итоговом каталоге. А ещё можно указать логин и пароль от хранилища, на которое ведёт ссылка, если оно закрытое.

Поля для заполнения в Автообновлении
Поля для заполнения в Автообновлении

Как работает автообновление каталога на Яндекс.Маркете

Как обновить файл

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

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

Если вы загружали каталог ссылкой, вам нужно внести изменения в файл, на который ведёт ссылка, а робот Маркета при следующем считывании увидит изменения, и информация обновится.

Интересное по теме:

Как добавить сайт в сервисы Яндекса

Как работать с Яндекс.Метрикой: установка, настройка, отчёты