仓储软件

收货、上架、库存、拣配和发货都在一套系统里

货不多的时候,仓库靠的是仓管员的记忆和一张 Excel 表。量一上来就不行了:表里的库存和货架对不上,找一个箱子得全班一起找,问「为什么没货」得到的是猜测。仓储软件把这种工作方式去掉:每个商品都有位置,每个动作都有记录,库存不是月底才算,而是在操作发生的那一刻就算。以下讲解它是怎么运作的——从收一批到货,到发出一个拣好的订单。

仓库管理系统

是什么

仓库管理系统 — 一个做仓储核算的程序:记录什么到了仓库、放到了哪里、还剩多少、哪些已经拣进订单、哪些已经运走。人们常用一个缩写来称呼它 WMS — 那不过是这类程序的英文名(warehouse management system),意思完全一样:管理仓储流程。

一个例子就能看出区别。没有系统时,入库记在本子上,库存在表格里,箱子放在哪儿只有当初摆它的人知道。要拣一个订单,员工得去找货;要回答「仓库里有没有」,业务员得给仓管员打电话;要弄清少了的十二件去哪了,就得停掉仓库重数一遍。

在系统里,这一切都是记录。商品有卡片,卡片上有数量和存放地址,每个操作都有时间、操作者和依据。回答「放在哪、有多少」只要几秒钟,而且不取决于今天谁在班上。

举个例子。 早上到了一批货:送货单上写着四十箱。仓管员在系统里做了收货、核对了数量、发现一处差异,然后按系统自己给出的建议位置把货放好。到中午订单来了——拣货员拿到一份带商品和地址清单的任务,一趟就拣完,不用问任何人东西在哪。到傍晚,系统里的库存和货架对得上,因为这一天里商品的每一次移动都在发生的那一刻被记录下来了。

仓库自动化 的起点,是当三个问题的答案再也装不进仓管员的脑子时:实际到底有多少货、它究竟放在哪里,以及过去一周它身上发生过什么。

完整的仓储流程从收货到发货
  • 1收货
  • 2上架
  • 3存储
  • 4拣货
  • 5验证
  • 6发货

这是商品走的路,而不是程序界面的清单。有两项操作横跨其上,将单独讲解:区域之间的移库和盘点。它们不把货往顾客那边推——它们让账目与货架上真实存在的东西保持一致。

现代仓库,配有库位货架、收货区、手持终端的员工和发货作业

系统对每个商品都知道什么

  • 它是什么 — 名称、货号、条码、计量单位、包装
  • 有多少 — 总数量、为订单预留了多少、可用多少
  • 放在哪 — 区域、货架、层或库位;如果有多个存放位置,全部列出并附数量
  • 从哪来的 — 到货批次、供应商、入库单据、收货日期、由谁收的
  • 处于什么状态 — 合格、残次、隔离、待检、已预留
  • 它身上发生过什么 — 该商品的全部操作,含操作者、时间和数量

系统自己不做什么

程序不搬箱子,也不替代仓管员。它去掉的是动作周围的手工活:提示位置、计算库存、不让任务少做一行、并记录每一次移动。主区域满了要不要把货放进不合适的区域,这个决定仍然由人来做——只是依据的是完整图景,而不是记忆。

同样,系统本身并不「看见」货架:它知道的恰好是员工用动作在里面记下的那些。因此账目质量取决于的不是功能有多少,而是操作是不是在发生的那一刻被标记下来。

通常从哪里开始

最先做的是编址——给存放位置起明确的编号,并把库存挂到这些位置上。原因很简单:只要商品还没有地址,任何一次拣货都要从找货开始,任何一次盘点都会变成把整个仓库重数一遍。

哪些问题 由系统解决

下面列的不是功能清单,而是让仓库被自动化的六个问题。每一个的表述方式都一样:没有程序时会发生什么,有了程序又会怎样。

货不再丢

没有系统时,箱子在哪只有摆它的人知道。他一休假,全班一起找货。在系统里每个商品都有地址,而且地址只通过操作改变:放入、挪走、取出。找货被任务里的一行字取代。

库存与货架一致

库存不是每月按盘点结果算一次,而是在每一次操作时就算。账实之间的差异不会不知不觉攒到盘点那天:它会立刻出现在报表里,连同造成它的那一次操作。

拣货不靠记忆

拣货员拿到任务:取什么、取多少、从哪个地址取。新员工第一天就能拣单,因为在仓库里怎么走由系统决定,而不是靠经验。漏掉的一行不会跟着订单出去——任务关不掉。

