显示给定集合中最畅销的产品列表但省略特定的产品?

时间:2018-06-13 22:48:59

标签: shopify liquid

我希望创建一个产品页面的一部分,在该部分中,我会在某个系列中展示畅销产品,但省略显示其产品页面的产品。

截至目前,除了默认排序方式外,我没有看到任何对集合对象进行排序的选项。同样,我没有看到从返回的结果中省略给定product.id的方法。

目前,我的代码如下所示:

{% for top_product in collections['somecollection'].products limit:4 %}
<div class="top-seller-item">
  <img src="{{ top_product.images[0] | img_url: '1024x1024' }}"/>
  <a href="{{ top_product.url }}">{{ top_product.title }}</a>
</div>
{% endfor %}

这只返回集合somecollection的前四个产品。

我无法想象这是一个不常见的用例,所以有人知道一种方法来做SORTBY sales OMIT product.id(伪代码当然,但这就是想法)。

1 个答案:

答案 0 :(得分:1)

您需要将集合的排序顺序设置为&#34; Best Selling&#34;。

之后,您需要创建一个计数器变量,用于计算循环中的唯一产品。

此外,您必须将限制更改为5,这样即使产品出现在前4个产品中,您也会获得4个元素。

在代码中它看起来像这样:

{%- assign counter = 0 -%}
{% for top_product in collections['somecollection'].products limit:5 %}
    {%- unless top_product.id == product.id or counter >= 4 -%}
    {%- assign counter = counter | plus: 1 -%}
        <div class="top-seller-item">
            <img src="{{ top_product.images[0] | img_url: '1024x1024' }}"/>
            <a href="{{ top_product.url }}">{{ top_product.title }}</a>
        </div>
    {%- endunless -%}
{% endfor %}