Для типа файла XML реализована загрузка модификаций
Варианты загрузки
1. Когда в файле только модификации и из них создаем родительский товар
<!-- Стандартынй пример Yandex Yml shop/offers/offer - путь до товаров -> массив объектов offer--><yml_catalog><shop><offers><offerid="123"group_id="001"><name>ПЛАТЬЕ 001</name><paramname="Цвет">Чёрный</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><offerid="456"group_id="001"><name>ПЛАТЬЕ 001</name><paramname="Цвет">Белый</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. Когда в файле есть родительский товар и у него есть вложенность модификаций
Нужно в параметре "Путь до модификаций внутри товара" указать variant
Нужно указать тег/аттрибут по которому будет объединение модификаций, в данном случае это у нас одинаковый аттрибут vendorCode (который находится выше по xml структуре) его и указываем в сопоставлении полей ../vendorCode -> Модификация [modification], у нас сразу появилось поле куда мы будет его записывать, например mod_id (рекмоендуем) (возможные опции: Артикул товара [marking], Идентификатор товара CommerceML [guid], Название товара [name])
Т.к. мы указали путь к модификациям внутри товара, то система будет использовать цикл внутри них, по структуре видно чтобы указать имя у товара, которое находится выше по стурктуре в xpath мы используем ../ (перейти на уровень выше).
После указания соответствия для модификаций, мы сопоставляем данные для род. товара, чтобы система поняла, что эти данные мы записываем в родитльский товар, нужно отметить галочку "Для родит. товара", далее уже делаем соответствие
В зеленом Как видим, что в (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>