收货当场记录

到了什么、多少、依据哪份单据、谁收的——在卸货的那一刻就记录,而不是晚上再把送货单抄进表格。少发、错发和残次成为带原因的独立行,而不是一周后对供应商的一句口头抱怨。

盘点不再是一场突击

可以只盘一个区域或一个商品,不必停掉整个仓库。系统自己把实物与账目做对比,只显示差异——不必再人工逐行核对上千个商品。

看得到谁做了什么

每一次操作都签着操作者和时间。这不是盯梢员工,而是能够复盘某个具体案例:三件货在哪一步丢的。顺带也能看到工作量——一个班次拣了多少行、由谁拣的。

系统 由什么构成

系统由模块拼装而成。并不是每个仓库都需要全部模块:只有一间后仓的门店不需要批次和保质期核算,而配送中心离不开拣货区补货任务。具体组合由需求决定,但模块之间是事先就能对接好的,而不是事后从旁边硬加。

收货、库位存储、拣货与管理集成在同一个现代仓库里

商品收货

系统的入口:到货批次、入库单据、内容与数量、收货日期和时间、责任员工。与送货单的差异也在这里记录——少发、多发、错发、破损货件。

库位存储

系统里的仓库地图:区域、货架、层、库位。每个位置都有编号,商品记的不是「在仓库里」,而是在某个具体地址上——并逐个位置附上数量。

库存核算

总共有多少、为订单预留了多少、可供销售多少。库存由操作重算,而不是手工改,并且可以拆到具体地址和批次。

订单与拣货

拣货任务:取什么、取多少、从哪些地址取、按什么顺序走。部分拣配、商品替换和位置上没货,都是事先描述好的独立情形。

移库

商品在区域和库位之间的内部移动:补充拣货区、合并库存、把残次品移入隔离区。每一次移库都是一项带「从哪」和「到哪」两个地址的操作。

盘点

清点实物并与账目核对:可覆盖整个仓库、某个区域、某组商品,或某一个地址。结果不是一句「都对上了」,而是一份带数量和位置的差异清单。

复核与发货

打包前对拣好的订单做核验、组成货件、单据,以及把订单往下交——交给配送、配送员,或者来自提的客户。

任务与角色

工作以任务而不是口头的方式派给员工:收一批货、上架、拣一个订单、挪一下、数一下。每个角色都有自己可用的动作和自己的界面。

管理后台

负责人和管理员的工作台:库存、入库、发货、进行中的任务、问题操作和仓库负荷,都在一个屏幕上。在浏览器里打开,无需安装任何东西。

配合扫码作业

通过读取条码或二维码来确认操作:商品的、包装的、存放位置的,或者任务本身的。实现方案可以从员工的智能手机到数据采集终端不等。

日志与报表

全部操作的历史,含操作者和时间;库存、流转、收货与发货、员工产出的报表。可导出为文件,也可按计划自动生成。

API 与系统对接

系统对外的接口:获取库存、创建拣货单、回传发货状态、拉取操作日志。网店、物流、CRM 和财务系统都通过它接入。

商品收货

到了什么、该放在哪

收货 — 商品成为仓库责任的那一刻。在此之前,货由供应商或承运商负责;在此之后,由仓库负责。因此它以一项操作来办理,而不是在本子上记一笔:此后的一切都从这里记录下来的内容开始算。

收货从一批预期到货开始。系统知道应该到什么货——来自给供应商的订单、送货单,或外部程序。仓管员打开这批到货,逐个商品标记实收数量,而不是把单据重抄一遍。

收货时系统记录什么:

  • 到了哪些商品 — 名称、货号、条码、计量单位、包装
  • 多少 — 每个商品、每个货件的实收数量
  • 属于哪一批到货 — 供应商、订单号和单据号、运输方式、车牌号
  • 什么时候、谁做的 — 收货开始和结束的日期时间,以及执行收货的员工
  • 处于什么状态 — 合格、包装破损、需要检验、已送入隔离
  • 放到哪里 — 每个商品的存放地址:由系统建议或人工选定

与单据的差异 — 不是员工的失误,而是收货的一种正常结果,只是必须被记在某个地方。少发、多发、错发和摔坏,都成为带数量和原因的独立行。只要没有这样一行,差额就会在一个月后的盘点上「浮出来」——那时已经没有机会去找供应商了。

带保留意见收下的货,不会悄悄进入总库存:在做出处理决定之前,它挂在一个单独的状态里。这是唯一能避免把实际躺在残次区的东西从仓库卖出去的办法。

