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

Shopify cart-template中variant未定义问题及库存判断需求

解决Shopify购物车模板中缺货商品提示的问题

核心问题:为什么variant未定义?

在Shopify的cart-template.liquid模板里,没有全局的variant变量——这个变量只在商品详情页(比如product-template.liquid)的上下文里存在。购物车页面里,所有商品都是以「购物车项(cart item)」的形式存在的,每个项的变体信息嵌套在item.variant里,所以你直接调用variant自然会被提示“not defined”。

正确的代码实现

你需要把判断逻辑放在购物车项的循环内部,遍历cart.items来获取每个商品的变体库存:

{% for item in cart.items %}
  <!-- 这里是单个购物车商品的区块 -->
  {% if item.variant.inventory_quantity < 1 %}
    <p id="dispatch" style="color: #f48c21">将于6月7日发货</p>
    {{ item.variant.inventory_quantity }} <!-- 现在会正确输出库存数 -->
  {% endif %}
  <script>console.log({{ item.variant.inventory_quantity }})</script>
{% endfor %}

额外优化方案

如果不想给每个缺货商品单独显示提示,而是给整个购物车加统一提示,可以先遍历所有商品判断是否存在缺货项,再在循环外展示:

{% set has_out_of_stock = false %}
{% for item in cart.items %}
  {% if item.variant.inventory_quantity < 1 %}
    {% assign has_out_of_stock = true %}
  {% endif %}
{% endfor %}

{% if has_out_of_stock %}
  <p id="dispatch" style="color: #f48c21">您的订单包含缺货商品,将于6月7日发货</p>
{% endif %}

补充说明

因为你设置了允许缺货购买,商品库存会出现负数的情况,所以inventory_quantity < 1的判断能准确覆盖库存为0和负数的所有缺货场景。

内容的提问来源于stack exchange,提问作者amar ghodke

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:02:39