You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shopify基于集合标题输出内容时重复结果的问题排查

问题原因分析

你的代码会同时输出两个结果,核心问题在于字符串包含判断的逻辑和循环结构:

  • 假设有一个集合标题是China,vietnam,第一个循环的contains "China"条件会直接成立——因为China,vietnam本身就包含China这个子串,所以会输出"This is china"。
  • 第二个循环的contains "China,vietnam"条件也会对这个集合成立,因此又输出"This is china and vietnam"。
  • 两个独立的for循环会分别遍历所有集合,各自触发符合条件的输出,最终导致重复结果。
解决方案

把两个循环合并,并且优先判断更具体的条件,避免子串匹配导致的误触发:

{% for collection in product.collections %}
  {% if collection.title contains "China,vietnam" %}
    This is china and vietnam
  {% elsif collection.title contains "China" %}
    This is china
  {% endif %}
{% endfor %}

这样调整后,同一个集合只会触发最匹配的那个条件:

  1. 先检查集合标题是否包含China,vietnam,满足则输出对应内容,跳过后续判断
  2. 若不满足,再检查是否包含China,满足则输出对应内容

如果你的需求是:商品只要属于China集合就输出第一个内容,属于China,vietnam集合就输出第二个,且两个集合可能同时存在,那这个逻辑也能保证每个集合只触发一次对应输出,不会重复。

内容的提问来源于stack exchange,提问作者Rahul Dogra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 20:35:56