仓管员在收货区打开的车旁扫描纸箱并核对到货

按箱收货还是整批收货

零星到货按商品逐项收更方便,大批到货则按货件收:先记下到了十二个托盘,再随卸货进度逐步拆分。两种模式针对的是同一份单据,区别只在于员工在哪一层做标记。

这在实践中很要紧:如果系统只会其中一种,仓库就会开始迁就程序——「一行收完全部」,从而丢掉这批货的构成。

收下的货该放哪

标记数量之后,系统会给出位置建议:目标区域里的空库位、这个商品已经在放的地址,或者分配给它所属商品组的区域。挑选规则按仓库配置——按周转率、按重量、按温度要求。

员工也可以把货放到别的位置——但那样他就要记录实际地址,系统记住的是实际的那个。它绝不该悄无声息地与货架不一致。

收货什么时候算结束

不是车开走的时候,而是所有货都按地址放好、差异都处理完的时候。在此之前这批到货保持打开状态,收货区在面板里显示为占用中——这是唯一能防止卸货区变成「回头再说」的长期堆场的办法。

到货 № 2317 的收货系统界面截图,数据为演示用
商品单据数量实收差异已上架状态
电源线,1.5 米240240A-04-2-11已收
电源适配器 65 瓦120108−12A-02-1-04少发
壁挂支架6060B-01-3-07已收
机箱,黑色40404 件破损隔离区-1待排查
紧固件,一套025+25B-03-2-02多发

五行里有四行已关闭,但整批到货没有:差异没处理完,单据就一直开着。破损那一行体现了收货最主要的规则:破损商品去单独的地址,不进入可售库存,否则它会在有人腾出手来处理之前就被卖掉。

上架

与库位存储

库位存储 — 一种核算方式,系统知道的不只是商品数量,还有它所在的具体位置:区域、货架、层或库位。每个位置一次性获得一个编号——地址——此后商品就记在这个地址上。

它与普通库存核算的区别是根本性的。「仓库里有 108 个电源适配器」只是半个答案:要取它们还是得去找。「108 个电源适配器:96 个在 A-02-1-04,12 个在 B-05-3-01」才是完整答案,直接就能变成给员工的一条任务。

地址长什么样。 通常是几个层级:仓库区域、货架编号、层,以及层上的位置。编号打印成标签贴在货架本身上——员工在现场看到的地址和系统里的一样。

仓库通常由哪些区域构成:

  • 收货 — 卸货与上架之间的货
  • 主存储区 — 存放备货的货架
  • 拣货区 — 紧挨打包区的畅销商品
  • 打包与发货 — 已拣好、等待车辆的订单
  • 隔离与残次区 — 对拣货关闭的地址

区域不是台账里的一个标注:正是它决定商品会不会进入可售库存,以及拣货时系统会不会推荐这个地址。

上架 — 把商品与地址关联起来的操作。员工领到「把收下的货上架」的任务,走到位置前,记录地址和数量。从这一刻起,商品就可以从这里被拣走。

上架规则 按仓库配置:畅销品离拣货区近一些,重物放低层,易碎品不压在重物下面,有保质期的按先到期先拣的顺序摆放。规则只是提示位置,并不禁止放到别处——它省的是时间,不是绑住人的手。

同一个商品可以同时躺在几个位置上——这是常态,不是账目错误。系统按每个地址分别保存数量,因此拣货时一眼就能看出从哪里取更划算、哪里的存货快见底了。

员工把纸箱放进整齐仓库货架上的某个具体库位

地址怎么读

地址 A-02-1-04编址方案由项目细化
  • A — 区域必填仓库的一部分:主存储、拣货区、收货、发货、隔离、残次
  • 02 — 货架必填区域内的某一排或某个货架;拣货时的行走顺序就是按它排的
  • 1 — 层必填高度层级。低层留给重物和畅销品
  • 04 — 库位取决于仓库类型层上的具体位置。小型仓库可以不设「层」——地址就到货架为止

编址的层级深度按具体仓库一次性选定:多一层会拉长每一次操作,少一层则会让人重新回到货架上翻找。小型仓库通常三层就够。

为什么需要一个单独的拣货区

订单量大的仓库会把畅销品放在紧挨打包区的单独区域,主备货则放在更里面。这样拣货走的是短路线,而给拣货区补货是一项单独的任务,不会妨碍拣货。

这不是必选方案:对只有几百个商品的仓库来说,它增加的工作比省下的更多。要不要它,看的是一个班次的拣货行数,而不是场地面积。

