Sergant Опубликовано: 1 апреля 2021 Опубликовано: 1 апреля 2021 Подскажите, как сделать,, что бы каждый размер выгружался как отдельная карточка товара? И какая переменная может служить идентификатором который объединяет одинаковые товары с разными размерами? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
NeoSeo Team Опубликовано: 1 апреля 2021 Опубликовано: 1 апреля 2021 42 минуты назад, Sergant сказал: Подскажите, как сделать,, что бы каждый размер выгружался как отдельная карточка товара? И какая переменная может служить идентификатором который объединяет одинаковые товары с разными размерами? Добрый день. Размер у Вас - это опция? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Sergant Опубликовано: 1 апреля 2021 Опубликовано: 1 апреля 2021 2 минуты назад, NeoSeo Team сказал: Добрый день. Размер у Вас - это опция? да Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
NeoSeo Team Опубликовано: 1 апреля 2021 Опубликовано: 1 апреля 2021 14 минут назад, Sergant сказал: да Добрый день. Вы можете использовать для примера формат YML+Цвет+Размер. Цитата <?xml version="1.0" encoding="UTF-8"?> <yml_catalog date="{{date}}"> <shop> <name>Мой магазин</name> <company>Большая компания</company> <url>{{url}}</url> <currencies> <currency id="{{currency}}" rate="1"/> </currencies> <categories> {% for category in categories%} <category id="{{category.id}}" {% if category.parentId %} parentId="{{category.parentId}}" {% endif %}>{{category.name}}</category> {% endfor %} </categories> <offers> {% for offer in offers%} {% if offer.options %} {% for option in offer.options %} {% if option.name == "Размер" and option.quantity > 0 %} <offer available="true" id="{{offer.id}}-{{option.id}}"> {% for attribute in offer.attributes %} {% if attribute.name == "group_id" %} <group_id>{{attribute.value}}</group_id> {% endif %} {% endfor %} <url>{{offer.url}} </url> <price>{{option.price}}</price> {% if offer.oldprice %}<oldprice>{{offer.oldprice}}</oldprice>{% endif %} <currencyId>{{offer.currencyId}}</currencyId> <categoryId>{{offer.categoryId}}</categoryId> <name>{{offer.name}}</name> <description>{{offer.description}}</description> <model>{{offer.model}}</model> <vendor>{{offer.vendor}}</vendor> <vendorCode>{{offer.vendorCode}}</vendorCode> <pickup>false</pickup> <delivery>false</delivery> <store>false</store> {% for image in offer.image %} <picture>{{image}}</picture> {% endfor %} {% for attribute in offer.attributes %} {% if attribute.name == "group_id" %} {% else %} <param name="{{attribute.name}}">{{attribute.value}}</param> {% endif %} {% endfor %} <param name="Размер" unit="eu">{{option.value}}</param> </offer> {% endif %} {% endfor %} {% else %} <offer available="true" id="{{offer.id}}"> <url>{{offer.url}} </url> <price>{{offer.price}}</price> {% if offer.oldprice %}<oldprice>{{offer.oldprice}}</oldprice>{% endif %} <currencyId>{{offer.currencyId}}</currencyId> <categoryId>{{offer.categoryId}}</categoryId> <name>{{offer.name}}</name> <description>{{offer.description}}</description> <model>{{offer.model}}</model> <vendor>{{offer.vendor}}</vendor> <vendorCode>{{offer.vendorCode}}</vendorCode> <pickup>false</pickup> <delivery>false</delivery> <store>false</store> {% for image in offer.image %} <picture>{{image}}</picture> {% endfor %} {% for attribute in offer.attributes %} <param name="{{attribute.name}}">{{attribute.value}}</param> {% endfor %} </offer> {% endif %} {% endfor %} </offers> </shop> </yml_catalog> В этом примере идет открывается цикл по товара и производится проверка: если у товара есть опция с названием "Размер", то выводится отдельный товар с id=id_основного товара-id_опции. Если же у товара нет опции с таким названием, то он просто выводится. Вам нужно только указать точное название Вашей опции и указать как Вам нужно идентифицировать товар: это оптимальный вариант, так как до дефиса у Вас хранится идентификатор основного товара, после дефиса - идентификатор опции и при необходимости всегда можно узнать какой товар является основноым для текущего: {% if option.name == "Размер" and option.quantity > 0 %} <offer available="true" id="{{offer.id}}-{{option.id}}"> Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.