cart.liquid场景下获取当前选中商品变体库存数量问题咨询
问题原因
现有代码遍历的是当前产品的全部变体,只要库存小于等于0就输出并累加,没有和购物车选中的变体做关联匹配,因此会返回所有符合库存条件的变体值。
修改方案
替换为以下代码即可仅获取购物车中选中的对应变体库存:
{% assign product_qty = 0 %} {% for item in cart.items %} {% comment %} 不需要区分购物车勾选状态可删除item.attributes.selected判断,不需要库存过滤可删除库存判断 {% endcomment %} {% if item.attributes.selected and item.variant.inventory_quantity <= 0 %} <p>{{ item.variant.inventory_quantity }}</p> {% assign product_qty = product_qty | plus: item.variant.inventory_quantity %} {% endif %} {% endfor %}
逻辑说明
- 核心修改点是将遍历对象从原代码的
product.variants(当前产品所有变体)替换为cart.items(购物车所有商品条目),直接对应购物车内的商品,不会遍历无关变体 - 每个购物车条目
item自带关联的变体对象item.variant,可直接读取对应库存值 - 若你的主题没有购物车条目勾选/取消勾选的自定义属性,直接删除
item.attributes.selected判断条件,即可输出所有已加入购物车的对应变体库存
内容的提问来源于stack exchange,提问作者Services Puzzles Consulting
相关产品推荐
相关产品推荐

