首页 > 解决方案 > 在shopify中获取所有不包含标签的产品

问题描述

我正在使用捆绑构建器应用程序,它允许用户创建自己的捆绑包并购买它们。每次购买都会产生产品变化。当有超过 99 种变体时,应用程序会复制捆绑产品并重复自身直到无穷大。这里的问题是旧的产品包不再有效,但仍然显示在前端导致混乱。我能够对捆绑构建器应用程序的支持提供足够的漏洞,从而为我提供有关如何检测这些旧产品的信息,以便我们可以将这些产品从集合页面中隐藏起来,如下所示:

{%- for product in collection.products -%}
    {%- if product.tags contains 'bundle-builder-dummy-legacy' -%}
        ** do nothing **
    {%- else -%}
        ** print out product **
    {%- endif -%}
{%- endfor -%}

现在这隐藏了旧产品,但它仍然弄乱了分页和页面布局,例如我们的页面限制设置为 8 个产品,我们在第 2 页,共 5 页。使用上面的代码片段只打印出没有的产品包含标签“bundle-builder-dummy-legacy”(这可以通过除非语句来改进,但这不是重点),但它留下了空白空间 - 只填充了 6 个网格项而不是 8 个。所以我猜循环无法正常工作。如何在 for 循环中获取不包含标签的产品。这意味着 if/unless 语句需要在循环之前或循环初始化期间发生。希望我已经说明了我的情况。

谢谢

标签: shopifyliquid

解决方案


您可能会要求应用程序使用产品的可直接访问属性(如类型)来识别这些产品。

然后你就可以做到这一点:

{% assign collection_products = collection.products | where:'type','legacy' %}
{% for product in collection_products %}
  Do something 
{% endfor %}

推荐阅读