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

Shopify Dawn主题商品推荐区添加加入购物车按钮及异常修复

问题根源

你的代码存在变量混用错误:
商品卡片模板中,推荐商品的循环对象是product_card_product(你代码里的图片、跳转链接都正确使用了该变量),但加购表单中你调用的是全局product变量。在商品详情页场景下,全局product固定指向当前正在浏览的详情页商品,因此所有推荐卡片的加购ID都会和详情页商品ID一致,导致加购错误。

修复方案

将加购表单中所有的product变量替换为当前卡片对应的商品对象product_card_product即可,修正后的完整代码如下:

{% for image in product_card_product.images limit:1 %}
   <a href="{{ product_card_product.url | default: '#' }}">
     <img src="{{ product_card_product.featured_media | img_url: '533x' }}" />
   </a>
{% endfor %}    
<form method="post" action="/cart/add" style="text-align: center">
     <input type="hidden" name="id" value="{{ product_card_product.variants.first.id }}" />
       <button type="submit" class="addCart" {% unless product_card_product.available %} disabled="disabled" {% endunless %}>
       {% unless product_card_product.available %}
           {{ "products.product.sold_out" | t }}
       {% else %}
           {{ "products.product.add_to_cart" | t }}
       {% endunless %}
       </button>
    </form>

额外注意事项

  • 如果你外层推荐商品循环定义的变量名不是product_card_product,请对应替换为你实际使用的变量名(部分模板可能命名为recommended_product、card_product等,以你外层循环的for xxx in 推荐商品集合定义的变量为准)
  • 当前代码默认加购商品的第一个规格,如果你的站点商品存在多个规格,建议在卡片内增加规格选择器,或调整按钮逻辑先跳转至商品详情页让用户选择规格后再加购,避免加购的规格不符合用户预期
  • 修复完成后可以在按钮旁临时输出{{ product_card_product.variants.first.id }}验证,不同推荐卡片的ID应当互不相同,且和当前详情页商品ID不同

内容的提问来源于stack exchange,提问作者Vaishnavi Sawant

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 11:24:08