目标是在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; %}
任何帮助将不胜感激。
答案 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>