YML-файл для Поиска по товарам
YML (Yandex Market Language) — это собственный стандарт Яндекса, основанный на XML. В YML-файле можно описать каталог магазина в формате, удобном для автоматической генерации.
Примечание
Если вы пользуетесь популярной CMS, посмотрите список модулей, которые помогут сформировать YML-файл.
Требования к файлу
-
Не используйте непечатаемые символы с ASCII-кодами от 0 до 31 (за исключением символов с кодами 9, 10, 13 — табуляция, перевод строки, возврат каретки).
-
Замените символы
" & > < '
на эквивалентные коды:Символ в тексте
Код для YML-файла
" & > < '
" & > < '
-
Используйте кодировку UTF-8 или windows-1251.
Ограничения
Размер YML-файла |
2 ГБ |
Количество всех YML-файлов (товарные фиды, фиды услуг и предложений, RSS для контентных Турбо‑страниц) суммарно для сайта и его поддоменов |
1000 |
Примечание
Вы можете использовать символы " & > < '
и HTML-теги H1-H6, p, br в блоке CDATA в элементе description.
Структура файла
<?xml version="1.0" encoding="UTF-8"?>
<yml_catalog date="2017-02-05T17:22">
<shop>
...
<offers>
...
</offers>
</shop>
</yml_catalog>
Элемент |
Описание |
Примечание |
|
Стандартный XML-заголовок. Должен начинаться с первой строки, с нулевого символа. |
— |
|
Корневой элемент. В атрибуте Дату и время нужно указать согласно стандарту RFC 3339. Обязательно укажите атрибут |
Обязательно указывайте часовой пояс. Он отсчитывается от UTC. Дату и время в будущем указывать нельзя. Если файл долго генерируется, указывайте в атрибуте момент начала генерации. Почему? |
|
Элемент содержит: |
Пример файла
<?xml version="1.0" encoding="UTF-8"?>
<yml_catalog date="2020-11-22T14:37:38+03:00">
<shop>
<name>BestSeller</name>
<company>Tne Best inc.</company>
<url>http://best.seller.ru</url>
<platform>uCoz</platform>
<categories>
<category id="1">Бытовая техника</category>
<category id="10" parentId="1">Мелкая техника для кухни</category>
<category id="101" parentId="10">Сэндвичницы и приборы для выпечки</category>
</categories>
<delivery-options>
<option cost="200" days="1"/>
</delivery-options>
<pickup-options>
<option cost="200" days="1"/>
</pickup-options>
<offers>
<offer id="9012">
<name>Мороженица Brand 3811</name>
<vendor>Brand</vendor>
<vendorCode>A1234567B</vendorCode>
<url>http://best.seller.ru/product_page.asp?pid=12345</url>
<price>8990</price>
<oldprice>9990</oldprice>
<enable_auto_discounts>true</enable_auto_discounts>
<currencyId>RUR</currencyId>
<categoryId>101</categoryId>
<picture>http://best.seller.ru/img/model_12345.jpg</picture>
<description>
<![CDATA[
<p>Это прибор, который придётся по вкусу всем любителям десертов и сладостей</p>
<p>С его помощью вы сможете делать вкусное домашнее мороженое из натуральных ингредиентов.</p>
]]>
</description>
<sales_notes>Необходима предоплата.</sales_notes>
<manufacturer_warranty>true</manufacturer_warranty>
<barcode>4601546021298</barcode>
<param name="Цвет">белый</param>
<weight>3.6</weight>
<dimensions>20.1/20.551/22.5</dimensions>
<condition type="preowned">
<quality>excellent</quality>
</condition>
</offer>
</offers>
</shop>
</yml_catalog>
Описание
Корневой элемент.
В атрибуте date
укажите дату и время момента, на который актуальны данные в файле. Загружаемая версия каталога должна быть не старше 10 дней.
Дату и время нужно указать согласно стандарту RFC 3339.
Обязательно укажите атрибут date
, если передаете остатки товаров или цены.
Примечание
Обязательно указывайте часовой пояс. Он отсчитывается от UTC.
Дату и время в будущем указывать нельзя.
Если файл долго генерируется, указывайте в атрибуте момент начала генерации. Почему?
Описание
Элемент содержит:
Описание
Элемент содержит:
Если указывать время завершения генерации, можно потерять изменения, внесенные вручную. Допустим, магазин начал генерировать файл в 12:00. В 12:05 вы через API изменили цену товара. В 12:10 магазин сформировал файл, и его скачал индексирующий робот. Если в файле будет стоять время 12:10, мы заменим внесенную вами цену на неактуальную из файла. Если же в нем будет стоять 12:00, ваше изменение будет считаться более поздним и никуда не денется.