Описание товарных фидов: структура и примеры
Товарный фид — это файл в формате 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&m=5&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> |