Описание товарных фидов: структура и примеры

Товарный фид — это файл в формате XML, который содержит ссылки и краткие описания для товаров определенной категории.

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

Кроме того, для соответствия стандарту YML необходимо использовать только тот набор тегов и правил, которые разработал и описал Яндекс.

Структура товарного фида

Товарный фид имеет следующую структуру:

Нажмите, чтобы развернуть пример товарного фида ⬇️

<?xml version="1.0" encoding="UTF-8"?>
<yml_catalog date="YYYY-MM-DD hh:mm">
    <shop>
        <name>Yandex Market</name>
        <company>Yandex</company>
        <url>https://market.yandex.ru/</url>
        <picture>logo.png</picture>
        <currencies>
            <currency id="RUB" rate="1"/>
        </currencies>
        <categories>
            <category id="90401">Все товары</category>
            <category id="198118" parentId="90401">Бытовая техника</category>
            <category id="198119" parentId="90401">Электроника</category>
            ...
        </categories>
        <offers>
            <offer id="..." available="true">
                <name>...</name>
                <price>...</price>
                <currencyId>RUB</currencyId>
                <categoryId>...</categoryId>
                <picture>...</picture>
                <url>...</url>
                <group_id>...</group_id>
                <vendor>...</vendor>
                <oldprice>...</oldprice>
                <description>...</description>
                <barcode>...</barcode>
                ...
                <barcode>...</barcode>
                <param name="...">...</param>
                ...
                <param name="...">...</param>
            </offer>
            ...
        </offers>
    </shop>
</yml_catalog>

Описание элементов

Поле

Описание

Пример

xml header

Стандартный XML-заголовок. Должен начинаться с первой строки, с нулевого символа.

<?xml version=»1.0» encoding=»UTF-8»?>

yml_catalog

Любой XML-документ может содержать только один корневой элемент. Формат YML в качестве корневого использует элемент <yml_catalog>. Атрибут date элемента <yml_catalog> должен соответствовать дате и времени генерации YML-файла на стороне магазина. Дата должна иметь формат YYYY-MM-DD hh:mm.

<yml_catalog date=»2021-02-05 10:05»></yml>

shop

Элемент содержит описание компании и список предложений компании (offers).

<shop> <name>…</name> <company>…</company> <url>…</url> <picture>…</picture> <currencies> … </currencies> <categories> … </categories> <offers> … </offers> </shop>

name

Название бренда.

<name>Название бренда</name>

company

Юридическое название компании.

<company>Юридическое название компании</company>

url

Адрес сайта компании.

<url>https://site.ru</url>

picture

Ссылка на логотип компании. Обратите внимание, в теге <offer> есть одноименный тег <picture> – это ссылка на картинку, актуальную для данного продукта, изображение размером до 500*500 пикселей, максимально приближенное к квадратному.

<picture>https://site.ru/logo.png</picture>

currencies

Список валют, актуальных для предложений компании.

<currencies> … </currencies>

categories

Список категорий, актуальных для предложений компании.

<categories> … </categories>

offers

Список предложений (услуг) компании.

<offers> … </offers>

currency

В корневом элементе currencies содержится список валют, актуальных для компании. Для каждой валюты используйте отдельный элемент currency.

В атрибуте id укажите код основной валюты: RUR, RUB — рубли; UAH — гривны; BYN — белорусские рубли; KZT — тенге; USD — доллары; EUR — евро. В атрибуте rate (курс валюты) укажите единицу.

<currency id=»RUB» rate=»1»/>

category

В корневом элементе categories содержится список категорий компании. Для каждой категории используйте отдельный элемент category. Укажите: Идентификатор категории — в атрибуте id. Идентификатор категории более высокого уровня — в атрибуте parentId (если категория является дочерней). Если parentId не указан, категория считается корневой.

<categories> <category id=»1»>Категория 1</category> <category id=»2» parentId=»1»>Подкатегория 1.1</category> <category id=»3» parentId=»1»>Подкатегория 1.2</category> <category id=»4»>Категория 2</category> <category id=»5» parentId=»4»>Подкатегория 2.1</category> <category id=»6»>Категория 3</category> </categories>

offer

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

<offers> <offer id=»1»> … </offer> <offer id=»2»> … </offer> <offer id=»3»> … </offer> </offers>

Примечание

В поле categories указаны все категории товаров или услуг компании, несмотря на то, что для каждой из них (например: детские товары, электроника, товары для дома) существует свой фид.

Примеры фидов и описание элементов

Образование и услуги

Пример предложения образовательного продукта:

Нажмите, чтобы развернуть пример товарного фида ⬇️

