首页 > 解决方案 > 您可以在 Shopify 中覆盖 Product.tags 吗?

问题描述

提前道歉;对CS来说还是很新的。

我正在向我的商店添加一个过滤器,允许客户通过“InStock”和“PreOrder”标签进行过滤。我希望在库存波动时自动添加和删除这些标签。有些商品仅在商店出售,不会展示(因此检查“nocart”标签)。这是相关的液体代码:

{% assign currenttags = product.tags | join: ', ' %}
{% for variant in product.variants %}
    {% if product.tags contains "nocart"%}{% break %}{% endif %}
    {% if variant.inventory_quantity == 0 and variant.inventory_policy == "continue" %}
        {% assign currenttags = currenttags | remove: ", InStock" %} 
        {% assign currenttags = currenttags | append: ", PreOrder" %}
    {% elsif variant.inventory_quantity > 0 %}
        {% assign currenttags = currenttags | remove: ", PreOrder" %}
        {% assign currenttags = currenttags | append: ", InStock" %}
    {% endif %}
{% endfor %}
{{ currenttags | split: ', '}}
{% assign product.tags = currenttags %}
{{product.tags}}

正如您可能知道的那样,我想使用内置标签过滤器来显示它,它依赖于 crawling product.tags

我尝试输出 currenttags,然后将 product.tags 分配给 currenttags 数组。结果是“xxx xxx xxx xxx 预购”(currenttags)“xxx xxx xxx xxx”(product.tags)

可以product.tags覆盖吗?有没有更好的方法来根据库存水平+产品状态进行过滤?谢谢!

编辑:进一步查看文档,我很确定product.tags只返回标签值,而不是参考。认为我需要连接到 Admin API 并从中访问产品标签。钱币!

标签: filtershopifyliquid

解决方案


Liquid只是一种模板语言,这意味着它主要是输出数据并在前端进行修改,也就是说它没有能力像这种情况下修改任何后端条目tags.

为了实现您的要求,您需要创建一个自定义应用程序,该应用程序将绑定特定的 webhook(例如订单创建或产品更新,具体取决于您修改库存的时间)并通过 API 更新标签。

可能已经准备好为此使用应用程序,但您需要自己研究


推荐阅读