首页 > 解决方案 > 如何在 Shopify 液体中合并两个集合而不将其更改为数组?

问题描述

我正在尝试在将其呈现为液体之前对其进行分类,以便能够将所有已售罄的产品移至底部,并在它们重新入库后让它们返回其原始位置。

我之前尝试过直接过滤 forloop,将它分成两个具有相反标准的循环,但是分页有效地把它弄乱了,并且每页呈现我的逻辑,而不是在整个集合上。这意味着售罄的产品会出现在每个页面的底部。

在了解了这一点之后,我认为我最好的选择是创建两个集合并在分页和渲染之前将它们组合起来,然后根据新的排序集合对集合进行分页。分页不接受数组,这是我卡住的地方。这是我试图对集合进行排序的代码:

{% assign topcol = collection %}
{%- for product in topcol.products -%}
{% assign product = null %}
          {%- if product.available or product.tags contains "_boost" -%}
            {% assign product = product %}
          {%- endif -%}{%- endfor -%}
{% assign bottomcol = collection %}
{% assign product = null %}
          {%- for product in bottomcol.products -%}
          {%- unless product.available or product.tags contains "_boost" -%}
          {% assign product = product %}
          {%- endunless -%}{%- endfor -%}
{% assign sortedcol = topcol | concat: bottomcol %}

如果我然后尝试

  {%- paginate sortedcol.products by section.settings.products_per_page -%}

我收到错误消息“数组 'sortedcol.products' 不可分页。” 因为我把它做成了一个数组,而不是保留我相信的集合结构。

有一个更好的方法吗?我错过了什么吗?分裂?

标签: loopsfor-loopshopifyliquid

解决方案


推荐阅读