![]()
做仓储系统的产品经理,栽跟头最多的地方往往不是什么高大上的功能,反而是货位设计这种看似基础的环节。
我当初就踩过不少坑,这些坑在系统上线初期压根看不出来,等业务跑起来用户用得频繁了,各种问题才跟雨后春笋似的冒出来。
![]()
填坑的过程那叫一个漫长又磨人,今天就把这些经验教训掰开揉碎了跟大家聊聊。
先得把两个基础概念掰扯清楚,货位就是仓库里最小的存货单位,比如A-01-01这个编号,对应的就是一个具体的货架格子。
![]()
SKU呢,就是最小的库存单元,像iphone16256g蓝色这种,能精准定位到一款商品。
这俩玩意儿的关系一共分四种,一货一位、一货多位、多货一位、多货多位。
我之前负责的系统,一开始只支持一货一位和多货一位两种模式。
![]()
本来用着也挺顺手,谁知道业务发展得越来越快,用户的囤货量直接翻倍。
一款商品的货量太大,一个货位根本放不下,这时候一货多位的需求就逼着我们必须去解决了。
这种需求不是凭空冒出来的,是实实在在的业务痛点催生的。
![]()
面对一货多位的需求,业内其实有两种成熟的解决方案,全场通拣和存拣分离。
本来想直接照搬全场通拣的方案,毕竟听起来操作简单,不用划分什么区域。
![]()
但后来发现,我们的用户大多是中小型卖家,他们的仓库普遍都会划分存货区和拣货区。
如此看来,存拣分离才是更贴合用户实际情况的选择。
存拣分离的核心就是拣货区域实行一货一位,方便订单拣选,存货区域实行一货多位,用来堆放大量库存。
![]()
这个方案确定下来之后,接下来就是对系统进行大刀阔斧的改造了。
这些改造不是拍脑袋决定的,每一步都对应着实际的业务需求。
![]()
要实现存拣分离,首先要调整的就是库存维度,原来的库存维度只到SKU层面,现在必须升级到SKU+货位的维度。
这么做的目的很明确,就是为了精准统计每个货位上的具体库存。
![]()
然后是区域和货位的关联关系,系统里得明确区分拣货区域和存货区域,货位必须绑定对应的区域属性。
订单预占库存的逻辑也得改,不是所有货位的库存都能被预占,只有拣货区域的货位才行。
我们把预占逻辑改成了二段式,确保订单扣减的都是能直接拣选的库存。
![]()
出入库单据的操作也变了,原来只需要选SKU,现在必须选SKU+货位,这样系统才能准确知道库存变动发生在哪个具体位置。
还有个新增的业务就是补货,拣货区库存不够了,就得从存货区调货过来。
一开始设计的补货逻辑很简单,只能存在一笔作业中的单据,后来发现这个设计太死板,很多场景都覆盖不了。
![]()
本来以为把这些改动做完就万事大吉了,没想到真正的坑还在后面。
第一个坑就是库区抽象概念不足。
![]()
我们一开始只抽象了拣货区和存货区两个概念,后来才发现,仓库的架构应该是仓库>库区>货位三层。
库区应该作为基础资料让用户自定义,比如退货区、待检区这些都得包含进去。
第二个坑是货位类型抽象不足。
![]()
我们一开始用区域来定义货位类型,结果发现根本行不通,很显然,货位类型应该是一个独立的属性,不能跟区域绑定死。
第三个坑是库存最小维度拓展性不足,我们把库存维度升级到SKU+货位就停手了,没考虑到批次管理的需求。
![]()
后来有用户提出混批存放的需求,我们才意识到,库存的最小维度应该是SKU+货位+批次,前期没预留好拓展空间,后期改造起来成本直接翻倍。
第四个坑是补货场景考虑不完善,只能存在一笔作业单据的限制,让用户的补货效率大打折扣。
![]()
后来我们把补货分成了日常补货和缺货补货两种类型,还支持按SKU种类、数量、重量等设置补货策略,允许多笔单据同时作业,这才解决了问题。
第五个坑是存货位不支持预占库存,有些用户有大批量订单出库的需求,比如爆款商品或者批发单。
![]()
如果只能从拣货位出库,就得频繁补货,效率特别低。
我们后来优化了预占策略,订单SKU数量超过一定阈值,就优先预占存货位的库存,这样就大大减少了补货的频次。
![]()
这些坑踩下来,我最大的感悟就是,做仓储系统的产品设计,前瞻性真的太重要了。
做产品经理,最怕的就是只顾眼前不顾长远,这些经验教训,希望能给同行们提个醒。
后续我还会分享POD行业的业务场景设计,大家有什么想看的内容,也可以在评论区留言。
![]()
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.