<?xml version="1.0" encoding="UTF-8"?>
<yml_catalog date="2024-04-11 11:09">
    <shop>
        <name>Общий товарный фид</name>
        <company>shop</company>
        <url>https://shop.ru/</url>
        <currencies>
            <currency id="RUB" rate="1"/>
        </currencies>
        <categories>
            <category id="1">Онлайн-курсы для подготовки</category>
        </categories>
        <offers>
            <offer id="6" available="true">
                <name>Информатика [Стандарт]</name>
                <url>https://site.ru</url>
                <price>3790</price>
                <oldprice>4290</oldprice>
                <currencyId>RUR</currencyId>
                <categoryId>68</categoryId>
                <picture>https://99ballov.ru/images/inf-std.png</picture>
                <delivery>false</delivery>
                <pickup>false</pickup>
                <store>true</store>
                <description>Мастер группа Это проверенный годами формат подготовки, который позволит тебе пройти и закрепить программу, а также закрыть все проблемные темы в размеренном темпе!</description>
                <sales_notes>Необходима предоплата.</sales_notes>
                <enable_auto_discounts>false</enable_auto_discounts>
                <manufacturer_warranty>false</manufacturer_warranty>
                <sales-notes>Необходима предоплата.</sales-notes>
                <param name="3-4 занятия в неделю, каждое по 1.5-2 часа">Есть</param>
                <param name="Образовательная платформа и неограниченная практика на ней">Есть</param>
                <param name="Доступ к записям занятий с удобными тайм-кодами">Есть</param>
                <param name="Двухуровневое ДЗ после каждого занятия">Есть</param>
                <param name="Автоматическая проверка первой части">Есть</param>
                <param name="Работа над ошибками в ДЗ для закрепления темы">Есть</param>
                <param name="Зачет и пробник">Есть</param>
                <param name="Рабочие тетради и конспекты">Есть</param>
                <param name="Персональный менеджер">Есть</param>
                <param name="Онлайн-куратор">Есть</param>
                <param name="Спецкурс по сложной теме">Есть</param>
            </offer>
        </offers>
    </shop>
</yml_catalog>

Описание элементов

Поле

Описание

Пример

id

id продукта.

<offer id=»1»>

available

Наличие продукта. Всегда принимает значение true.

name

Название продукта, используется как самостоятельное поле, допускается передача информации о бренде и категории услуги

<name>Название бренда Категория 1 Название курса 1</name> <name>Название курса 1</name>

url

URL страницы продукта на сайте. Максимальная длина ссылки — 2048 символов. Допускаются кириллические ссылки. URL‑адрес формируется на основе стандарта RFC 3986.

<url>https://site.ru/courses/course_1/</url>

price

Актуальная цена продукта. Формат: целое или дробное число. Разделитель целой и дробной части — точка. Цена должна соответствовать стоимости продукта/услуги, иначе магазин при проверке получит ошибку. В некоторых категориях (если прайс-лист передается в формате YML) допустимо указывать начальную цену «от» — с помощью атрибута from=»true».

<price>7500</price>

oldprice

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

<oldprice>15000</oldprice>

currencyId

Валюта, в которой указана цена продукта: RUR, USD, EUR, UAH, KZT, BYN. Цена и валюта должны соответствовать друг другу. Например, вместе с USD надо указывать цену в долларах, а не в рублях.

<currencyId>RUB</currencyId>

categoryId

Идентификатор категории продукта, присвоенный магазином (целое число, не более 18 знаков). Примечание. Все идентификаторы категорий указаны в XML-файле в поле categories.

<categoryId>1</categoryId>

picture

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

<picture>https://site.ru/courses/course_1.jpg</picture>

delivery

Указывает, доступна ли курьерская доставка. Значение по умолчанию — true.

pickup

Указывает, доступен ли самовывоз. Значение по умолчанию — true.

store

Указывает, можно ли забрать товар в торговом зале. Значение по умолчанию — true.

description

Описание продукта. Длина текста — не более 3000 символов (включая знаки препинания). В описании запрещено указывать: Номера телефонов, адреса электронной почты, почтовые адреса, номера ICQ, логины мессенджеров, любые ссылки. Слова «скидка», «распродажа», «дешевый», «подарок» (кроме подарочных категорий), «бесплатно», «акция», «специальная цена», «новинка», «new», «аналог», «заказ», «хит». Условия продажи товара, например, данные об акциях или предоплате (их нужно передавать в элементе sales_notes в YML / Условия продажи в XLS). Регион, в котором продается товар. Информацию о разных модификациях товара (например, нельзя писать «товар в ассортименте»). Для каждой модификации нужно создать отдельное предложение. В формате YML допустимо использовать некоторые xhtml-теги при условии, что они заключены в блок CDATA и соблюдены общие правила стандарта XHTML.

