这类问题先准备一个表,不要在后台来回点:
| 对象 | 检查值 |
|---|---|
| 父商品 | 状态、网站、分类、可见性 |
| 每个子商品 | 状态、网站、价格、Stock下可售量 |
| 关联 | position、默认数量、是否仍存在 |
| 请求 | super_group[子商品ID]数量 |
Grouped 商品自己不承载可售数量,真正加入购物车的是用户输入数量大于零的子商品。模板改造后若输入框 name 丢了,页面看得到子项,POST 却没有 super_group,后台只会认为没有选择商品。
后端证据
用当前 Website 对应的 Stock 查询每个子 SKU 的 salable quantity,不要只看 Default Source。子商品被禁用、未分配到当前网站或只在另一个 Stock 可售时,父页面可能仍被缓存显示,但提交会失败。
然后用原生主题临时对照一次。如果原生主题可以加入,检查自定义模板是否保留 add-to-cart form、form_key 和数量字段;如果原生也失败,再查关联与库存。
修复后至少测试:只选一个子项、同时选两个、输入零、输入超过可售量,以及一个子项缺货。报错应准确落在失败子项,不能让一个缺货子项阻塞其他可购买子项。

