6月17日晚上11点,品牌X 的库存负责人小王正在做618大促前的最后一轮检查。 手机震了一下——库存告警群弹出一条消息: 小王愣了两秒。负数?他打开后台,刷新了三遍,数字没变:实物库存500,已售650,可售 -150。 “不可能啊,仓库就500双,怎么卖出650?”他立刻拉了三个渠道的销售数据:天猫卖了280双,京东卖了220双,微信小程序卖了150双。三个渠道加起来——650双。 他翻出运营上周填的库存配置,瞬间明白了: 三个渠道各填各的,加起来1500双可售。但仓库里只有500双。 小王给运营主管打了个电话:”哥,畅跑Pro超卖了150单。” 电话那头沉默了三秒:”客服那边已经炸了,你先别管别的,把三个渠道的这款全部下架。” 接下来的48小时,小王经历了他入职以来最长的两天——客服组加班到凌晨3点处理投诉,运营紧急联系供应商调货(只调到了60双),剩下90单全部取消退款。 事后复盘会上,CTO问了一个问题:“为什么库存分配这件事,是运营在三个后台手动填数字?系统为什么没有统一管控?” 没人回答。 这不是个例。2012年天猫双11,优衣库、阿迪达斯、GAP等品牌集体出现超卖,天猫官方发布公告致歉,为每笔超卖订单赔付货款30%、最高500元。库存超卖是电商系统里发生频率最高、影响最直接的事故类型之一。 这篇文章从小王这次翻车出发,带你理解库存管理的基础体系设计——公式怎么算、渠道怎么分、库存什么时候锁、并发怎么防。 今天讲4件事: 第一关:仓库里500双鞋,到底能卖多少你可能会想:仓库有500双,那可售就是500呗。 不对。 仓库里的500双,不是都能卖的。 这500双里,80双已经有人下单了还没付款(锁定),50双被运营留给明天的促销活动(预留),还有20双质检不合格等着退供应商(残次)。 所以实际能卖的 = 500 – 80 – 50 – 20 = 350双。 电商系统里完全一样。这就是库存管理里最核心的一个公式: 一句话理解库存的三层结构: 这篇文章讲的主要是销售层——可售怎么算、怎么分配、怎么防超卖。调度层和仓库层涉及WMS和履约系统,后续系列会单独展开。 几个关键细节
第二关:3个渠道各卖各的,库存怎么分回到小王的翻车现场:3个渠道各填500,加起来1500,实际只有500。问题出在库存分配模式上。 小王翻车的根本原因: 小王的问题不是”不知道库存只有500″,而是系统没有提供统一的库存分配能力,运营只能在每个渠道后台单独填数字。这是一个典型的系统设计缺陷——把”库存分配”这个本该系统自动化的事情,完全交给了人工。 正确的设计是: 建立一个”中心库存池”,所有渠道的可售库存都从这个池子里扣。运营只需要维护一个数字,系统自动处理渠道间的分配和扣减。
第三关:下单到发货,库存经历了什么用户在APP上点”立即购买”,到最终收到包裹,库存在系统里经历了一系列状态变化。理解这个流程,才能明白”超卖”到底在哪个环节出了问题。 “预占”到底什么时候做?这是库存设计里一个经典的争论点: 方案1:下单即预占(推荐) — 用户点”立即购买”的瞬间,库存就被锁住。如果30分钟没付款,自动释放。好处是防超卖能力强,坏处是会出现”占着茅坑不拉屎”——大促时大量用户下单不付款,占着库存,真正想买的人看到”已售罄”。 方案2:付款才扣减 — 用户下单时只做检查(”还有库存吗?有”),到付款时才真正扣减。好处是不浪费库存,坏处是下单到付款之间可能有时间差,多人同时下单时容易超卖。 方案3:两段式(最佳实践) — 下单时软锁定(缓存层预占),付款时硬扣减(数据库层面)。既防超卖又减少无效占用。
释放机制不能少不管选哪种预占方案,释放机制必须配套,否则库存会被”僵死”。常见的释放触发点:
小王的第二次翻车: 共享库存池上线后的第一次大促,小王觉得终于能安心了。结果618当天晚上8点,运营群里又炸了——”畅跑Pro怎么又显示售罄了?仓库说还有200双啊!”小王打开后台一看,200双全是锁定状态,可售为0。排查发现:释放定时任务在晚上7点挂了,大促期间大量用户抢购后不付款,1个多小时积累了200笔未付款订单,全部锁着库存不释放。用户看到”售罄”就走了,实际仓库里鞋还堆着。损失预估几十万GMV。 从此以后,小王在释放任务上加了心跳监控和备用链路——主定时任务挂了,5分钟内自动切到备用。 负库存:允许还是禁止?释放机制之外,还有一个必须回答的设计问题:可售库存能不能是负数? 策略1:严格禁止(推荐) — 可售库存不允许低于0,尝试扣减到负数的操作直接拒绝。这是防超卖的最后一道防线。 策略2:允许负库存 — 先卖了再说,后续通过紧急补货或调拨补上。适用于供应链极强的场景(如超级大品牌、工厂直发)。风险极高,不建议新系统使用。
第四关:大促1000人同时抢,怎么防超卖回到开头的场景。假设库存分配模式已经改成了共享池,中心库存500双。大促开始,1000个用户同时点”立即购买”——系统怎么保证只卖出500双,而不是501、502? 这就是”库存并发扣减”问题。 超卖了怎么办?(兜底方案)就算做了三重保障,极端情况下(如缓存集群故障)仍可能出现少量超卖。所以必须有兜底方案: 1. 发货前库存二次校验 — 仓库拣货时系统再查一次库存。如果发现超卖,拦截出库,通知运营处理。 2. 超卖预案 — 提前定好超卖后的处理流程:是补货?等补货后延迟发货?还是取消订单+补偿?补偿金额是多少?这些不能等出事了再临时决定。 3. 超卖监控 — 实时监控可售库存到达阈值时自动告警。比如可售低于10双时通知运营,低于0时自动下架。 小王的方案升级之路: 库存系统改造后的第二次618,小王终于有底气了。他在大促前做了三件事:第一,把防超卖方案从1(纯缓存原子扣减)升级到了3(三重保障);第二,在发货环节加了库存二次校验,拣货单打印前系统自动核一遍库存;第三,提前写好了超卖预案——10单以内的超卖48小时内补货发出,10单以上的直接退款+赔偿50元。这次618,畅跑Pro卖了3200双,超卖数:0单。 小王在大促复盘会上只说了一句话:”去年超了150单花了两天善后,今年0单我花了三周准备。值了。” 产品经理的核心职责不是写防超卖的技术方案,而是回答三个问题: 超卖容忍度是多少(0?还是允许少量)?超卖后处理流程是什么?谁来做决策?把这三个问题答清楚,技术方案研发自然能搞定。 延伸:库存流水——出了问题靠什么排查库存的每一次变更都必须记录流水,没有例外。 流水包括:谁改的(系统/人工)、什么时候改的、改之前多少、改之后多少、原因是什么(下单/取消/退货/手动调整/盘点修正)。 为什么重要?因为库存对不上的时候,唯一的排查手段就是看流水。没有流水 = 出了问题无法溯源。 小王的教训: 有一天运营反馈某SKU库存突然从500变成了50000。小王排查了半小时,翻遍了订单和入库记录都对不上。最后在库存流水里发现——是运营批量导入时多打了一个0,从”500″变成了”50000″。流水清楚记录了操作人、操作时间和变更前后的值。如果没有这条流水,这个错误可能到发货时才暴露——已经有30多笔订单冲着50000的库存下了单。从此以后,品牌X 的库存管理后台有一条铁律:任何单次库存变更超过总量20%的操作,必须二次审批。 总结:5条库存管理基础认知
一句话总结: 上篇讲的是库存管理的”地基”——公式算清楚、渠道分合理、预占要释放、超卖要防住、流水要记全。地基打好了,才能应对下篇的进阶场景。 下一篇(库存管理下篇),我们讲5个进阶修罗场——门店50家库存怎么同步、预售3000单虚拟库存怎么管、退货率40%的库存怎么回补、全渠道一盘货怎么打通、大促库存怎么冻结和解冻。 内容来于网络,如有侵权,请联系管理员删除! |
关注公众号相关侵权、举报、投诉及建议等,请发 E-mail:beetec@163.com
Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|浙ICP备20023745号-1