Інструкція з формування 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>Виробник / брендТак
<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>315</price>
    <priceOld>315</priceOld>
    <vendor>Flagman</vendor>
    <code>SS90-A020</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="Вага (діапазон)">5-12</param>
    <param name="Розмір (діапазон)">80-110</param>
    <availability>inStock</availability>
    <label>new</label>
    <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 займає багато часу, генеруйте файл заздалегідь за розкладом, щоб у момент завантаження він вже був готовий на сервері.