Shopify在集合中显示颜色变体,但不是尺寸变体

时间:2016-11-02 17:15:52

标签: shopify liquid

目标是在Shopify中的Collection页面上显示其他颜色变体。 使用Supply主题。我在集合中显示所有变体图像,但是如果存在变体,则只想显示颜色变体。有些商品没有变体,有些则有尺码变体。有些有颜色,有些有大小和颜色。我不想在集合页面上显示颜色的所有尺寸变体。 Collection.liquid     

  {% for product in collection.products %}
    {% for variant in product.variants %} 
    {% if has_sidebar %}
      {% assign grid_item_width = 'large--one-quarter medium--one-third small--one-half' %}
    {% else %}
      {% assign grid_item_width = 'large--one-fifth medium--one-third small--one-half' %}
    {% endif %}
    {% include 'product-grid-item' %}

  {% else %}

    <div class="grid-item">
      <p>{{ 'collections.general.no_matches' | t }}</p>
    </div>
   {% endfor %}
  {% endfor %}

</div>

产物并网item.liquid

<div class="grid-item {{ grid_item_width }}{% if sold_out %} sold-out{% endif %}{% if on_sale %} on-sale{% endif %}">

                    {%if sold_out%}           {{&#39; products.product.sold_out&#39; | t}}         {% 万一 %}                      我想我需要检查一下if语句检查变体,然后为颜色添加一个forloop。 {%for product.options%}中的选项 {%if option ==&#39; Color&#39; %}

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

这样的事情应该让你开始。

首先我们循环产品选项,然后我们说我们只需要颜色或颜色,然后循环遍历属于该选项的所有变体...抓取颜色并创建带有标题的列表项。

<ul>
{% for option in product.options %}
  {% if option == "Color" or option == "Colour" %}
    {% assign index = forloop.index0 %}
    {% assign colorlist = '' %}
    {% assign color = '' %}
    {% for variant in product.variants %}
      {% capture color %}
        {{ variant.options[index] }}
      {% endcapture %}
      {% unless colorlist contains color %}
        <li><span class="color-{{color | handle }}"><a href="{{variant.id}}">{{color}}</a></span></li>
        {% capture tempList %}
          {{colorlist | append: color | append: ' '}}
        {% endcapture %}
        {% assign colorlist = tempList %}
      {% endunless %}
    {% endfor %}
  {% endif %}
{% endfor %}
</ul>