Shopify 商品与变体

变体显示售罄但加购按钮还能点进去

现象#

前台尺码按钮已标 Sold out,点加购仍提示已加入购物车,进购物车才报库存不足;另一个变体相反,明明有货却显示售罄。

原因#

  • variant.available 由库存、inventory_policy 和发货地点共同决定,不只看数量
  • 库存记在不给 Online Store 发货的地点,可售量算出来就是 0
  • 自定义加购按钮直接 POST /cart/add,没有判断变体是否可售
  • 商品未追踪库存时 available 恒为 true,前台却拿库存数字做判断

处理步骤#

  1. 查 variant.availableForSale 与 inventoryQuantity,确认差异来自哪里
  2. 把该变体的 inventoryPolicy 设为 DENY,禁止超卖时仍显示可购买
  3. 按钮渲染前加 {% if variant.available %} 判断
  4. Ajax 加购处理 422 响应,把错误文案显示在按钮下方
  5. 检查 inventoryItem.tracked,未追踪库存的商品不要用数量判断

验收标准#

售罄变体按钮为 disabled 且提交无效;有货变体加购后购物车行数量与价格正确。

本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。