拆零库存的解决方案:拆零商品的库存结构和运算逻辑

10 评论 15488 浏览 60 收藏 10 分钟

编辑导语:随着互联网的发展,很多行业都开始使用各种互联网平台进行管理,比如新零售行业,对于零售商品的统计和商品的录入以及库存统计等等,都可以用这种方法来进行;本文作者分享了关于拆零商品的库存结构和运算逻辑,我们一起来看一下。

SKU拆零销售的场景多有发生,尤其是医药电商行业。

主要特点是:采购入WMS时,只登记原商品。但销售层面却拆零下账。

网上没找到拆零销售库存方案的文章,本文做个总结。

如今电商系统(C端、B端)已经很成熟,产品圈子里电商系统产品文章很多。

但多数写到SKU、SPU、拆单、拆包、扣/锁库存、最优物流这些。

实际上电商业务还有很多特殊场景,值得探讨和改善。

想象一个常见的场景:

新冠疫情以来,口罩一直畅销。

到药店,顾客可以买一整包口罩,也可以只买一个。

倘若一包口罩内含10个,药店只剩下1个库存。

服务员撕开包装,卖掉1个,那么:

  • 按整包计,库存是0;
  • 按拆零口罩计,库存还为9。
  • 整包口罩,和拆零口罩,在数据层面,是对应两个不同的商品编码的。
  • 二者分别计算,但同源,相互影响。

那么是不是入库时候,就应该分成两个商品编码,按照两个有关联的商品进行录入,就顺理成章了呢?

功能上可以,但合规上(可能)存在阻力。

01 拆零库存的数据结构

医疗器械和药品的采购,是比较严格的GSP规范的。

从药厂采购口罩的时候,一定是按包的。所以基础资料库中商品编码只会有A,不会有B。

原因是:药厂无法提供单个口罩B对应的首营资料和采购单据。一旦调查,则无法圆说。

因此,只会创建成包的口罩的商品信息,不创建单个口罩商品编码 。

(事实上所有销售范围的商品品种,都应该有进销存对应票据的。)

但是行业又支持拆零销售,避免物资浪费。

2013年6月,新版的《药品经营质量管理规范》中,再次明确药品零售企业在营业场所应设立拆零专柜。

为了解决以上问题,入库系统(wms)为每个商品提供标示拆零属性的字段:拆零库存、拆零系数。

也就是下图的辅助单位、换算率。

这样一来,一个商品编码A,入库的时候,就会对应自身库存和拆零库存。

比如A包含10个口罩,拆零系数为5,则表示拆成5份销售,每份两个。

那么如果A有1个,B就有5个。

这个也就是只在库存上形成了联动,在关系上是从属。

解决了存储结构的问题,那么如何动态换算本商品库存和拆零库存呢?

02 拆零库存的计算

我们还以上面的例子来看,B的库存实际来源于A。

若A中有10个B,拆零系数是10。那每扣减一个A,就要触发扣减10个B的库存;

同样,每扣减一个B,就要触发扣减1/10=0.1个A的库存。

还拿口罩一包10个的例子,假设整包A的库存为2,换算出拆零B的库存就为20。

单个卖掉3个,那么单个口罩的库存就是17。整包库存就是2-0.3=1.7个。

这时对于C端销售平台,只需要向下取整显示1个即可。

库存的计算问题似乎解决了。但是……

如果一包有3个口罩呢?上述公式就会出问题。

若一个A中有3个B,那每扣减一个B,就要触发扣减1/3=0.33个A的库存。

3这个数字除不尽,会导致第三个B出售的时候,A还剩下0.01个。但实际A已经是0。

如果这0.01个累加到100次,就会错误地多出1个A的库存。

这个误差传递给WMS的时候,WMS并不知道如何消除。

而我们又不能依赖WMS的盘点去消除。

于此同时,还存在一个问题,就是如果一包含有1000个,那么小数要支持4位吗?数据表字段属性难以确定位数。

总结以上问题:

  • 存在除不尽,导致计算差异的问题;
  • 拆分的系数导致小数位不确定的问题。

怎么办呢?

解决办法就是当扣B的库存,计算A的时候,不按照减量,而是按照B的存量,反向推算A。

当A卖掉的时候,扣减A的库存,触发按系数算出B的库存;将二者同步到C端。

当B卖掉的时候,扣减B的库存,用B的余量,换算出A的库存;将二者同步到C端。

这就要创建一个仓库余量反推机制:

  • A的库存增加、扣减,则触发B库存的计算;
  • B库存的增加,不触发A的计算;但B库存的扣减触发A的计算。(因为采购的时候只会采购)

03 拆零库存在多系统之间的交互

以上解决了WMS对拆零库存的计算问题。还要解决系统库存数据传输问题。

正常情况下,一个WMS会为多个销售渠道服务。

这些销售渠道会把订单对接给统一的OMS中台,商品和库存统一对接给PDM中台。

于是三方形成一个库存流向四角关系:

在销售平台,是需要展示出B的,但在WMS只存在B与A的关系,不存在具象的商品编码B。

这就意味着,OMS拿到的订单中的商品B,就要连同拆零系数、B的扣减个数,一并提供给WMS。

WMS自行按照上文描述的规则进行扣减运算。

WMS算好后,连同拆零关系和各自的库存一并提供给PDM。

PDM再通过相应的映射,对应到销售平台的A和B。

是不是很麻烦,之所以会这样,实际是源自于如下局限:

  • 采购入口层面:出于采购合规,WMS只能创建一个A商品编码,不能创建拆零编码B;
  • 销售层面:A和B都有销售场景且销售合规。
  • 存在拆零系数的除不尽,导致不能按减量扣减再计算;只能按拆零商品的余量,反向推算出原商品。
  • 这种余量的推算,不能在销售平台完成,只在WMS兜底完成。

04 结语

  • 电商体系的基础方案已经成熟。但随着业务和政策的发展,总会有新的场景出现。
  • 业务决定系统。尽量驱动业务避开复杂的处理方案,系统就会轻松。
  • 边角场景的考虑更需要判断和鉴别。

以上若存在描述不清或错误,欢迎探讨。

#专栏作家#

唧唧歪歪PM,公众号:唧唧歪歪PM(ID:jjyypm),人人都是产品经理专栏作家,2019年年度作者。《后端产品经理宝典》作者,药学硕士转行互联网产品多年;熟悉跨境电商业务,医药领域;擅长大型后台体系,社交APP。

本文原创发布于人人都是产品经理,未经作者许可,禁止转载

题图来自Unsplash,基于CC0协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 学到很多

    来自中国 回复
  2. B库存的增加,不触发A的计算——为什么要这样?如果B发生了退货入库,不加A吗?

    来自广东 回复
    1. 同问

      来自中国 回复
    2. B是零库存吧,与整库存没关系吧

      来自陕西 回复
  3. 请问这个PDM中台是什么?

    来自浙江 回复
  4. 对新零售行业库存管理,有很大的帮助,在传统的电商行业一直没有找到类似的解决方案。我想问一下,就如果是针对果蔬类型的商品,是否也可以用这个拆零的逻辑,例如将一筐苹果跟一盒4个的苹果进行换算呢,那这中间的损耗怎么去把控呢?

    来自广东 回复
  5. 这个通用解决方案是?

    来自浙江 回复
  6. 这个标准WMS有通用解决方案,了解下包规

    回复
    1. 方便学习下你说下通用方案吗(。・∀・)ノ゙嗨

      来自湖南 回复
    2. 加个微信 sky_ismine

      来自湖南 回复