<description>Лучший в мире курс. Выпускает самых совершенных дипломированных курсантов.</description>

sales_notes

Позволяет передать условия приобретения продукта – минимальная сумма, минимальное/максимальное количество, необходимость предоплаты, способы оплаты, дополнительные услуги, подарки/акции при приобретении конкретной услуги. Элемент обязателен, если у вас есть ограничения при покупке (например, минимальное количество товаров или необходимость предоплаты). Также можно указать варианты оплаты, акции и распродажи. В этом случае использование элемента необязательно. Допустимая длина текста — 50 символов.

<sales_notes>Возможна рассрочка на 12 месяцев с оплатой 7500 руб. в месяц</sales_notes>

enable_auto_discounts

Указывает включить или отключить автоматический расчет и показ скидок для отдельных предложений.

manufacturer_warranty

Гарантия производителя.

param

Характеристика продукта. Один элемент <param> описывает одну характеристику, при этом элемент <offer> может содержать любое количество <param>. В атрибуте name укажите название параметра (обязательно). В атрибуте unit задайте единицы измерения (для числовых параметров, опционально). Как указать сложные единицы измерения. В самом элементе <param>…</param> укажите значение параметра.

<param name=»Ближайшая дата начала занятий»>2021-02-06</param> <param name=»Продолжительность обучения, месяцев»>5</param>

Интернет-магазины

Пример товарного предложения в интернет-магазине:

Нажмите, чтобы развернуть пример товарного фида ⬇️

<offer id="10031877" available="true">
<url>https://go.redav.online/857c7da876c9bec1?dl=https%3A%2F%2Fwww.mvideo.ru%2Fproducts%2Fsaundbar-lg-s80qy-10031877&amp;m=5&amp;erid=LdtCKU5a7</url>
    <typePrefix>Саундбар</typePrefix>
    <name>Саундбар LG S80QY</name>
    <vendor>LG</vendor>
    <model>S80QY</model>
    <sales_notes>Необходима предоплата</sales_notes>
    <store>false</store>
    <pickup>true</pickup>
    <delivery>false</delivery>
    <manufacturer_warranty>false</manufacturer_warranty>
    <categoryId>2548</categoryId>
    <price>69999</price>
    <description>Гарантия: 1 год,Суммарная мощность: 480 Вт,Декодеры: DTS X, Dolby Atmos, DTS 96/24, DTS ES, DTS-HD MasterAudio, Dolby TrueHD, DTS, Dolby Digital, Dolby Digital Plus</description>
    <currencyId>RUR</currencyId>
    <picture>https://img.mvideo.ru/Pdb/10031877b.jpg</picture>
    <pickup-options>
    <option cost="0" days="0" order-before="22"></option>
    </pickup-options>
    <condition type="likenew">
    <reason>витринный образец</reason>
    </condition>
    <enable_auto_discounts>false</enable_auto_discounts>
    <condition type="likenew">
    <reason>витринный образец</reason>
    </condition>
    <sales-notes>Необходима предоплата</sales-notes>
    <param name="Беспроводное подключение">Wi-Fi</param>
    <param name="Беспроводной сабвуфер">Да</param>
    <param name="Встроенный модуль Wi-Fi">Да</param>
    <param name="Встроенный сабвуфер">Да</param>
    <param name="Гарантия">1</param>
    <param name="Гарантия предоставляется">производителем</param>
    <param name="Материал корпуса сабвуфера">МДФ/ пластик</param>
    <param name="Мощность сабвуфера">220</param>
    <param name="Мощность фронтальных АС">45</param>
    <param name="Сабвуфер">беспроводной*встроенный</param>
    <param name="Система звучания">3.1.3</param>
    <param name="Срок службы">5</param>
    <param name="Страна">Китай</param>
    <param name="Суммарная мощность">480</param>
</offer>

Поле

Описание

Пример

id

id продукта.

available

Наличие продукта.

Всегда принимает значение true.

url

URL страницы продукта на сайте. Максимальная длина ссылки — 2048 символов. Допускаются кириллические ссылки. URL‑адрес формируется на основе стандарта RFC 3986.

<url>https://site.ru/courses/course_1/</url>

typePrefix

Название типа или категории продукта

<typePrefix>Категория 1</typePrefix>

name

Название продукта, используется как самостоятельное поле, допускается передача информации о бренде и категории услуги

<name>Название бренда Категория 1 Название курса 1</name> <name>Название курса 1</name>

vendor

Название бренда

<vendor>Название бренда</vendor>

model

Название продукта, используется в связке с тегами vendor и typePrefix

<model>Название курса 1</model>

sales_notes

Позволяет передать условия приобретения продукта – минимальная сумма, минимальное/максимальное количество, необходимость предоплаты, способы оплаты, дополнительные услуги, подарки/акции при приобретении конкретной услуги.

