H7.13.2inventory coupon release on failure设计研究
因失败释放的库存与优惠券需要及时恢复而非永久占用
别名: 锁库存释放 · 券解冻 · hold release
概念解释
进结算时库存和券常被预占。支付确定失败后,这些预占必须在人还能再买的时间内回到可用户池:库存重新可售,券重新可点。永久占用表现为失败后车里的件变成无货、券消失且客服说「已使用」。这条管失败之后的资源,不管超时要不要先查询,也不管双扣怎么退钱。
机制
预占保护的是支付窗口里的稀缺,不是失败之后的惩罚。若释放依赖人工或等预占自然过期(可能数十分钟到数小时),人立刻重试会看见无货或无券,以为商品没了,转向别家。券被标成已核销但钱没扣,是账实不符,下一次结算也无法用。未知态下不能释放,否则查询回来成功时无货可发;失败确定后必须尽快释放。界面要让人看见「库存已恢复 / 券已退回」,否则人不会再试这一单。
怎么研究
用限量 SKU 和限量券走失败单,比较:立即释放、等预占过期、永不释放。看失败后立刻重试是否还能买到、券是否仍可用。
自变量:释放触发(明确失败 / 预占到期 / 人工)、释放是否通知、未知态是否误释放。 因变量:失败后重试成功率、券状态错误、超卖或超发券。
实验室要真的扣库存。不要在未知态测释放。超卖说明释放太早,永不释放说明太晚,两个方向都要记。
边界
闪购、演出票的预占本身就是商品规则,失败后可能无法再保证同一座位,释放会进公共池而不是原人专属——要说清「已回到可售,不保证仍是这一张」。支付未知时库存应继续短占,并展示剩余锁定时间。券若已过期,释放也救不回,应说明过期而不是「已使用」。
怎么落地
- 在失败确定的同一事务里释放库存与券;订单上写「未扣款,券已退回」。
- 未知态保持短占,到期仍未知则升级查询,不要当失败释放。
- 失败后回到购物车,库存与券的可用状态与释放后的系统真相一致。
- 验证:限量件 + 一张券,故意失败,立刻再结算。件仍可买、券仍可用。若显示无货或券已用,释放失败。