库存 管控

在仓库里,「库存」这个词同时指三个不同的数量,把它们弄混的代价是最大的:货被卖了两次,或者反过来,一直为一个早就取消的订单占着。系统把它们明确区分开。

仓库总量

实物数量——货架上真实存在的东西,不管它已经答应给了谁。这个数字只由针对商品的操作改变:收货、拣货、移库、报损、盘点。

已预留

已经绑定到具体订单上的数量。货在物理上还在仓库里,但不能再卖一次。预留由发货或订单取消来释放——它自己不会消失。

可售

前两者之差,就是此刻可以答应给新顾客的数量。真正值得推送给网店的正是这个数字,而不是总量。

流转与历史

库存是怎么变成现在这个数的:每一次操作都带日期、操作者、数量和地址。任何有争议的情况都靠这条链来还原,而不只是看最终那个数。

按商品看库存系统界面截图,数据为演示用
商品总量预留可售存放地址状态
电源线,1.5 米24036204A-04-2-11正常
电源适配器 65 瓦1089612A-02-1-04, B-05-3-01即将见底
壁挂支架60060B-01-3-07正常
机箱,黑色44832C-02-1-09,隔离区-14 件待查
紧固件,一套25250B-03-2-02全部已预留

最后一行解释了为什么要三列而不是一列:货在物理上确实在仓库里,但不能答应给新顾客——它已经是别人的了。把「总量」这一列推给网店,客人就会下单买到根本没有的东西。

系统还单独盯着几条界线:该补货的最低库存、畅销品的安全库存、一段时间毫无动销的商品。这些规则按商品或按商品组配置——给全部商品设一个统一阈值,实践中行不通。

订单拣货

从订单到拣好的一筐货

拣货 — 用仓库里现有的货来组配订单。订单来自业务员、网店,或公司的另一个程序,而系统把它变成一份 拣货任务:要取什么的清单,以及从哪些地址取。

领到任务的员工,应当不问同事一句话就明白四件事:拣什么、拣多少、它在哪里、拣好了交到哪里。这四件事都在任务本身里,因此培训一名新拣货员只要一个班次,而不是一个月。

行走顺序 由系统按地址排定:行的先后不是顾客下单的顺序,而是在仓库里移动的顺序。一趟拣完和员工来回三次回到同一个区域,区别就在这一点上。

拣货 逐行确认:从某个地址取了多少。该地址上的库存在做标记的那一刻就减少,而不是等到一天结束——否则两名拣货员会去抢同一个箱子。

如果位置上没货 — 这是一种事先描述好的独立情形,而不是死路。系统会推荐另一个有同款商品的地址;如果哪里都没有,这一行就标记为无法满足:订单以部分拣配的状态发出,差异连同「本该有货的那个地址」一起进入排查。

订单量大的仓库会把任务成组下发:一趟拣多个订单,之后再按客户分拣。要不要这种模式,看的是一个班次的拣货行数——对小仓库来说,它只会把工作弄复杂,得不到好处。

拣货员按终端上的任务,从库位货架上把商品拣进手推车上的容器

打包前的复核

拣好的订单要过一道核验:内容与清单核对,数量与任务的行核对。小仓库由同一名员工来做,大仓库则由打包区的专职复核员来做。

这一步看起来多余,直到第一次要处理「你们发错货了」的投诉为止。复核花的是几分钟,退货加重发花的是一天的工作量和客户的信任。

订单从哪里来

订单可以由业务员手工创建,可以从 网店 自动进来,也可以通过 API 从公司的财务系统传入。来源不同,拣货任务是同一份,否则一部分订单就会形成自己那套不成文的处理顺序。

反向的流同样重要:订单一拣好,网店和业务员不用给仓库打电话就能看到,而预留的货由发货从库存中扣减,而不是手工扣。

拣货任务 № 8842拣货员终端界面截图,数据为演示用
商品地址需拣已拣状态
1电源适配器 65 瓦A-02-1-0444已拣完
2电源线,1.5 米A-04-2-1144已拣完
3壁挂支架B-01-3-0722已拣完
4紧固件,一套B-03-2-0220处理中
5机箱,黑色C-02-1-0910地址上没货

各行按 A → B → C 的区域行走顺序排列,而不是按顾客往购物车里添加商品的顺序。第五行不会卡住整个订单:拣货员标记该地址为空,系统去其他位置找这个商品,找不到就把这一行放进排查——连同库存原本记在的那个地址。

移库

仓库内部的商品流转

