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

Сервис Микс-Товары позволяет автоматизировать публикацию прайс-листа, но для этого прайс-лист должен соответствовать нашим требованиям.

Для работы с нашим сервисом необходимо подготовить прайс-лист в формате YML (формат Яндекс.Маркета). Мы поддерживаем работу с YML в двух форматах:
- <name>;
- <vendor> и <model>

Формат <name> используется для описания товаров, где бренд/производитель товара не играет ключевую роль при выборе и покупке товара, например: сувениры, подарки и т.д.

Формат <vendor> и <model> используется для описания товаров, где бренд/производитель товара играет ключевую роль при выборе и покупке товара, например: бытовая техника, парфюмерия, электроника и т.д.
Если у товара не известен бренд/производитель, то можно использовать <vendor>NoName</vendor> или описывать товар в формате <name>.

Товары в других форматах YML не поддерживаются Микс-Товарами.


Пример YML прайс-листа в формате <vendor> и <model> с комментариями

<?xml version="1.0" encoding="..." ?>

<!-- В поле encoding нужно указать кодировку, например: 
     encoding="windows-1251" -->

<yml_catalog>
  <shop>

    <!--Название магазина, компании и url-->
    <name>Супермагазин</name>
    <company>Супермагазин,ООО</company>
    <url>http://www.mixmarket.biz</url>

<!--Далее идет список валют,  в которых указаны цены интернет-магазина: -->

    <currencies>
      <currency id="RUR" rate="1"/>
      <currency id="USD" rate="CBRF"/>
      <currency id="EUR" rate="CBRF"/>
    </currencies>

<!-- Далее дерево категорий с указанием родительских рубрик: -->

    <categories>
      <category id="26">Средства для бритья</category>
      <category id="28">Машинки для стрижки</category>
      <category id="51" parentId="28">Машинки для стрижки животных</category>
    </categories>

    <offers>

<!-- Информация о товаре должна выглядеть следующим образом: -->

      <offer id="158" type="vendor.model" >
        <url>http://www.mixmarket.biz/item/104/</url>
        <price>992.50</price>
        <currencyId>USD</currencyId>
        <categoryId>51</categoryId>
        <picture>http://www.mixmarket.biz/img/123_125_s.jpg</picture>
        <typePrefix>Машинка для стрижки овец</typePrefix>
        <vendor>Electrolux</vendor>
        <model>ERO 2921</model>
        <description>
          Частота тока 50Гц. Мощность 350 Ватт. 
          Вес 1600 грамм (без кабеля). Ширина ножа 77 мм. 
          Цвет - белый. Обладает успокаивающим воздействием на овцу.
        </description>
      </offer>

<!-- ... -->

    </offers>
  </shop>
</yml_catalog>

Пример YML прайс-листа в формате <name> с комментариями

<?xml version="1.0" encoding="..." ?>

<!-- В поле encoding нужно указать кодировку, например: 
     encoding="windows-1251" -->

<yml_catalog>
  <shop>

    <!--Название магазина, компании и url-->
    <name>Супермагазин</name>
    <company>Супермагазин,ООО</company>
    <url>http://www.mixmarket.biz</url>

<!--Далее идет список валют,  в которых указаны цены интернет-магазина: -->

    <currencies>
      <currency id="RUR" rate="1"/>
      <currency id="USD" rate="CBRF"/>
      <currency id="EUR" rate="CBRF"/>
    </currencies>

<!-- Далее дерево категорий с указанием родительских рубрик: -->

    <categories>
    <category id="28">Мраморные статуи</category>
      <category id="51" parentId="28">Античные статуи</category>
    </categories>

    <offers>

<!-- Информация о товаре должна выглядеть следующим образом: -->

      <offer id="158">
        <url>http://www.mixmarket.biz/item/104/</url>
        <price>992.50</price>
        <currencyId>USD</currencyId>
        <categoryId>51</categoryId>
        <picture>http://www.mixmarket.biz/img/123_125_s.jpg</picture>
        <name>Статуя Зевса</name>
        <description>
          Вес 5 тонн. Высота 2 метра.
          Мраморная статуя Зевса в полный рост. Цвет белый.
        </description>
      </offer>

<!-- ... -->

    </offers>
  </shop>
</yml_catalog>

DTD для программистов

<!ELEMENT yml_catalog (shop)>
<!ATTLIST yml_catalog
          date CDATA
          #REQUIRED>

<!ELEMENT shop (name, company, phone?, url,
          currencies, categories, deliveryIncluded?, offers)>

<!ELEMENT company (#PCDATA)>

<!ELEMENT phone (#PCDATA)>

<!ELEMENT currencies (currency+)>

<!ELEMENT currency EMPTY>

<!ATTLIST currency
          id
          (RUR|USD|EUR) #REQUIRED
          rate CDATA
          "1"
          plus CDATA
          "0">

<!ELEMENT categories (category+)>

<!ELEMENT category (#PCDATA)>

<!ATTLIST category
          id CDATA
          #REQUIRED
          parentId CDATA
          "0">

<!ELEMENT offers (offer+)>

<!ELEMENT offer (url, price, currencyId, categoryId,
          picture?, delivery?, deliveryIncluded?,
          ( typePrefix?, vendor, model ),
          description?
          )>

<!ATTLIST offer
          id CDATA
          #IMPLIED
          type (vendor.model) #IMPLIED
          available (true | false) #IMPLIED
          >

<!ELEMENT url (#PCDATA)>


<!ELEMENT picture (#PCDATA)>

<!ELEMENT delivery (#PCDATA)>

<!ELEMENT deliveryIncluded EMPTY>

<!ELEMENT price (#PCDATA)>

<!ELEMENT currencyId (#PCDATA)>

<!ELEMENT categoryId (#PCDATA)>

<!ELEMENT typePrefix (#PCDATA)>

<!ELEMENT vendor (#PCDATA)>

<!ELEMENT model (#PCDATA)>

<!ELEMENT description (#PCDATA)>