开篇:一句话结论
多人开单不撞库存,靠的不是「大家小心点」,是锁库机制。核心公式只有一条:可用库存 = 实际库存 − 已锁定量 − 待出库量。业务员看到的永远是可用库存,不是实际库存。锁库在销售订单审核时触发,出货单出库时把锁定转成实际扣减。释放有三条路径:出货完成、订单取消、超时自动释放。超时阈值要按料性定——现货料 24 到 48 小时,订货料跟交期走,重点客户可适当延长。下面从场景讲起。
一、三个人同时卖同一批货
一个 12 人的现货商,仓库里某款接口芯片还剩 5000 片。
上午,业务员小张给 A 客户报了 3000 片,客户说考虑一下。同一时间,小李给 B 客户报了 2500 片,客户当场确认。下午,小王接到 C 客户电话,也报了 2000 片。
三笔加起来 7500 片,库存只有 5000 片。至少有一家要被放鸽子。
第二天,B 客户先付款提货,拿走 2500 片。A 客户确认订单时还剩 2500 片,只发了 2500 片,差 500 片要等两周。C 客户直接发了空。
连锁反应:A 客户产线停了半天,B 客户觉得你不专业,C 客户换供应商。
事后复盘,三个业务员都说「我看系统里有货啊」。系统里确实有货——系统显示的是实际库存,不是可卖的库存。这就是撞库存的根源:所有人看到同一个数字,都以为那部分是自己的。
二、锁库机制的三个关键设计
1. 三个库存口径必须分清
| 口径 | 定义 | 用途 |
|---|---|---|
| 实际库存 | 仓库里物理存在的数量 | 盘点、财务账面 |
| 已锁定量 | 已被销售订单占用、尚未出库的数量 | 防止超卖 |
| 待出库量 | 已生成出货单、尚未审核出库的数量 | 在途状态跟踪 |
| 可用库存 | 实际库存 − 已锁定 − 待出库 | 报价和接单的依据 |
绝大多数撞库存事故,都是因为系统只算了实际库存,业务员报价时看到的数字里包含了别人已经卖掉的货。
只有可用库存能对外报价。 这一条要写进制度,也要写进系统的默认显示字段。
2. 锁库什么时候触发
按业务环节分三级,不要一刀切:
| 环节 | 锁库类型 | 说明 | 是否默认开启 |
|---|---|---|---|
| 报价阶段 | 软锁(预占) | 报价单生成时临时预占,报价有效期内保留 | 建议开启,有效期跟报价有效期一致 |
| 销售订单审核 | 硬锁 | 订单审核通过即锁定,直到出货或取消 | 必须开启 |
| 出货单出库 | 转实扣 | 出库单审核后,锁定量清零,实际库存扣减 | 必须开启 |
报价阶段的软锁值得单独说。 很多公司不开软锁,理由是「报价不等于成交,锁了会浪费库存」。但实际问题是:报价之后客户往往要内部走流程,一两天后才确认,这期间库存被别人卖了,报价就废了。
建议做法是:软锁有效期跟报价有效期绑定,比如报价有效期 7 天,软锁就锁 7 天,过期自动释放。这样既保护了报价,又不会长期占库存。对于重点客户,允许销售主管手动延长一次。
锁库粒度也要先定。 建议按批次锁,而不是按物料锁。按物料锁只知道「这个型号被占了 3000 片」,出货时还得现场找是哪一批;按批次锁则直接定位到具体卷盘,拣货有明确目标,出了问题也能精准追溯。批次粒度的锁库还能自然衔接序列号追溯——锁的是哪个批次,出货时扫的就是哪个批次的码,正向和反向链路是一条。
3. 释放规则和超时阈值
释放的三条路径:
- 出货完成:出库单审核后,锁定量转为实际出库,锁定归零。这是正常路径。
- 订单取消或变更:订单取消,锁定全部释放;订单减量,差额释放。需要销售主管审批。
- 超时自动释放:锁定超过约定时限未执行,系统自动释放。这是防止库存被「僵尸订单」长期占用的关键。
超时阈值怎么定(从锁库时刻起算):
| 料的类型 | 建议锁定有效期 | 理由 |
|---|---|---|
| 现货料(当天可提) | 24–48 小时 | 现货流转快,不该被长期占用 |
| 常规订货料 | 7–14 天 | 留出客户内部审批时间 |
| 长交期货(8 周以上) | 跟采购交期绑定 | 锁定期跟在途周期一致 |
| 重点客户 / 战略客户 | 可申请延长至 30 天 | 由销售主管审批,一单一批 |
超时自动释放必须配提醒。规则建议:到期前 24 小时推一次提醒给下单人,到期后自动释放并通知相关人。直接释放不提醒,会造成「我的货怎么没了」的投诉。
三、落地到系统:把锁库做成默认动作而不是选项
锁库机制要真正生效,系统层面要满足四件事。
第一,可用库存是默认字段。 报价查询、库存列表、销售订单录入,默认显示可用库存,实际库存作为参考字段另外显示。太帅ERP 的销售模块里有库存锁定和锁定释放功能,订单审核后自动占用库存,不需要人工另外登记。
第二,锁库与单据联动,不孤立存在。 完整链路是:报价单(软锁)→ 销售订单审核(硬锁)→ 出货单(生成出库)→ 出库单审核(锁定转实扣)。任何一环断了,账就会错位。太帅ERP 支持报价单转销售订单、销售订单到出货物流的连贯流转,锁库跟着单据自动走。
第三,超时规则可配置 + 到期提醒。 按物料分类配置锁定时长,系统到期自动释放并推送通知。这一条解决了「订单签了货没提,库存白占三个月」的老问题。
第四,手动释放要留痕。 谁释放的、释放了多少、什么原因,都要记录在案。没有审批的随意释放,等于锁库形同虚设。太帅ERP 有 60 多个权限点,可以把「锁定释放」这个动作单独授权,配合审批流配置使用。
需要坦白一个局限:锁库能解决系统内的冲突,解决不了「线下答应客户、系统没开单」的情况。业务员在微信里口头承诺了库存,系统里没有单据,锁库机制看不见,照样撞。这个问题要靠制度(无单不报价、报必录单)和考核来解决,工具只能覆盖工具能覆盖的部分。
锁库的前提是备货量算得对——库存本来就不够,锁了也无济于事。备货参数怎么定见备货量的计算公式。锁库之后怎么保证发出去的货是对的批次,靠扫码校验,见扫码出入库的作业流。另外,报价环节如果本身就很慢,锁库的时效性会明显下降,可以对照报价流程的优化方法一起看。整套单据流转属于元器件库存管理实战手册这个系列的核心环节。
四、常见误区
- 错在报价时看实际库存而不是可用库存 → 看到的数字包含别人已卖掉的货,必然超卖。正确的是把可用库存设为报价的唯一依据,并在系统里做成默认显示字段。
- 错在只锁不释放 → 订单签了货迟迟不提,库存被僵尸订单占死,别人卖不了。正确的是设超时自动释放,到期前提醒、到期后自动释放。
- 错在释放权限完全放开 → 任何人都能随手解锁,锁库就成了一道摆设。正确的是手动释放需要审批,释放记录完整留痕。
FAQ
我们才 5 个人,需要这么复杂的锁库吗? 需要,但可以从简。5 人以内不用做报价软锁,只要在销售订单审核时硬锁就够了。真正不能省的是「可用库存」这个口径——只要有两个人以上同时在卖货,就有撞库存的可能。
客户签了合同但三个月不提货,锁着不释放会不会得罪客户? 所以要设到期提醒而不是直接释放。到期前 24 小时提醒业务,业务去跟客户确认交期。如果客户确实要延期,走审批延长一次;确认不提了,再释放。机制的目的是推动信息更新,不是为了抢客户的货。
锁定之后客户要加量怎么办? 走订单变更流程:新增部分走新的锁库判断,可用库存够就直接锁,不够就进入待采清单。不要直接改原订单数量然后把锁定数一并改掉——这样会丢失变更轨迹,事后查不清楚。
锁库会不会导致库存看起来总是比实际少? 会,这正是它的作用。实际库存和可用库存本来就是两个数字,都对:实际库存给财务和盘点用,可用库存给销售报价用。系统里两个都要能看到,只是默认显示后者。
先算一笔账,再决定要不要看系统
撞库存的代价可以直接算:一次超卖导致的客户流失、临时调货的加价、加急运费,加起来往往远超你的预期。先把自己过去一年因为撞库存损失的金额算出来,再决定值不值得上一套锁库机制。
主 CTA:看这套方法在系统里怎么跑 次 CTA:继续读:循环盘点的具体安排