移库 — 一项让商品更换存放位置、但仍留在仓库里的操作。数量不变,变的是地址。从外面看这是件小事,但恰恰是没有申报的挪位最常把账目搞垮:库存数对得上,货架上却是空的。

为什么要挪货:

  • 补充拣货区 — 把畅销品从主存储区运到离打包更近的地方,让拣货走短路线
  • 腾空收货区 — 把收下的货分散到各个位置,别让卸货场变成仓库
  • 合并库存 — 把分散在几个不满地址上的同款商品并到一个位置
  • 移入隔离或残次 — 破损和有争议的货移到单独地址,不再可供拣取
  • 按季节重排 — 畅销商品的构成变了,就重新划分区域

这是怎么记录的。 移库永远有两侧:「从哪」的地址和「到哪」的地址,外加数量、时间和员工。货在区域之间移动的过程中,它挂在一个中间状态里——既不会从账上消失,也不会在还没到达之前就出现在新位置上。

移库可以是一项任务——那样系统会自己生成需要搬运的清单,例如补充拣货区时。它也可以是一项自由操作:员工挪了货并当场记录下来。两种方式最后都落成日志里同一条记录。

报损不是移库。 不是随订单离开仓库的货——摔坏、变质、内部自用——要以一项带原因和责任人的独立操作办理。两者不能混:移库不改变总数量,报损会改变,在期间报表里这是两条性质完全不同的行。

员工用电动堆高车在仓库各区域之间搬运托盘

一次移库的分步过程

补充拣货区系统界面截图,数据为演示用
  • 任务已生成拣货区的电源适配器库存跌破阈值——系统生成一条任务:把 48 件从 C-05-3-02 搬到 A-02-1-04
  • 已从原地址取出员工标记了取出:48 件从原地址扣减,商品转入「移库中」状态
  • 已上架在目的地记录了地址和数量;商品重新可供拣取,但已经是从拣货区拣了
  • 已写入日志操作关闭:两个地址、数量、开始和结束时间、员工

第二步和第三步是两项操作,而不是一项。只要它们是分开的,路上的货就显示为「移库中」:系统不会从它已经离开的地址派拣货任务,也不会有人去它还没到达的地方找它。

为什么这不是小事

没有记录的挪位不改变总数量,因此在库存报表里看不见。它会在稍后显形——变成一条派向早已空掉的地址的拣货任务,以及拣货员白白花掉的时间。

盘点

把账目与货架上的实物核对

盘点 — 清点实际商品并与系统数据比对。意义不在清点本身,而在差额:要紧的不是货架上有 96 件,而是系统里写着 108 件。

没有数字化账目时,盘点意味着停工一天、纸质盘点表和手工汇总。有了按地址的账目,就可以分块盘、不停工:今天一个区域,明天另一个,另外再单独盘那组最容易出入的畅销商品。

它是怎么做的:

  • 盘点任务 — 系统生成一份地址或商品的清单,并指派给某位员工
  • 按地址清点 — 员工逐个位置录入实际数量,看不到账面数字
  • 比对 — 系统自己把实物与账目做对比,只留下有差异的
  • 排查 — 针对每一处差异调出操作历史:这个地址上的商品经历过什么
  • 调整 — 用一项带原因和责任人的独立操作,把账目调整到与实物一致

在录入实数之前不显示账面数字 — 这不是走形式。员工一旦看到应有的数字,清点就变成了确认:没人会数到底,差异也就顺延到下个月。

抽盘 通常比全盘更有用。畅销品每周盘一次,冷门商品每季度盘一次,而拣货时发现的任何差异都会立即触发对该地址的重盘。这样账目就与货架持续保持一致,而不是一年对上两次。

两名员工在货架上清点商品,并把结果录入终端

差异该怎么处理

差异不是定论,也不是马上就该报损的理由。系统先给出该地址的历史:入库、拣货、移库、以前的调整。一半的情况都能用没有记录的挪位、或者从错误位置标记的拣货来解释。

如果找不到解释,差额就用一项带原因的调整来了结。原因是必填的:没有它,一个季度之后就分不清仓库到底是在丢货,还是在标记上出错。

多久盘一次

频率按商品组设定,而不是对整个仓库设一个。贵重和畅销的盘得勤,零碎小件盘得稀。系统会在到期时提醒并自行生成任务,因此盘点不取决于有没有人想起这件事。

另一个触发临时盘点的场合,是承担实物责任的员工更换:在交接班的分界处把该区域盘一遍,此后由新的人负责。