Элемент обязателен, если у вас есть ограничения при покупке (например, минимальное количество товаров или необходимость предоплаты).

Также можно указать варианты оплаты, акции и распродажи. В этом случае использование элемента необязательно.

Допустимая длина текста — 50 символов.

<sales_notes>Возможна рассрочка на 12 месяцев с оплатой 7500 руб. в месяц</sales_notes>

store

Указывает, можно ли забрать товар в торговом зале.

Значение по умолчанию — true.

pickup

Указывает, доступен ли самовывоз из пункта выдачи.

Значение по умолчанию — true.

delivery

Указывает, доступна ли курьерская доставка.

Значение по умолчанию — true.

manufacturer_warranty

Гарантия производителя.

categoryId

Идентификатор категории продукта, присвоенный магазином (целое число, не более 18 знаков).

Примечание. Все идентификаторы категорий указаны в XML-файле в поле categories.

<categoryId>1</categoryId>

price

Актуальная цена продукта.

Формат: целое или дробное число.

Разделитель целой и дробной части — точка.

Цена должна соответствовать стоимости продукта/услуги, иначе магазин при проверке получит ошибку.

В некоторых категориях (если прайс-лист передается в формате YML) допустимо указывать начальную цену «от» — с помощью атрибута from=»true».

<price>7500</price>

oldprice

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

<oldprice>15000</oldprice>

description

Описание продукта.

Длина текста — не более 3000 символов (включая знаки препинания).

В описании запрещено указывать: Номера телефонов, адреса электронной почты, почтовые адреса, номера ICQ, логины мессенджеров, любые ссылки. Слова «скидка», «распродажа», «дешевый», «подарок» (кроме подарочных категорий), «бесплатно», «акция», «специальная цена», «новинка», «new», «аналог», «заказ», «хит». Условия продажи товара, например, данные об акциях или предоплате (их нужно передавать в элементе sales_notes в YML / Условия продажи в XLS). Регион, в котором продается товар. Информацию о разных модификациях товара (например, нельзя писать «товар в ассортименте»). Для каждой модификации нужно создать отдельное предложение.

В формате YML допустимо использовать некоторые xhtml-теги при условии, что они заключены в блок CDATA и соблюдены общие правила стандарта XHTML.

<description>Лучший в мире продукт. Дарит отличное настроение.</description>

currencyId

Валюта, в которой указана цена продукта: RUR, USD, EUR, UAH, KZT, BYN. Цена и валюта должны соответствовать друг другу. Например, вместе с USD надо указывать цену в долларах, а не в рублях.

<currency id=»RUB» rate=»1»/>

pickup-options

Не имеет атрибутов. Содержит до пяти элементов <option>, каждый из которых описывает один из способов самовывоза.

Может быть вложен в <shop> и в <offer>.Внутри <shop> элемент <pickup-options> определяет способы самовывоза, которые магазин предлагает по умолчанию.

Внутри <offer> элемент <pickup-options> указывает, что для конкретного товара действуют не общие условия самовывоза, а специальные.Параметры способа самовывоза задаются атрибутами:cost — не используется.

Задайте любое число, чтобы файл прошел техническую проверку.days — срок в рабочих днях, целое число или интервал, записанный через дефис.

Для самовывоза в день заказа укажите 0, для самовывоза на следующий день — 1. Максимальное значение — 60.

Если поле days оставить пустым, то товар будет скрыт с витрины. order-before — до которого часа можно оформить самовывоз этим способом, чтобы срок начал отсчитываться с сегодняшнего дня. Целое число от 0 до 24.

Это необязательный атрибут, значение по умолчанию — 13.

<pickup-options>     <option cost=»123» days=»2» order-before=»18»/> </pickup-options>

condition

Указывает в каком состоянии находится товар.

enable_auto_discounts

Указывает включить или отключить автоматический расчет и показ скидок для отдельных предложений.

picture

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

<picture>https://site.ru/product/product_1.jpg</picture>

barcode

Международный номер для идентификации товара. Доступные параметры:

EAN — штрихкод. ISBN — уникальный номер книжного издания.

У одного товара может быть несколько штрихкодов. Для книжного издания — несколько EAN и один ISBN.

<barcode>6937265110523</barcode>

param

Характеристика продукта.

Один элемент <param> описывает одну характеристику, при этом элемент <offer> может содержать любое количество <param>. В атрибуте name укажите название параметра (обязательно). В атрибуте unit задайте единицы измерения (для числовых параметров, опционально). Как указать сложные единицы измерения. В самом элементе <param>…</param> укажите значение параметра.

<param name=»Цвет»>розовый</param> <param name=»Объем»>1.7</param>