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

Shopify集合页构造子产品handle后无法正确获取对应产品ID如何解决

错误原因

  • 循环外定义的producthandles_homme、producthandles_femme变量没有在每次循环内重置,导致每次循环都会把之前所有父产品的handle拼接在一起,生成的子产品handle完全无效,无法通过all_products获取到正确的子产品ID
  • 多余拼接了父产品ID到结果中,需求仅需要子产品ID来拉取评论,不需要拼接父产品ID
  • 缺少子产品存在性判断,当子产品handle不存在时会生成无效值

修复后代码

{% assign allinone = "" %}

{% for product in collection.products %}
    {# 每次循环单独构建当前父产品对应的两个子产品handle,不要复用全局累加的变量 #}
    {% assign child_handle_homme = product.handle | append: '-tshirt-homme' %}
    {% assign child_handle_femme = product.handle | append: '-tshirt-femme' %}

    {# 先判断子产品是否存在,避免输出无效ID #}
    {% if all_products[child_handle_homme] %}
        {% assign allinone = allinone | append: all_products[child_handle_homme].id | append: ',' %}
    {% endif %}
    {% if all_products[child_handle_femme] %}
        {% assign allinone = allinone | append: all_products[child_handle_femme].id | append: ',' %}
    {% endif %}
{% endfor %}

{# 移除最后多余的逗号 #}
{% assign allinone = allinone | slice: 0, -1 %}

<div class="avis-verifies-etoiles-collection">
  <div class="NETREVIEWS_PRODUCT_STARS" data-product-id="{{ allinone }}"></div>
</div>

注意事项

如果你的子产品handle后缀实际为-tshirt-man和-tshirt-woman,把代码里的-tshirt-homme、-tshirt-femme替换为对应后缀即可。

内容的提问来源于stack exchange,提问作者Coline CERVELLIN

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 05:54:01