Инструкция по формированию XML фида для сервиса сравнения цен

Документация описывает структуру XML файла для передачи товарного каталога вашего интернет-магазина на сервис сравнения цен.


Общая структура

<?xml version="1.0" encoding="UTF-8"?>
<yml_catalog>
    <shop>
        <name>Название магазина</name>
        <url>https://example.com</url>
        <currencies>...</currencies>
        <categories>...</categories>
        <offers>...</offers>
    </shop>
</yml_catalog>

Кодировка — UTF-8. Корневой элемент <yml_catalog> содержит один элемент <shop>.


1. Элемент <shop>

ТегОписаниеОбязательный
<name>Название интернет-магазинаДа
<url>Ссылка на главную страницу магазинаДа
<currencies>Блок валютДа
<categories>Блок категорий товаровДа
<offers>Блок товарных предложенийДа

2. Элемент <currencies>

Содержит перечень валют. Каждая валюта задаётся элементом <currency>.

АтрибутОписаниеОбязательный
idКод валюты (UAH, USD, EUR)Да
rateКурс относительно базовой валюты (для UAH всегда 1)Да
<currencies>
    <currency id="UAH" rate="1"/>
</currencies>

3. Элемент <categories>

Содержит перечень категорий. Категории могут иметь иерархию через атрибут parentId.

АтрибутОписаниеОбязательный
idУникальный идентификатор категорииДа

Текстовое значение элемента — название категории.

<categories>
    <category id="1">Приманки</category>
    <category id="2">Воблеры</category>
    <category id="3">Лески и шнуры</category>
    <category id="4">Лески</category>
</categories>

4. Элемент <offer>

Каждый товар описывается элементом <offer> внутри блока <offers>.

Атрибуты

АтрибутОписаниеОбязательный
idУникальный идентификатор товараДа
availableДоступность товара (true / false)Да

Дочерние теги

ТегОписаниеОбязательный
<name>Название товараДа
<url>Прямая ссылка на страницу товараДа
<price>Актуальная ценаДа
<priceOld>Старая цена до скидки (для отображения перечёркнутой цены)Нет
<currency>Валюта цены (UAH, USD, EUR)Да
<categoryId>ID категории, к которой относится товар (соответствует id из <categories>)Да
<vendor>Производитель / брендДа
<vendorCode>Код производителяНет
<code>Внутренний код / артикул товараДа
<image>Ссылка на изображение товара. Может быть несколько тегов <image>Нет
<param>Характеристика товара. Атрибут name — название параметра, значение элемента — значение параметраНет
<availability>Статус наличия товара. Допустимые значения: inStock, outOfStock, preOrder, backOrderДа
<label>Маркетинговый бейдж товара. Может быть несколько тегов <label>. Допустимые значения: discounted, new, endsSoon, promo, outlet, bestsellerНет

Значения <availability>

ЗначениеОписание
inStockТовар в наличии
outOfStockТовара нет в наличии
preOrderТовар доступен для предзаказа
backOrderТовар можно заказать под запрос (ожидается)

Значения <label>

ЗначениеОписание
discountedТовар с уценкой (повреждённая упаковка, витринный образец и т.д.)
newНовинка в ассортименте
endsSoonСкоро закончится (ограниченное количество на складе)
promoАкционное предложение (временная скидка)
outletРаспродажа (остатки, снятые с производства)
bestsellerХит продаж

Может быть несколько тегов <label> одновременно. Например, товар может быть одновременно новинкой и акционным.

Пример

<offer id="199513" available="true">
    <name>Воблер Flagman Swim Spark 90мм A020</name>
    <url>https://example.com/vobler-flagman-swim-spark-90mm-a020/p199513</url>
    <price>450</price>
    <priceOld>400</priceOld>
    <vendor>Flagman</vendor>
    <vendorCode>4157</vendorCode>
    <code>47919</code>
    <currency>UAH</currency>
    <categoryId>2</categoryId>
    <image>https://example.com/catalog/199513/1285299.jpg</image>
    <image>https://example.com/catalog/199513/1285300.jpg</image>
    <param name="Тип воблера">Swimbait</param>
    <param name="Длина">90</param>
    <param name="Вес">7.4 г</param>
    <param name="Заглубление">0.3 - 1 м</param>
    <param name="Плавучесть">Медленно тонет</param>
    <param name="Цвет">A020</param>
    <param name="Вес">12</param>
    <param name="Размер">90</param>
    <availability>inStock</availability>
    <label>promo</label>
</offer>

Пример XML фида


Рекомендации

Спецсимволы. Значения тегов, содержащие спецсимволы (<, >, &), оборачивайте в CDATA:

<name><![CDATA[Воблер 5" & больше]]></name>

Несколько изображений. Просто добавьте несколько тегов <image> последовательно:

<image>https://example.com/catalog/199513/1285299.jpg</image>
<image>https://example.com/catalog/199513/1285300.jpg</image>

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