B 区盘点结果的差异系统界面截图,数据为演示用
地址商品系统数量实物差额历史显示了什么
B-01-3-07壁挂支架6060一致
B-03-2-02紧固件,一套2519−6拣货被标记在了相邻地址上
B-05-3-01电源适配器 65 瓦1212一致
B-05-3-04电源线,1.5 米06+6移库执行了但没有做标记
B-02-1-08机箱,黑色85−3没有解释

五行里有三行需要排查,其中两行不是丢货,而是漏了标记:一个地址上的负数和相邻地址上的正数加起来是零。恰恰是这样的成对差异最值得查——它们能看出流程的哪一步是绕过系统在做的。

复核 与发货

发货是仓库的最后一步,也是配送的第一步。货在这里实际离开仓库并更换责任人,因此这次交接以一项有双方的操作来办理:仓库交出、司机或客户接收。

打包好的订单在发货区从仓库交到车旁的司机手上
从拣好的订单到交接正常的发货路径
  • 已拣配任务的所有行都已关闭,货在筐里或在拣配工位上。库存上的预留尚未释放——货实际还在仓库里
  • 已复核内容已与订单清单核对:名称和数量。有差异就把订单退回补拣,而不是跟着一起发出去
  • 已打包订单变成货件:箱子贴好标签,重量和尺寸已记录,单据已备好
  • 待发运货件放在发货区等车。从这一刻起,内容不经过单独操作就不再变动
  • 已发出货件已交给司机、配送员,或来自提的客户。货从库存中扣减,责任转移给接收方

从库存中扣减发生在最后一步,而不是第一步。订单拣好但还没运走时,它实际就在仓库里——盘发货区时必须能看到它。提前扣减,等于凭空制造一处差异。

异常情况下系统会做什么默认行为,具体在项目中细化
发生了什么系统会做什么状态
复核时发现订单里多了一个商品把订单退回补拣;多出来的货以一项独立操作退回其存放地址待排查
拣货时少了一个商品把该行留作无法满足,并把订单显示为部分拣配:是否部分发货由业务员决定待排查
订单在发货前被取消释放预留,并生成一条把已拣的货退回存放地址的任务——而不是把这一筐「化」回库存里正常
车没来取货把货件留在发货区保持「待发运」状态,不从库存中扣减,并单独列出一份清单提醒
订单被退回了仓库办理退货收货:商品状态单独核验,合格的退回库存,有争议的移入隔离待排查

总原则:没有操作,货既不会消失,也不会出现。任何偏离都留下一条打开的记录并进入排查队列——这比一份「没有差异」的报表要便宜,因为那份报表之所以没有差异,只是因为差异无处记录。

此后订单就活在配送里了:路线、执行人、收货方那边的状态和交付确认。它是怎么运作的,见 物流软件页面;仓库只拿回与自己相关的部分——交接的事实、退货,以及未送达的货件及其原因。

收货与上架

库位存储

拣配与发货

库存与报表

仓库员工 及其在系统中的角色

系统把工作按角色分开:每个角色有自己的工作台、自己的一组动作和自己的任务。这不是为了限制而限制——屏幕上多余的东西越少,当班出错就越少,新人上手也越快。

仓库员工

接收到货、把数量与单据核对、登记差异、把商品按地址上架并执行移库。他看到的是自己区域的任务和自己操作的历史;别人的订单和公司层面的报表他不需要。

拣货员

领取拣货任务并逐行关闭:取什么、取多少、从哪个地址取。位置上没货时做标记。他用的是一个精简的移动界面——任务界面,而不是完整面板。

发货复核员

打包前核验拣好的订单、组成货件、办理向运输方的交接和退货接收。小仓库由仓管员兼任这个角色——只有出现独立的打包区时才把它分出来。

管理员

维护台账:商品、存放地址、区域、上架规则、员工账号和访问权限。执行普通角色无权做的库存调整——每一次都带原因和签名。

业务员

他打交道的是订单和库存,而不是货架:查看可用数量、把订单送去拣配、跟踪拣配进度,不用给仓库打电话就能答复客户。针对商品的操作对他是关闭的。

仓库负责人

他看的不是某一次操作,而是全局:库存及其流转、收货与发货量、进行中和超期的任务、差异、员工产出和存储区域的负荷。

对所有仓库角色而言,任务是主要的工作形式。它有创建者、执行人、下发时间和关闭时间,因此任何时刻都能看出什么已经做完、什么在进行、什么一直没动。按员工统计的已完成任务历史,就是从同一批记录里汇总出来的——为此不需要另做一套工时核算。

