我创建了一个新的收藏模板,我想为其分配所有尺寸为'XL'的产品。
我从为每种产品创建尺寸和排列尺寸开始,但现在我陷入了困境。
{% assign sizes = '' %}
{% for variant in product.variants %}
{% if variant.available %}
{% assign sizes = sizes | append: variant.options[0] | append: '_' %}
{% endif %}
{% endfor %}
{% assign sizesArr = sizes | split: '_' | uniq %}
接下来我该怎么做才能仅显示包含“ XL”的产品?
答案 0 :(得分:0)
这取决于您对所有产品的含义。
默认情况下,集合最多可以显示50种产品,但是您可以使用分页对象将其覆盖。
因此,如果您的产品少于50种,则可以这样做。
{%- for product in collection.products -%}
{%- assign show_product = false -%}
{%- for option in product.options_with_values -%}
{%- for value in option.values -%}
{%- assign value_handle = value | handle -%}
{%- if value_handle == 'xl' -%}
{%- assign show_product = true -%}
{%- endif -%}
{%- endfor -%}
{%- endfor -%}
{%- if show_product -%}
Add your product here
{%- endif -%}
{%- endfor -%}
如果您有50多种产品,则需要将以上代码包装在分页对象中:
{% paginate collection.products by 9999 %}
{%- for product in collection.products -%}
{%- assign show_product = false -%}
{%- for option in product.options_with_values -%}
{%- for value in option.values -%}
{%- assign value_handle = value | handle -%}
{%- if value_handle == 'xl' -%}
{%- assign show_product = true -%}
{%- endif -%}
{%- endfor -%}
{%- endfor -%}
{%- if show_product -%}
Add your product here
{%- endif -%}
{%- endfor -%}
{% endpaginate %}
但是此请求将对服务器造成破坏,并降低您的网站速度。所以也请考虑这个问题。