出库—待配货流程产品设计怎么做?
在对出库的整体框架和业务流程有了一个基本的了解之后,那么关于仓库的产品设计该怎么做。由于ToC的出库更加复杂多变,所以本文以ToC的出库流程为例,谈谈如何进行待配货产品设计,一起来看看。
之前的文章介绍了出库的整体框架和业务流程,这篇文章主要说仓库的产品设计,还是先看出库的流程图,如下:
因为ToC的出库更加复杂多变,所以本文以ToC的出库流程为例。
首先就是出库流程的设置,该功能在SAAS产品非常常见,为了兼容所有公司的出库流程,系统将出库流程做成可配置,如下:
但仅是出库流程的可配置还是不能满足复杂仓库的业务需求,如:A货主的货在出库的时候需要验货,B货主的货出库的时候不验货;预包订单在出库的时候不需要验货,打包等等操作。
为了满足这些个性化的出库需求,不同的出库类型,不同的货主可配置出库流程(入库流程同样如此),如下所示(仅供参考):
一、出库的产品设计
1. 出库单
出库单的设计如下图所示(仅供参考):
WMS的出库单的来源一般都是通过上游系统下推,如:用户在商城下单后,在ERP系统生成了一个销售出库单,然后销售出库单标记发货,订单下推到WMS生成了出库单。
对【出库单】页面中的一些元素进行说明,方便大家理解。
1)订单号
在【出库单】页面一般要展示3个订单号字段,分别是订单号、关联订单号、物流单号。
订单号就是WMS系统生成的出库单号,关联订单号也叫外部订单号,是关联上游系统的订单号,它们的关系如下图:
2)订单状态
设计出库单页面,梳理订单状态则是该功能设计的核心,按照个人的经验整理了出库单的状态,如下所示(仅供参考):
按理来说,验货、打包、称重这些环节也有“进行中”和“完成”状态,通过扫描出库单、物流单号等单号,相关作业就在“进行中”;结束作业就变成“完成”状态。本人没有将这些步骤设计成2个状态,是因为这些步骤的作业时间短,就没有区分了,如果公司的业务有需求,需要按照公司的业务设计。
3)标记
标记是最订单信息的补充,在ToC的业务中特殊情况比较多,如:用户修改收货地址、订单被冻结、预售订单、预备订单、加急订单等等特殊情况,所以在出库单页面会有一个“标记”字段,用一些标记展示订单的特殊情况。类似实际生活中,过马路看到红灯停一个道理,这里举例友商的相关设计如下图所示(仅供参考):
4)出库单页面其它信息展示
- 货品:出库订单的货品展示;
- 日志:记录出库的日志信息,如:在什么时候分配的哪个货位,在什么时候执行了什么波次规则等等;
- 包材:出库单使用的包材,这里需要注意的是1个出库单对应N个包裹的情况;
- 包裹物流:调用第三方物流商的接口展示订单的物流信息(以包裹为维度);
- 绩效:展示出库单关联所有作业员的绩效,如:在拣货环节,拣货一个产品得0.1元。
这里是按照我个人的角度,认为出库单中难以理解的点进行了说明,大家还有什么不理解的可以留言,我会进行解答。
该页面的功能比较少,【出库单】页面只是一个查询页面,它是可以查看所有的出库单,但是在实际工作中,仓库主要关注“待装配”的订单和“执行配货策略”的订单。
根据我的工作经验,如果把出库单的所有信息用【出库单】页面承载,该页面就会变得非常臃肿,所以我会解耦,再设计一个【待配货】页面。
具体是否需要这样设计成多个页面,还是需要根据自身的业务进行设计。如果自身仓库的业务订单量比较少,就不需要做成几个页面。
2. 待配货
【待配货】是【出库单】页面解耦出来的一个页面,主要展示上游系统下推到的出库单,且没有执行拣货策略的订单页面,如下所示(仅供参考):
该页面的元素与【出库单】页面几乎相同,主要是相关的功能操作不同。这个页面重点有手动生成按单配货、手动生成波次配货、缺货计算3个功能。
其中“手动生成按单配货”和“手动生成波次配货”针对一些出库单需要做临时的出库处理,就可以手动去生成配货单,进行配货。
1)手动生成按单配货
选中订单,点击【手动生成按单配货】按钮,生成按单配货订单。
2)手动生成波次配货
手动生成波次订单有3种方式,如下:
- 所选订单生成波次;
- 所选订单,执行同品波次策略,生成波次;
- 所选订单,执行普通波次策略,生成波次。
手动生成波次还需要与“设置”功能集合,如:选中了100个订单,由于仓库的人员和设备限制,一个波次最多只能生成20个订单,所以此时就需要设置波次的容量。
3)设置
设置功能如下(仅供参考):
波次容量:
设置手动生成波次的最大容量,如:设置容量为30,选中100个订单生成波次,最理想的情况就是生成3个波次,余单10。
余单生成波次:
上述例子中,余下的10个订单没有满足容量,也生成波次。
注:这个功能的场景就是在长时间内都没有足够的订单,仓库也不会放着个10个订单不拣货,所以就余单也去生成一个波次拣货。
自动打印拣货单:
成功手动生成波次后,连接的打印机就自动打印相应的拣货单,拣货单模板如下(仅供参考):
缺货产品汇总生成补货单:
这个设置项与配货无关,主要是针对订单执行“库存预占”后,发现订单中的产品在拣货区无货,在暂存区有货,这个时候就自动生成补货单,可以设置执行的时间段和执行的频次,如:每10分钟执行一次;
去生成补货单,那么应该补货多少呢?这里有2种设计方案,如下:
根据缺货量生成补货单如:出库单需要10个A产品,但是拣货区只有2个,这个时间就生成8个补货单;
缺货量与货位补货量比较,取最大:如:出库单需要10个A产品,但是拣货区只有2个,缺货8个;同时这2个货分别在2个货位,这2个货位的最大容量为20,那么货位补货量=20*2-2=38。那么就按照货位补货量生成补货单,分别给2个货位补货19个。
注:这种补货方式的前提是需要设置货位的容量。
5)缺货分析
缺货分析的功能说明我纠结了很久,是否需要在本文进行说明,我查看了万里牛WMS、大宝WMS,在相关页面都没有这个功能,这个功能是我抄相关竞品的功能,本质就是对仓库的“待配货”订单进行库存分析。
这个功能就是提前计算库存,引导仓库作业,针对缺货的订单给出建议的同时,也引导仓管去执行上架、补货、采购等操作,能让仓库比较好的把控作业节奏。
举个栗子:如果仓库每天几万单,而且仓库是存捡分离的仓库,有的货在拣货区没有货,但是在备货区有货,所以在出库单拣货前去提醒仓管,进行补货操作,以免在拣货时发现没货,然后回过头来补货。
缺货分析的界面如下(仅供参考):
为了方便大家对该功能的理解,首先对表单中的字段进行说明,如下:
- 发货单货品数量:等待配货页面中未分配货品的货品数量,已分配货位的不做统计;
- 中转货位可用量:该货品在中转货位的库存可用量总和,不包含系统货位中的可用数量;
- 暂存货位可用量:该货品在暂存货位的库存可用量总和;
- 拣货货位可用量:该货品在暂存货位的库存可用量总和;
- 货位库存数量:当前货品在所有货位上的库存量总和;
- 补货数量:未指派、已指派的补货单中该货品数量总和(表示正在补货的数量)。
注:中转区就是入库单签收后,临时存放的区域;暂存区就是存捡分离的备货区。
缺货程度建议:
缺货程度目前分为三种:紧急、一般、不缺货。
1. 紧急:当拣货货位、暂存货位和现在的补货数量总和都无法满足当前订单池内该货品的所需量时,我们认为是紧急缺货的,这种情况需要紧急去做上架或者入库。否则会影响到订单发货时效,其判断依据为:
拣货货位可用库存+暂存货位可用库存+补货数量<发货单货品数
2. 一般:当拣货货位可用库存数量无法满足发货单所需货品,但暂存货位可用库存+补货数量+拣货货位库存可以满足发货单所需货品数量时,我们认为紧急程度为一般,可以通过补货或者催促补货人员尽快补货解决缺货的问题。缺货程度为一般的判断依据为:
拣货货位可用库存<发货单货品数量<=拣货货位可用库存+暂存货位可用库存+补货数
3. 不缺货:当拣货货位可用库存能满足发货单所需货品数量时,我们认为当前暂时不缺货。其判断依据为:
拣货货位可用库存>=发货单货品数
操作建议:
1. 上架:中转区有库存,但是暂存区没有库存,此时针对中转区的库存进行上架到暂存区或者拣货区。 判断依据为:
暂存区可用库存+补货数量+拣货区可用库存 < 发货单货品数量 <= 中转区可用库存+暂存区可用库存+补货数量+拣货区可用库
2. 补货:暂存区有库存,但是拣货区缺货,此时应该做补货。判断依据为:
拣货区可用库存<发货单货品数量<=暂存区可用库存+补货数量+拣货区可用库
3. 采购:中转区可用库存+暂存区可用库存+补货数量+拣货区的可用库存之和无法满足发货单所需的货品数量, 此时应该做采购或者入库操作。 判断依据为:
中转区可用库存+暂存区可用库存+补货数量+拣货区的可用库存<发货单货品数
4. 当拣货区可用库存>=发货单货品数量时,无建议操作。
大家已经知道了缺货分析的计算逻辑,那么什么时候去触发缺货分析的计算呢?
当时我做的是,点击【缺货分析】按钮,打开新页面,同时进行出库单的缺货计算,页面中展示所有缺货的出库单。——成功命中货位分配(库存预占)策略的订单除外
有细心的同学可能发现了,上述“操作建议”的只适用与货品必须从拣货区拣货的场景,如:一个产品在拣货区没有货,在暂存区有货,且在实际的仓库场景中,这个产品就是要到暂存区拣货,但是根据缺货分析的计算,系统建议仓库去进行补货,将货从暂存区补货到拣货区,然后在拣货区拣货,这样这样就会导致重复工作量。
小结:
缺货建议本质就是看暂存区+拣货区+补货数量是否满足订单的货品需求;
操作建议的本质就是看暂存区+拣货区+中转区+补货数量是否满足订单的货品需求。
6)该页面的其它功能说明
3. 预处理
针对上游系统推送到仓库的订单,辅助仓库作业人员对订单进行一个异常拦截或订单处理等,处理流程如下:
为了方便产品设计,我将订单的预处理分为基础信息处理、批次处理、货位分配(库存预占)3个部分。
基础信息预处理:
对出库单进行冻结、标记、预约物流等操作,预处理界面如下(仅供参考):
如上图所示,可以灵活设置一些规则,如:现在国内疫情,设置收货地址为疫情地区的订单冻结。
基础信息预处理的命中规则需要说明一下:
当出库单命中了多条预处理的规则,按照规则的优先级从大到小执行所有规则,若优先级一样,可以按照创建时间的降序执行;
其中
举个栗子:
一个发货单,命中了3条预处理策略,分别为:A、B、C,如下:
最终的执行结果为:
- 冻结:是
- 标记:a、b、c
4. 批次分配策略
批次策略的界面如下所示(仅供参考):
这个功能主要是对商品的批次进行过滤,如:一些顾客需要发送特定批次的产品,如A产品有积累顾客,每类顾客发送的产品批次都不同,如下所示:
- SVIP客户:发生产日期3个月以内的货,且按照先进先出原则发货;
- VIP客户:发生产日期6个月以内的货,且按照先进先出原则发货;
- 普通客户:没有生产日期的限制,按照先进先出原则发货。
为了满足上述场景,系统首先需要将满足批次需求的商品过滤出来,然后根据剩余的商品,进行货位的预占。
对上图界面的元素进行说明。
1)批次属性
常见的批次属性有入库时间、批次号、生产日期、到期日期、其他自定义的批次属性。
2)排序
排序可以从大到小,或从小到大,如:按照批次号从大到小出库。但是这里有一个细节需要注意,如果批次属性选择了入库时间,那么排序默认为从小到大,这样满足了先进先出的原则。
3)其他规则
根据自己公司业务自定义一些批次匹配规则,如下所示:
- 距离到期日期≤30天的商品,不参与批次分配;
- 设置客户,设置发生产日期时段的货,如:SVIP客户:发生产日期3个月以内的货,如果生产日期3个月以内的货不满足发货需求,则选择后续生产日期的货。
- ……
5. 货位分配策略(库存预占)
货位分配策略(库存预占)的界面如下所示(仅供参考):
库存预占常见有2种设计方案,分别是“配货前(波次配货和按单配货)前预占”和“配货后预占”。
因为我只做过“配货前的预占库存”的方案,我并不清楚这2种方案各自的优劣势,有懂的老哥可以留言。我能想到“配货后预占库存”,避免库存被“占用过多”的情况,因为有一些订单在配货前突然不发货了。
对上图界面的元素进行说明。
1)策略类型
策略类型包括同品和和普通策略。
同品:将相同货品的出库单打包生成波次;
普通:非同品货品的出库单打包生成波次。
注:这里还是千叮咛万嘱咐,是否这么设计还需要根据仓库的业务而定,别仓库每天就几百上千单,系统也设计的这么复杂,订单量少的仓库直接就将出库单打包生成波次就行了,根据不需要区分是否同品。
2)分配方式
- 先进先出:货品存在多个货位时,从入库时间最早的货位开始分配,直到能够满足所需数量为止,同一货位以最新入库时间为准
- 清仓优先:货品存在多个货位时,从货位库存最少的货位开始分配,直到能够满足所需数量为止
- 效率优先:货品存在多个货位时,从货位库存最大的货位开始分配,直到能够满足所需数量为止
- 集中分配:发货单中含有多个货品时,如果在同一个通道内能够满足所有货品的分配需求,则分配该通道;同一个通道内不满足时,则分配到能满足的同一个库区内。
- 货位优先:货品存在多个货位时,从货位排序最小的货位进行分配,排序相同的按照货位名称升序进行分配,直到能满足数量所需为止。
3)库区
可以设置拣货的库区,库区可以多选,如:选择拣货区1、拣货区2、暂存区1等等。
如果选择了拣货区和暂存区,优先分配拣货区;如果选中了多个同类型的库区,如:2个拣货区,按照库区的权重排序,如:拣货区1、拣货区2,拣货区1的权重大,系统则优先分配拣货区1的货位。
6. 包裹
要了解包裹,首先需要弄清楚订单和包裹之间的关系,很多人搞不清楚销售订单、系统订单、包裹之间的关系,关系图如下:
举个栗子说明:当用户下单后,公司会将用户的销售单同步到ERP系统,然后该订单必须在广州仓和深圳仓发货(按照仓库拆单),该订单被拆分成2个子订单,被拆分成了2个订单订单下推到仓库后,仓库打包的时候发现一个包裹装不下,就需要拆包,分为多个包裹发货。
包裹页面的设计如下(仅供参考):
页面主要展示出库单对应的包裹信息,大部分的出库单和包裹都是1:1的关系,但是会出现特殊情况,导致出库单:包裹,为1:N的关系。
出库单在打包的时间发现1个包裹装不下,需要多个包裹,类似顺丰的子母件;或者出库单部分出库。这最常见的2种情况会出现1个出库单多个包裹的情况,这2种异常情况的处理我放在后面的文章进行说明。
总结
写着写着发现出库内容有点多,需要分成几个篇章,在出入库的文章中我都没有怎么提到到异常情况的处理,关于异常情况我打算单独写一篇文章。
还是在这里说明一下,本人只做过自己公司内容的仓储系统,所以文章讲述的产品设计都是根据公司业务进行设计的,各位同学仅供参考。
按照惯例留一个问题,如下:就把上面说的的异常情况当做问题吧,如果一个出库单部分出库,要怎么进行产品设计?剩余部分如何处理?剩余未出库的部分,是重新生成一个新的出库单,还是原来的出库单(未出库的部分)继续去拣货重新出库?
本文由@koi 原创发布于人人都是产品经理,未经许可,禁止转载
题图来自 Unsplash, 基于 CC0 协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
好难
两个问题问下
1.预处理是根据波次内单据预先占用占用了库存,那什么时间波次生成拣货单?
2.占用库存是按货位分配给哪几个出库单的吗?感觉不这样,手动分配库存没法按照批次货位选择。
作者写的:因为采购退货单的创建,需要输入采购单号,那么退货的采购单价,直接读取采购单的采购单价。这个细节需要注意是因为我知道某个大公司并不是这样做的,以至于埋下了一个大坑。能问下,如果这样做和不这样做,会有什么影响吗?
缺货程度的判断依据为什么还要加“补货数量”,没理解
如“拣货货位可用库存+暂存货位可用库存+补货数量<发货单货品数”
补货单中的库存不会计算到可用库存,如:从暂存区补货到拣货区,那么暂存区的相应货品的可用库存减少。但是补货单完成补货后,拣货区的可用库存就会增加。
作者好,还是不太明白,我拿一个商品举例下,拣货货位A可用库存是5(最大库容20),暂存库存可用数量是10,目前发货单中的商品数量是18,这个时间要生成一个补货单(按货位库存来算的情况下)要补10个;这种情况下的缺货程度是紧急的(我自己认为的)。公式:拣货货位可用库存(5)+暂存货位可用库存(10)+补货数量(10)<发货单货品数(18),按公式来看,又感觉不成立,我公式中的数值是不是填写错了?
不要再陷入公式里面去了。本质上判断补货是否紧急,是根据库存判断的。
暂存货位库用库存+拣货货位可用库存+补货数量<发货单中的货位数量。这种情况就认为仓库中的可用库存不满足当前订单,需要紧急上架或者采购入库。
文章写得很好,各方面都提到了,期待作者大大对于异常情况该怎么处理的文章
很清楚的流程,做好产品就是要尽可能了解产出全流程,慢慢来吧…