Формат YML и текстовые форматы

Формат YML

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

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

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

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

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

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

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

    Структура YML-файла

    <?xml version="1.0" encoding="UTF-8"?>
    <yml_catalog date="2017-02-05 17:22">
      <shop>
        ...
        <offers>
          ...     
        </offers>
        <gifts>
          ...
        </gifts>
        <promos>
          ...
        </promos>
      </shop>
    </yml_catalog>
    ЭлементОписание
    xml headerСтандартный XML-заголовок. Должен начинаться с первой строки, с нулевого символа.
    yml_catalogЛюбой XML-документ может содержать только один корневой элемент. Формат YML в качестве корневого использует элемент <yml_catalog>. Атрибут date элемента <yml_catalog> должен соответствовать дате и времени генерации YML-файла на стороне магазина. Дата должна иметь формат YYYY-MM-DD hh:mm.
    shop

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

    Посмотреть пример полного YML
    <?xml version="1.0" encoding="UTF-8"?>
    <yml_catalog date="2017-02-05 17:22">
        <shop>
        <name>BestSeller</name>
        <company>Tne Best inc.</company>
        <url>http://best.seller.ru</url>
        <currencies>
          <currency id="RUR" rate="1"/>
          <currency id="USD" rate="60"/>
        </currencies>
        <categories>
          <category id="1">Бытовая техника</category>
          <category id="10" parentId="1">Мелкая техника для кухни</category>
          <category id="101" parentId="10">Сэндвичницы и приборы для выпечки</category>
          <category id="102" parentId="10">Мороженицы</category>
        </categories>
        <delivery-options>
          <option cost="300" days="0" order-before="12"/>
        </delivery-options>
        <offers>
          <offer id="12346" available="true" bid="80" cbid="90">
            <url>http://best.seller.ru/product_page.asp?pid=12348</url>
            <price>1490</price>
            <oldprice>1620</oldprice>
            <currencyId>RUR</currencyId>
            <categoryId>101</categoryId>
            <picture>http://best.seller.ru/img/large_12348.jpg</picture>
            <store>false</store>
            <pickup>true</pickup>
            <delivery>true</delivery>
            <delivery-options>
              <option cost="300" days="0" order-before="12"/>
            </delivery-options>
            <name>Вафельница First FA-5300</name>
            <vendor>First</vendor>
            <vendorCode>A1234567B</vendorCode>
            <description>
            <![CDATA[
              <p>Отличный подарок для любителей венских вафель.</p>
            ]]>
            </description>
            <sales_notes>Необходима предоплата.</sales_notes>
            <manufacturer_warranty>true</manufacturer_warranty>
            <country_of_origin>Россия</country_of_origin>
            <barcode>0156789012</barcode>
          </offer>
          <offer id="9012" type="vendor.model" available="true" bid="80" cbid="90">
            <url>http://best.seller.ru/product_page.asp?pid=12345</url>
            <price>8990</price>
            <oldprice>9900</oldprice>
            <currencyId>RUR</currencyId>
            <categoryId>102</categoryId>
            <picture>http://best.seller.ru/img/model_12345.jpg</picture>
            <store>false</store>
            <pickup>false</pickup>
            <delivery>true</delivery>
            <delivery-options>
              <option cost="300" days="1" order-before="18"/>
            </delivery-options>
            <typePrefix>Мороженица</typePrefix>
            <vendor>Brand</vendor>
            <model>3811</model>
            <description>
            <![CDATA[
              <h3>Мороженица Brand 3811</h3>
              <p>Это прибор, который придётся по вкусу всем любителям десертов и сладостей, ведь с его помощью вы сможете делать вкусное домашнее мороженое из натуральных ингредиентов.</p>
            ]]>
            </description>
            <param name="Цвет">белый</param>
            <sales_notes>Необходима предоплата.</sales_notes>
            <manufacturer_warranty>true</manufacturer_warranty>
            <country_of_origin>Китай</country_of_origin>
            <barcode>0123456789379</barcode>
          </offer>
        </offers>
      </shop>
    </yml_catalog>

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

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

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

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

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

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

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

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

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

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

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