> For the complete documentation index, see [llms.txt](https://support.morozovpimnev.ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://support.morozovpimnev.ru/megaimport/yandeks-yml.md).

# Яндекс YML

Пример для настройки импорта стандартного YML (XML) файла от Яндекс, товары и группы

#### Настраиваем загрузку групп

{% code lineNumbers="true" %}

```xml
<yml_catalog>
    <shop>
        <categories>
            <category id="123">Бытовая техника</category>
            <category id="456" parentId="123">Холодильники</category>
            ...
        </categories>
    ...
    </shop>
</yml_catalog>
```

{% endcode %}

<figure><img src="/files/m8rXMa3omIrejiAgSiRK" alt=""><figcaption></figcaption></figure>

XPath путь до групп: `shop/categories/category`.

Так как группы уже получены и XPath-курсор находится внутри узла `category`, пути к его атрибутам будут следующими:

* ID группы — `@id`
* ID родительской группы — `@parentId`

Название группы находится в текстовом содержимом текущего узла `category`, поэтому отдельный XPath путь для него указывать не требуется.

#### Настраиваем загрузку товаров

{% code lineNumbers="true" %}

```xml
<yml_catalog>
    <shop>
        <offers>
            <offer id="123" available="true">
                ...
            </offer>
            <offer id="456" available="false">
                ...
            </offer>
            ...
        </offers>
    ...
    </shop>
</yml_catalog>
```

{% endcode %}

<figure><img src="/files/Q8mrOvR9LrLqXdnoXhio" alt=""><figcaption></figcaption></figure>

XPath путь до товаров: `shop/offers/offer`.

#### Настраиваем xpath для свойств

Обычно в YML Яндекса все свойства товара находятся в тегах `param`. В соответствии полей нужно указать путь до этих тегов и настроить, откуда брать название и значение свойства.

{% code lineNumbers="true" %}

```xml
<offer id="123" available="true">
  ...
  <param name="Цвет">белый</param>
  <param name="Инвертор">Да</param>
</offer>
...
```

{% endcode %}

<figure><img src="/files/ktgyPaSt1wiK2FduMMP1" alt=""><figcaption></figcaption></figure>

Так как товары уже получены и XPath-курсор находится внутри узла `param`, путь до свойств будет:

* Название свойства — `@name`

Значение свойства находится в текстовом содержимом текущего узла `param`, поэтому отдельный XPath путь для него указывать не требуется.

#### Настраиваем соответствие полей для товара

```xml
<offer id="123" available="true">
    <url>https://market.morozovpimnev.ru/bytovaya-texnika/krupnaya-texnika-dlya-kuxni/xolodilniki/xolodilnik-lg-doorcooling-ga-b459smqz/</url>
    <price>39990</price>
    <currencyId>RUR</currencyId>
    <categoryId>456</categoryId>
    <picture>https://market.morozovpimnev.ru/upload/shop_5/2/item_2927/item_2927.jpg</picture>
    <name>Холодильник LG DoorCooling+ GA-B459SMQZ</name>
    <vendor>LG</vendor>
    <vendorCode>20062601</vendorCode>
    <description>
    <![CDATA[ С холодильником LG DoorCooling+GA-B459SMQZ вы сможете легко сделать много запасов на зиму и сохранить свежесть продуктов надолго. Благодаря стильному дизайну прибор удачно впишется в интерьер вашей кухни и станет его гармоничным дополнением. ]]>
    </description>
    <param name="Цвет">белый</param>
    <param name="Инвертор">Да</param>
    <weight>68</weight>
    <dimensions>68/59/186</dimensions>
</offer>
...
```

Так как товары уже получены и XPath-курсор находится внутри узла `offer`, пути к его свойствам будут следующими:

<figure><img src="/files/OLpvEz9US09G6kmCCEIR" alt=""><figcaption></figcaption></figure>

`@available` - доступность товара, можно загружать в склад, если true добавит наличие 1, если false - 0, <mark style="color:$success;">обновляем</mark> всегда, чтобы получать акутальное наличие

`price` - цены, <mark style="color:$success;">обновляем</mark> всегда, чтобы получать акутальную цену

`currencyId` - код валюты, <mark style="color:$success;">обновляем</mark> всегда, чтобы получать акутальную валюту

`categoryId` - если у вас загружаются группы из файла, то новый товар попадет в эту группу, уже существующий попадет если стоит параметр <mark style="color:$success;">"обновлять"</mark>

`picture` - изображение товара, лучше ставить <mark style="color:$info;">"не обновлять"</mark>, чтобы для уже существующих товаров не тратить ресурсы и время на повторную загрузку файла

`name` - название товара, можно <mark style="color:$info;">"не обновлять"</mark> если ничего не меняется

`vendor` - название производителя (создаем новый если такое название не находит в магазине), можно <mark style="color:$info;">"не обновлять"</mark> если ничего не меняется

`vendorCode` - артикула товара (если в настройках импорта настроен поиск по полю артикул, то по нему будет будет осуществляься поиск уже существующих твоаров для обновления), можно <mark style="color:$info;">"не обновлять"</mark> если ничего не меняется

`description` - описание товара, можно <mark style="color:$info;">"не обновлять"</mark> если ничего не меняется

`param` - свойства товара, модуль сам соберет в массив все свойства из узла с этим тегом, можно <mark style="color:$info;">"не обновлять"</mark> если ничего не меняется

`weight` - вес товара, можно <mark style="color:$info;">"не обновлять"</mark> если ничего не меняется

`{кг}` - единици измерения веса, т.к. Яндекс передает вес в кг, то можно явно указать это в импорте, например если у вас в магазине товары в граммах, то модуль переведет его в единицы магазина, можно <mark style="color:$info;">"не обновлять"</mark> если ничего не меняется

`dimensions` - габариты товара, можно <mark style="color:$info;">"не обновлять"</mark> если ничего не меняется, модуль сам разабъет их на ДШВ

`{см}` - единици измерения габаритов, т.к. Яндекс передает габариты в см, то можно явно указать это в импорте, например если у вас в магазине товары в мм, то модуль переведет их в единицы магазина, можно <mark style="color:$info;">"не обновлять"</mark> если ничего не меняется
