Форматы YML и CSV

Формат YML

Стандарт YML (Yandex Market Language) разработан Яндексом и основан на стандарте XML. Формат YML предоставляет больше возможностей и преимуществ, чем форматы XLS, CSV.

    Требования к YML‑файлу

    1. В YML нельзя использовать непечатаемые символы с ASCII-кодами от 0 до 31 (за исключением символов с кодами 9, 10, 13 — табуляция, перевод строки, возврат каретки).

    2. Символы " & > < ' нужно заменять на эквивалентные коды:

      Символ в тексте

      Код для YML-файла

      "
      &
      >
      <
      '
      &quot;
      &amp;
      &gt;
      &lt;
      &apos;
      Примечание. Вы можете использовать символы "&><'в блоке CDATA в описании предложения.
    3. Допустимые кодировки YML-файла: UTF-8, windows-1251.

    4. В качестве разделителя целой и дробной частей любых чисел, указанных в качестве значений YML‑элементов, независимо от региональных установок используется только точка.

    Пример YML‑файла

    <?xml version="1.0" encoding="UTF-8"?>
    <yml_catalog date="2019-11-01 17:22">
        <shop>
            <name>BestSeller</name>
            <company>Tne Best inc.</company>
            <url>http://best.seller.ru</url>
            <currencies>
                <currency id="RUR" rate="1"/>
            </currencies>
            <categories>
                <category id="1">Бытовая техника</category>
                <category id="10" parentId="1">Мелкая техника для кухни</category>
            </categories>
            <delivery-options>
                <option cost="200" days="1"/>
            </delivery-options>
            <offers>
                <offer id="9012">
                    <name>Мороженица Brand 3811</name>
                    <url>http://best.seller.ru/product_page.asp?pid=12345</url>
                    <price>8990</price>
                    <currencyId>RUR</currencyId>
                    <categoryId>10</categoryId>
                    <delivery>true</delivery>
                    <delivery-options>
                        <option cost="300" days="1" order-before="18"/>
                    </delivery-options>
                    <param name="Цвет">белый</param>
                    <weight>3.6</weight>
                    <dimensions>20.1/20.551/22.5</dimensions>
                    </offer>
            </offers>
            <gifts>
                <!-- подарки не из прайс‑листа -->
            </gifts>
            <promos>
                <!-- промоакции -->
            </promos>
        </shop>
    </yml_catalog>

    Основные элементы YML

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

    Элемент содержит описание магазина (shop), его предложений (offers) и акций (promos, gifts):

    Текстовый формат

    Текстовый формат с разделителями удобен при генерации прайс-листа из базы данных или редакторов электронных таблиц (например: Exсel, OpenOffice, Google Docs).

      Требования к прайс-листу в текстовом формате

      1. Одна строка файла должна соответствовать одной строке электронной таблицы.

      2. В качестве разделителя полей используется запятая или точка с запятой (CSV) либо символ табуляции (TSV).

      3. Одна строка файла должна содержать описание одного предложения.

      4. Первая строка файла должна содержать названия полей.

      5. Кодировка файла должна быть UTF-8.

      6. Нельзя использовать табуляцию и перенос строки внутри полей.

      7. Файл не должен содержать пустых столбцов.

      8. Порядок столбцов (полей) не задан строго, но в пределах одного файла порядок столбцов (полей) должен быть одинаковым.