管理后台

负责人和管理员看到什么

管理后台 — 用来管理仓库的工作台。它的任务不是「把所有数据显示出来」,而是把此刻需要做决定的内容集中到一个屏幕上,其余的收进更深处。

面板里能看到什么:

  • 库存 — 按商品、按商品组、按区域和按具体地址查看,并附预留和可用数量
  • 入库 — 已收和预期到货的批次,以及差异尚未处理完的未结单据
  • 发货 — 什么已拣好、什么已打包、什么已经运走,以及什么在发货区停留超过了正常时长
  • 进行中的任务 — 处理中的收货、上架、拣配、移库和盘点,含执行人
  • 问题操作 — 差异、无法满足的订单行、残次与隔离、退货
  • 商品流转历史 — 某个商品或某个地址上的全部操作,含操作者、时间和数量
  • 仓库负荷 — 各区域有多少位置被占用、多少空闲,哪里的存储已经顶到天花板
  • 主要指标 — 本期收货与发货量、拣货行数、差异占比、员工产出

访问权限 把面板按角色区分开:仓管员看到自己区域的任务,业务员看到订单和可用库存,负责人看到整个仓库和报表。调整库存、修改编址方案和编辑台账,都是各自独立的权限,而不是打包成一个「员工」。

这种区分由角色设定,而不是给每个人勾一堆复选框。否则半年之后,新员工的权限就是「照着 Ivanov 那样配」,再也没人说得清他到底能看到什么。

仓库负责人在工作屏幕上管控库存、任务和发货

当天概览

一个班次,一个场地面板界面截图
34项任务 处理中
7笔操作 待排查
2批到货 正在收货
81%已占用 个存放位置
  • 订单拣配18
  • 上架9
  • 移库5
  • 盘点2

系统界面截图,数字为演示用。磁贴的顺序不是随手排的:排在最前的不是总产出,而是需要做决定的事。存放位置的占用率排在最后——这是唯一一个不必今天就做决定的指标。

操作历史

历史不是「以防万一」的存档,而是复盘工具。记录不做编辑:更正以一项带原因的新操作写入。因此「周四是谁报损了六件」这个问题有答案,而不是有几个版本。

通常从三头之一去看它:按商品看——它身上发生过什么;按地址看——这个位置上放进和取出过什么;按员工看——他这个班次做了什么。

条码与二维码

用扫码确认操作

扫码解决的是一个问题——在最容易出错的地方去掉手工录入。员工不用键盘敲货号和地址,而是读一个码:系统自己就明白他手里是什么货、他站在哪个货架前。

效果不在快,而在可信。「从 A-02-1-04 取走」这个标记之所以成立,是因为员工确实把扫描器凑到了那个库位的标签上。手工录入给不了这样的确认:地址可以凭记忆填,人却站在另一排。

可以扫什么:

  • 商品 — 厂商条码,或者在商品自身没有条码时用的自编码
  • 包装与货件 — 带唯一标识的纸箱、托盘,或拣好的订单
  • 存放位置 — 贴在货架上的库位、层或区域标签
  • 任务 — 拣货单、收货单或盘点单,通过扫码打开,而不是在列表里找
  • 员工 — 个人工牌,用于在公用设备上上班打卡,不必输账号和密码

设备是一种实现方案,而不是解决方案的必备部分。 扫码可以用普通智能手机的摄像头、接在工位上的扫描器,也可以用数据采集终端。哪种适合某个具体仓库,取决于作业条件、每班的操作量和预算;这个选择在调研时做出,我们不会事先指定某款设备。

同时,系统不能被扫描器卡死:任何操作也都能手工完成——输入编码或从列表中选择。否则终端一没电,仓库就停摆。

仓库员工在货架旁用手持工业扫描器读取纸箱条码

存放位置的标识

扫地址不是从设备开始的,而是从货架上的标签开始的。它们在仓库编址时一次性打印出来,此后就跟着货架一起用。少了这一步,扫描器就只确认了商品,而最常见的错误——「从错误的位置取了货」——依旧抓不到。

商品标签和货件标签可以直接从系统里打印——内容和格式由项目确定,因为这取决于供应商是怎么给商品做标识的。

这在数字上带来什么变化

实际效果在盘点时最明显:凡是操作有扫码确认的地方,差异明显更少,而且几乎每一处都能用历史解释清楚,不会不明不白。我们不会为别人的仓库承诺一个具体的百分比——它取决于商品结构和当班的执行纪律。

网络不好时怎么办

