十几年前,我在一家南加的 3PL 做运营,两个仓都在内陆帝国(Inland Empire),开车过去不到一小时。有一回周五下午,一整车货从 A 仓调到 B 仓补货,司机提货时单据齐全、封条完好。结果周一早上 B 仓收货员打电话来,说对不上——A 仓的调拨单上写着"已发出",B 仓这边却"还没收到",三十来箱货凭空消失了。

我们花了整整一周才捋清楚。问题不在司机,也不在收货员,而在系统:那辆车的调拨单在周五出库确认的那一刻,库存就直接从 A 仓的账上扣掉、加到了 B 仓的账上。可这批货实际上在路上颠簸了三天。这三天里,B 仓的客服看着系统里的"有货"接了单,A 仓的拣选员看着"没货"跳过了那个库位。同一车货,账和实物在时间上错位了三天,两边都没错,但账全乱了。

从那以后,但凡有人问我多仓调拨,我第一句话就是:先把"货在路上"这段时间在账上单独管起来。这是多仓运营里最容易被轻视、也最容易爆雷的一环。小公司觉得"我就两个仓,调拨单简单记一下就行",等仓开到三四个、每天几十票调拨的时候,再想补这个课,代价就大了。

货在路上,账到底归谁

调拨单完整的单据流其实就三段:调出确认、在途、调入确认。很多小公司的系统只有两段——调出一确认,库存直接从 A 仓划到 B 仓,中间没有"在途"这个状态。这就是上面那个故事的病根。

我的判断很直接:在途必须是一个独立的库存状态,最好在系统里单独建一个"在途仓"或者"在途"状态码。调出确认时,库存从 A 仓的可售库存里扣掉,进入在途;调入确认时,再从在途转入 B 仓的库存。账面上的货永远有地方待着,不会出现"既不在 A 也不在 B"的三天真空。

关键的一条规则:在途库存不算可用量。可用量是拿来接单、承诺客户交期的,在途的货你说不清它哪天到、到的时候少没少件,就不能拿去卖。这一点上别心软,系统里把在途排除在可用量之外,是底线。我见过有老板觉得"在途的货反正快到了,先卖了又不耽误",结果车在高速上抛锚晚到两天,订单全部延迟发货,客服被投诉电话淹没。这种便宜占不得。

还有一个容易被忽略的细节:调拨单要分计划调拨和紧急调拨两种。计划调拨走正常审批流,提前一两天建单,两个仓都有准备时间;紧急调拨是救火用的,比如 B 仓突然断货,允许先电话通知、后补单据。但紧急调拨的单据必须在当天内补齐,否则"先斩后奏"会变成常态,单据流就形同虚设了。

仓库调拨区托盘待发运

系统里就三件事,别瞎配

第一,调拨单的状态机要完整。创建、已调出、在途、已收货、差异关闭,五个状态一个不能少。很多系统图省事,把"已调出"和"已收货"合并成一个"已完成",结果收货差异没地方记,最后只能手工调账。手工调账一多,账就没法信了。状态流转还要卡权限:调出确认只能由发货仓的人做,收货确认只能由收货仓的人做,不能同一个人两边都点了,那等于自己给自己背书。

第二,可用量规则:调出确认的那一刻就必须扣减可用量。有人觉得"货还没走,晚点扣也行",这是给自己挖坑。单据一旦确认,货权就已经转移了,这时候不扣,客服就会拿已经"在路上"的货继续接单,超卖是迟早的事。反过来,收货仓这边在调入确认之前,一律不许把这批货算进可用,哪怕司机已经到门口了——没清点入库之前,数量就是不确定的。

第三,差异处理要有归属。B 仓收货发现少件,差异单挂在谁头上?我的做法是:差异先挂在途,限期查清。查清是发货少发,差异进 A 仓的库存调整;是运输途中丢的,走承运商索赔流程;查不清的,超过一定期限后按事先约定的规则分摊。规则可以各家自己定,但必须事先写好,不能等丢了货再吵架。另外,差异率要定期统计:哪个线路、哪个承运商的差异率长期偏高,数据摆出来,该换承运商就换,别凭感觉。

丢了算谁的,事先写好

多仓调拨的高频坑就三个。第一是责任断点:司机提走货、签了字,从那一刻起货就是承运商的责任。但很多仓提货时不让司机清点,只数托盘不数箱数,真少了货,承运商一句"提的时候就这样"你一点办法没有。做法:调拨出库必须逐箱清点,司机签字确认件数,封条号写进单据,拍照留存。这一步麻烦十分钟,省的是后面一周的扯皮。如果是自己公司的车队跑调拨,也一样要走这个流程——熟人之间最容易省步骤,也最容易出糊涂账。

第二是月底结账对不上。财务结账那天,在途的货算哪边的期末库存?我的判断是:哪边都不算。在途库存必须在月结报表上单独列一行,数量和金额都单列。混进 A 仓的期末数,A 仓的账实就对不上;混进 B 仓,B 仓的周转率就被污染。单独列示,财务和运营都清爽。这一点最好在年初就和财务对齐,写进结账规则里,别等到十二月关账的时候再争。

第三是在途超时没人管。单据状态停在"在途"十天半个月,没人追问。做法:系统里给在途设一个预警期限,超过期限自动标红、推给调拨发起人。期限多长各家自己定,看你们正常的运输时效加几天缓冲,关键是要有这个机制。预警出来之后要有闭环:是承运商的问题就去追,是收货仓忘了确认就去催,原因要记录下来,下次复盘用得上。

每周五下班前,对一遍这张清单

说了这么多,落地其实就一张清单,贴在调拨负责人的工位前面:

  • 把所有状态还是"在途"的调拨单拉出来,一单一单看
  • 超过正常运输时效还没到的,打电话问承运商,别等
  • 紧急调拨的单据今天补齐了没有,没补齐的不许下班
  • 收货差异单有没有超过一周没人认领的,有就升级
  • 月末结账前,在途要么收货关闭,要么在报表上单独列示,绝不混进任一仓的期末库存
  • 新开的调拨单,检查一下可用量是不是在调出确认时就扣掉了

在途库存这笔账,难的从来不是会计分录,是运营习惯。单据流完整、状态独立、责任事先写清,这三件事做到位,多仓调拨就乱不到哪去。反过来,哪怕你上了最贵的系统,这三件事没做到,账照样是一笔糊涂账。