Открыта возможность перехода на модули с открытым кодом! Детали

Перейти к публикации

Размер как отдельная карточка товара


Рекомендованные сообщения

Подскажите, как сделать,, что бы каждый размер выгружался как отдельная карточка товара? И какая переменная может служить идентификатором который объединяет одинаковые товары с разными размерами?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

42 минуты назад, Sergant сказал:

Подскажите, как сделать,, что бы каждый размер выгружался как отдельная карточка товара? И какая переменная может служить идентификатором который объединяет одинаковые товары с разными размерами?

Добрый день. Размер у Вас - это опция?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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}}">

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...