库存系统:仓库层、调度层、销售层的库存数据模型设计
大家好,我是汤师爷~
让我们深入探讨库存概念模型设计,这是实现库存管理系统的基础,也是确保库存数据准确性和一致性的关键。
库存的数据模型设计
如图所示,展示了库存概念模型设计。通过合理的概念模型设计,我们可以更好地支持库存管理的各项业务需求。
仓库层
仓库层是实际存放和管理商品库存的层次,执行具体的仓储作业任务。它包括企业自营仓库、第三方物流仓库、线下门店的库存。
通常,仓库层通过仓库管理系统(WMS)、门店POS系统或ERP系统管理仓库库存的进销存,所有的库存变动均通过出入库单据完成。
仓库层的核心概念模型为仓库库存,由一系列核心属性描述:
- 货主:货物所有权的拥有者,用于区分多货主环境下的库存归属。
- 仓库/门店:存储货物的逻辑单元,与物理仓库不同,一个物理仓库可能包含多个逻辑仓库单元。
- SKU:库存管理的最小单位,标识具体的商品及其规格。
- 批号:用于区分每一批投料生产的产品,便于质量追溯。例如,在医药行业中,批号能用于快速定位并召回特定批次的产品。
- 生产日期:标记成品生产的日期和时间,常用于管理保质期商品的库存。
- 库存状态:描述库存在不同业务场景下的状态,例如:
- 可用:可立即销售的库存。
- 冻结:因质检或特殊业务需要,暂不可用的库存。
- 在途:已从仓库发货,但尚未到达目的地的库存。
- 不良品/废品:因质量问题,暂不具备使用价值的库存。
- 库位:指仓库中实际存放商品的具体位置,是库存管理的最小粒度。
调度层
在库存管理体系中,调度层是连接仓库层与业务层的关键桥梁,负责汇总各仓库和门店的库存状态,以支持全局库存的统一调配。
通过将调度层与仓库层分离,企业能够简化对库存细节的管理(如批号、库位等),专注于全局库存的汇总与调配。
这种解耦的设计提高了库存管理的灵活性和效率,特别适合全渠道业务场景中的动态库存分配。调度层的核心概念模型为实物库存,核心属性包括:
- 仓库/门店:库存所在的逻辑单元。
- SKU:具体商品及其规格。
- 库存状态:包括可用、不可用、在途等状态,描述库存在不同业务场景下的状态。
- 在途库存:指供应商已发货但尚未到库的库存。在一些场景中,为了避免缺货,企业可能将这部分库存计入可用实物库存中。例如,在促销期间,将部分在途库存提前上架商城销售,确保用户下单时有足够库存。
- 账面实物库存:门店/仓库中实际存放的库存,只要是未出库的都算在账面库存中。
- 不可用实物库存:指因质量检测、冻结或其他原因暂时不可销售的库存。例如,某批次商品因质检未通过,被标记为不可用库存。
- 预占实物库存:订单提交并分仓成功后,对应仓库的库存会被预占,防止其他订单重复占用。订单取消或发货后,库存状态会相应调整。
- 可用实物库存:可用实物库存是账面实物库存减去预占实物库存、不可用实物库存的剩余部分。可用实物库存 = 账面实物库存 - 预占实物库存 - 不可用实物库存。
销售层
销售层是三层库存架构中的核心环节,负责管理各个销售渠道的库存分配与同步。通过精确的库存计算和灵活的分配策略,为销售渠道提供实时、可靠的库存服务,防止超卖,保障库存利用最大化。
1、销售库存的核心属性
销售层的核心概念模型为销售库存,包含以下核心属性:
- 销售渠道:包括自营商城、门店线下渠道,以及第三方平台(如天猫、京东、美团、饿了么)等。
- 销售店铺:指销售的具体店铺或门店。
- 发货方式:库存支持的履约方式,如快递、同城配送、自提等。
- 配送区域:因仓库覆盖范围不同,SKU支持的配送区域也有所限制。
- 销售可用库存:按照仓库/门店的供货关系和渠道分配策略,计算出汇总的可销售库存数量。订单支付成功后,会扣减销售可用库存。
- 预售库存:在商品未到货时开启预售模式,提前售卖的库存。实物库存与预售库存是隔离开的,当实物到货后,预售库存统一转化为实物库存进行履约。
- 预占库存:订单已提交但未支付之前,为给顾客预留商品,会先预占商品库存,待支付以后再删除预占库存,扣减可用库存。若长时间未支付,则会取消订单,释放预占库存。
- 活动库存:针对某些SKU做促销活动时,例如特价、秒杀活动,需要设置活动库存,可以从正常库存中预留部分库存,活动开始后释放预留库存。
- 可售库存:可售库存 = 预售库存 + 销售可用库存 - 预占库存 - 活动库存
2、活动库存
在促销活动中,如何高效管理活动库存,避免库存超卖或分配不足?活动库存的处理是促销活动能否顺利进行的关键。以下是2种常见的处理方式:
1)共享库存
共享库存指活动库存与普通商品库存共用,无论通过活动售出还是普通售出,均从同一个库存池中扣减。这种方式通常用于满减、满赠、满折等促销活动。
- 优点:库存管理简单,适用于无需精确分配活动库存的场景。
- 缺点:在普通商品销量过高时,可能影响活动商品的库存供给。
2)独占库存
独占库存指活动库存与普通商品库存隔离。活动开始前,普通库存会转移一部分到活动库存。活动结束后,未售完的活动库存会返还普通库存。这种方式常用于秒杀、特价活动。
- 优点:精确控制活动库存,避免活动库存不足的情况出现。
- 缺点:管理较复杂,活动前需转换库存,结束后需归还库存,需要额外逻辑支持。
库存管理场景示例
本节将介绍几个典型的库存管理场景。这些场景涵盖了多仓供货、单仓给多店供货、门店全渠道共享以及组合商品等常见业务模式。通过这些具体案例,可以更好地理解库存模型的实际应用。
多仓供货场景
多仓供货指将多个实体仓库或门店的库存整合,统一供应线上渠道。这种模式通过整合库存、就近发货,提升配送效率、降低成本。
在本案例中,门店A和门店B被设置为天猫旗舰店的供货来源。门店A拥有100件iPhone 14库存,而门店B则持有50件iPhone 14库存。通过库存整合,两家门店的库存被汇总为线上可售库存,总量为150件。
天猫旗舰店仅支持快递配送,系统设置了快递发货的最大分配比例为80%。
根据这一规则,天猫渠道的最终库存为:150件 × 80% = 120件。剩余30件库存被保留在门店,可以用于线下销售或其他特殊场景。
单仓给多店供货场景
单仓给多店供货场景是指一个仓库为多个销售渠道提供库存支持。
商家在电商平台运营中,以一个中央电商仓作为核心仓储与配送中心,为多个线上店铺提供库存支持。
以电商仓储备的100件iPhone 14为例,可采用按比例分配策略:假设京东渠道销量较好,分配60%库存;天猫渠道分配40%,各自独立扣减。
这种策略的主要缺点是可能造成库存浪费。由于难以精准预测各渠道的销量,往往会出现某些渠道库存过剩而其他渠道库存不足的情况,导致错失销售机会,造成潜在损失。
另一种策略是库存共享,即多个渠道共用同一库存池。例如,100件iPhone 14在各渠道初始库存均显示为100件,当某一渠道售出后,系统自动同步更新所有渠道的库存数量。
但这种方案也存在缺陷:由于多渠道库存同步存在时间延迟,可能导致超卖问题。
为此,可以设置安全库存作为缓冲。例如,实际库存100件时,仅在各渠道上架90件,预留10件作为安全库存。
在单仓给多店供货场景中,商家需要在按比例分配、库存共享两种策略之间寻求平衡。通过引入安全库存机制,既可以提高库存利用率,又能有效防范同步延迟带来的超卖风险。
门店全渠道库存共享场景
在新零售模式下,如何实现线上线下渠道的深度融合,最大化门店库存的利用率?门店全渠道库存共享模式,通过整合线上线下的库存资源,为企业提供了一盘货的解决方案。
受益于微信生态和小程序电商的高速发展,越来越多的门店开始打造线上小程序。小程序可以理解为门店的“线上货架”,通过小程序将门店商品展示给消费者。消费者无需到店即可浏览、下单,门店导购也可以通过小程序向会员推荐商品,实现高效转化。
门店A持有 100 份草莓蛋糕,通过全渠道库存共享模式,将库存整合为“一盘货”,同时在美团外卖、小程序、门店线下渠道进行售卖。
组合商品的库存处理场景
在新零售业务中,组合商品是通过将多个单品捆绑为套餐形式销售的一种方式,例如下午茶套餐、七夕美妆组合等。
这种商品形式能够提升消费者的购买意愿,但也对库存管理提出了更高要求。
组合商品的库存管理主要在调度层完成,调度层根据子商品的库存数量和组合比例,计算组合商品的虚拟库存。例如,商品A库存为150件,商品B库存为200件,组合关系为 1 件商品A + 2 件商品B。组合商品C的虚拟库存计算为:MIN(150 / 1, 200 / 2) = 100 件。
当消费者下单购买组合商品C时,系统会根据组合商品的标识,锁定1件商品A和2件商品B的库存,防止其他订单重复使用。订单支付完成后,正式扣减子商品A和B的库存数量。
本文已收录于,我的技术网站:tangshiye.cn 里面有,算法Leetcode详解,面试八股文、BAT面试真题、简历模版、架构设计,等经验分享。
本文来自博客园,作者:架构师汤师爷,转载请注明原文链接:https://www.cnblogs.com/tangshiye/p/18572565