Модификации

Для типа файла XML реализована загрузка модификаций

Варианты загрузки

1. Когда в файле только модификации и из них создаем родительский товар

<!--
    Стандартынй пример Yandex Yml
    shop/offers/offer - путь до товаров -> массив объектов offer
-->
<yml_catalog>
    <shop>
        <offers>
            <offer id="123" group_id="001">
                <name>ПЛАТЬЕ 001</name>
                <param name="Цвет">Чёрный</param>
                <price>2080</price>
                <quantity>8</quantity>
                <vendorCode>А123</vendorCode>
                <picture>https://site.ru/upload/А123.jpg</picture>
                <picture>https://site.ru/upload/А123_2.jpg</picture>
                <description>Платье-туника со спущенным рукавом - простой и комфортный выбор для повседневности.</description>
            </offer>
            <offer id="456" group_id="001">
                <name>ПЛАТЬЕ 001</name>
                <param name="Цвет">Белый</param>
                <price>2080</price>
                <quantity>10</quantity>
                <vendorCode>А456</vendorCode>
                <picture>https://site.ru/upload/А456.jpg</picture>
                <picture>https://site.ru/upload/А456_2.jpg</picture>
                <description>Платье-туника со спущенным рукавом - простой и комфортный выбор для повседневности.</description
            </offer>
        </offers>
    </shop>
<yml_catalog>

Нужно указать тег/аттрибут по которому будет объединение модификаций, в данном случае это у нас одинаковый аттрибут @group_id его и указываем в сопоставлении полей @group_id -> Модификация [modification], у нас сразу появилось поле куда мы будет его записывать, например mod_id (рекмоендуем) (возможные опции: Артикул товара [marking], Идентификатор товара CommerceML [guid], Название товара [name])

Т.к. родительских товаров в файле у нас нет, они будут создаваться из данных, которые имеются у модификаци, например название, описание (которое в модификациях хранить не нужно) и тд, то в соответствии мы укажем какие данные мы берем, чтобы система поняла, что эти данные мы записываем в родитльский товар, нужно отметить галочку "Для родит. товара", далее уже делаем соответствие

В зеленом Как видим, что в (1) блоке у нас все данные для модификаций, в поле названия товара мы сделали сложение через "+" имени и цвета для модификации, так же сохранили для модификации цвет в доп. свойство, цену и ее остаток.

В синем В блоке (2) данные для родительского товара, тут мы берем только 1 какую то картинку и описание

2. Когда в файле есть родительский товар и у него есть вложенность модификаций

<!--
    Нестандартный пример XML
    shop/offers/offer - путь до товаров -> массив объектов offer
-->
<yml_catalog>
    <shop>
        <offers>
            <offer id="001">
                <name>ПЛАТЬЕ 001</name>
                <price>2080</price>
                <vendorCode>А123</vendorCode>
                <picture>https://site.ru/upload/А123.jpg</picture>
                <picture>https://site.ru/upload/А123_2.jpg</picture>
                <description>Платье-туника со спущенным рукавом - простой и комфортный выбор для повседневности.</description>
                <variant id="123">
                    <quantity>3</quantity>
                    <barcode>2000000116679</barcode>
                    <param name="Размер">48</param>
                </variant>
                <variant id="456">
                    <quantity>10</quantity>
                    <barcode>2000000116686</barcode>
                    <param name="Размер">50</param>
                </variant>
            </offer>
        </offers>
    </shop>
<yml_catalog>

Нужно в параметре "Путь до модификаций внутри товара" указать variant

Нужно указать тег/аттрибут по которому будет объединение модификаций, в данном случае это у нас одинаковый аттрибут vendorCode (который находится выше по xml структуре) его и указываем в сопоставлении полей ../vendorCode -> Модификация [modification], у нас сразу появилось поле куда мы будет его записывать, например mod_id (рекмоендуем) (возможные опции: Артикул товара [marking], Идентификатор товара CommerceML [guid], Название товара [name])

Т.к. мы указали путь к модификациям внутри товара, то система будет использовать цикл внутри них, по структуре видно чтобы указать имя у товара, которое находится выше по стурктуре в xpath мы используем ../ (перейти на уровень выше).

После указания соответствия для модификаций, мы сопоставляем данные для род. товара, чтобы система поняла, что эти данные мы записываем в родитльский товар, нужно отметить галочку "Для родит. товара", далее уже делаем соответствие

В зеленом Как видим, что в (1) блоке у нас все данные для модификаций, в поле названия товара мы сделали сложение через "+" имени и размера для модификации, так же сохранили для модификации размер в доп. свойство, цену, ее остаток и др данные.

В синем В блоке (2) данные для родительского товара, тут мы берем все картинки, описание и др данные

Last updated