仓库里的 Wi-Fi 很少是均匀的:货架深处和大门口常常没信号。离线做的标记必须存在设备上,等连接恢复后补传——否则员工要么在货架前干等,要么干脆不再记录操作,账目也就跑偏了。

与此同时,重发不能生成第二次操作:每个标记都带一个键,系统只接受一次。这与外部系统数据交换所遵循的是同一条规则。

一次操作及其确认步骤组合由项目细化
  • 收货商品扫商品码——系统自己在这批到货里找到对应行,员工只需录入数量
  • 上架商品 + 位置连扫两次:放什么、放到哪。站在另一个货架前把地址填错,已经不可能了
  • 拣货位置 + 商品先确认地址,再确认商品——这样能抓住拣货中最常见的错误:「拿了个长得像的」
  • 移库位置 + 位置取出的地址和放入的地址:少了第二次扫码,这次挪位就没有被记录
  • 盘点位置扫码打开某个具体地址的盘点单,数量手工录入——此时不显示账面数字
  • 发货货件读的是纸箱或托盘上的标识,而不是里面的每一个商品:内容在复核时已经确认过了

拣货时两次扫码的顺序不是随手定的:先扫地址,排除「走错了货架」;再扫商品码,排除「拿了旁边那个标签相似的箱子」。两个步骤在技术上都不是强制的:这些操作不用扫描器也能做,手工输入编码即可。

系统对接 与数据交换

仓库很少独自存在:订单来自一个程序,客户在第二个程序里维护,会计在第三个,配送在第四个。以下是最常搭建交换的几个方向。某项对接的具体范围,取决于外部系统能对外提供什么,并在调研时确认。

电子商务

橱窗从仓库拿到的是可用库存,而不是总量,并把已生成的订单回传去拣配。门店本身和订单核算是怎么做的,见 电子商务.

物流

订单是否备好、货件构成、重量和尺寸传给配送;交接事实、状态和退货回传过来。详见 物流的.

配送员软件

执行人的应用可以直接接收拣好的订单,并回传「已在仓库取到货」的确认——这样交接就由双方共同办理,而不是一方。

CRM

可以与客户台账和成交历史对接:业务员在客户卡片里就能看到可用库存和订单是否备好,不用去问仓库。

ERP

它可以与公司的管理体系协同:采购、备货计划、成本核算。交换方向取决于哪一套账被认定为主账。

财务系统

与会计程序交换出入库单据。这里的关键问题只有一个——基准库存在哪里维护;这要在开工之前定下来,而不是干到一半再说。

外部服务

电商平台和交易平台、通知服务、标签打印、称重量方设备。每一项接入都是一个独立的交换模块;我们不会事先宣称已经有现成的连接器。

API

系统自己的接口:获取库存和地址、创建拣货单、查询是否备好、回传发货、拉取操作日志。凡是没有专门模块的,都通过它接入。

交换规则到哪里都一样:每个操作都带一个键,因此重复传输不会生成第二次收货或第二个订单;差异不会消失,而是进入排查队列;每一次发送和每一次应答都写入数据交换日志。没有这三条规则,对接能撑到的正好是第一次断网。仓库正是这样成为公司整体数字系统的一部分,而不是又一个需要人工搬运数据的程序。

落地实施的 顺序

仓库不会在一天之内整体搬进系统:只要还有一部分操作绕开程序在做,里面的库存就毫无意义。因此上线是分段推进的,后一段建立在已经跑通的前一段之上。

1. 调研

现在收货是怎么做的、有没有编址、库存用什么维护、订单怎么拣、已经装了哪些程序、它们能对外提供什么。产出是一份流程描述,以及一份「优先自动化什么」的清单。

2. 编址与台账

划分区域和存放位置、打印标签、把商品台账理清楚,并把库存挂到地址上。这是最被低估的一步:没有它,其余各步都在空转。

3. 单区域试点

一个区域或一组商品在真实作业中跑完整整一圈:收货、上架、拣配、移库、盘点、发货——然后再把这套流程铺到整个仓库。

4. 推广与对接

其余区域按已跑通的方案铺开,然后是角色与权限,再把各项对接作为独立的交换模块接入。此后历史逐渐积累,跨周期的报表和用于采购计划的数据也就有了。

聊聊贵公司的仓库

立即联系我们

请写明存了多少个商品、每天发出多少订单、位置有没有编址、现在库存用什么维护,以及订单和单据放在哪些程序里。我们会回答:优先自动化什么、有哪些可以接到现有系统上,以及试点从哪里开始比较合理。