写给供应链产品经理:库存管理与系统设计

2019-07-30 12:26:14 浏览数 (2)

01

概念与价值

库存是供应链之魂。

在过去,各地库房分散管理,互不透明,总部无法集中把控和调度,导致库存分布不平均,库存成本积压严重。

这种分散和缺乏时效性的管理机制,必然带来不能按时履约,或者超卖缺货等致命性问题,已经无法满足当下新零售模式的体验需求,就没有办法给企业赋能,无法给客户带来极致购物体验,传统单一的库存处理方式很明显无法满足需求。

1、多个销售平台和渠道同时销售,库存共享;

2、多个仓库和门店同时为销售平台提供货源;门店有自营方式,还有合作代发货方式。

3、仓库只做大批量进出,只支持配送,不支持自提业务;有些门店只做自提,不做配送;有些门店自提和配送同时支持。

4、有些地区的门店配送若在闪送范围内,可以支持闪送(例如用美团、饿了么、京东到家配送),不支持闪送的,走常规物流配送。

5、门店商品要同时支持线上销售和线下售卖,库存共享。

6、某些商品因涉及商业串货,只允许在部分地区销售。

根据上述关于“库存”的描述中,我们可以清晰的把库存进行分类:

1、实物库存

指实实在在的商品数量,与库房和门店的实物对应,是财务进行库存成本核算的依据。根据业务不同,实物库存可分为门店库存、仓库库存、合格品库存、不合格品库存等等。

2、销售库存

应对销售的库存,此库存可以和实物一致,也可以是人为设置的虚拟库存,根据业务灵活调整。根据运营策略的不同,可以细分出实物库存、预售库存(虚拟库存)、组合库存、赠品库存、活动库存等等。

▲实物库存与销售库存

实物库存(实际库存)数量一般都会超过前端的可销售库存,对业务层而言,他们关注的是可销售库存,今天有那些商品可以售卖,而运营层则关注的是整个平台下商品动向。

我们考虑一种场景,当某些商品需要考虑串货、某些仓库/门店需要单独或者同时支持自提和配送业务,且需要线上线下同步售卖的场景模式下,单仓管理和传统ERP库存模型均不能有效支撑业务发展,必须有一个集中管理的机制库存进行全局灵活调度。

通常的解决思路都是将所有门店和仓库的库存均集中到中央库存中,再根据比例为各销售平台分配库存,将销售库存同步至销售平台。换言之,中央库存的意思就是将各地的仓库、门店库存进行集中监控和管理,集中调度的库存系统。

如此一来,在整个电商体系里,库存就被分为仓库库存、中央库存和销售平台库存的三层体系结构。

▲库存系统架构

1、销售平台库存

直接对用户开放的库存,设计上一般放在销售平台的运营后台管理,只有当可销售库存大于0时,用户方可下单,否则提示商品无货,上面提及的销售库存业务规则均在这一层进行处理。

2、仓库.门店库存

每个仓库/门店仅管理自己的实物,处理日常的进销存退等业务。业务通常在仓储管理系统(WMS)或门店零售系统中进行管理。

3、中央库存

作为一个独立的系统,中央库存实现对实物库存的集中管理和调度中心。

对下对接各地库房和门店的实物库存,集中管理,并将全国各地库存进行分组封装成销售平台需要的库存维度;

对上为销售平台提供实物库存的服务,同时也为外为订单提供分仓调度服务。

▲中央库存设计思路

这种中央统一调度的系统设计思路,相比较传统的ERP库存管理,可以有效规避四方面的问题:

1、各地库存实时同步,总部统一监控统一调度,防止各地库房/门店各自为阵;

2、总部可以根据全国总库存按需采购,而不再只考虑单仓库存,如此可以有效防止有些库房库存过高滞销而另一些库房库存不足缺货;

3、中央库存的搭建可以有效汇总全国库存给销售平台,供用户下单,智能分仓、就近发货;

4、集中的库存管理对于财务核算、审计、数据汇总分析、采销日常作业均能提供更加透明和有利的依据。

02

体系结构

既然是承上启下,中央库存模型分为与库房实物相关的实物库存层,以及和销售平台库存相关的销售库存层。

▲中央库存业务架构

实物库存,顾名思义就是实际的真实库存。

实物库存是各仓库(门店)汇总的所有库存状态的库存总量,但不同于仓库库存的是中央库存的实物库存层无需管理批号和货位,只需要管理每个库存状态下的实物库存总数即可。

这种情况的出现,是因为我们通常在做系统设计时,中央库存的定位是中央库存管实物总库存,库房管理实际批号——其目的是中央库存只对数量负责,不对具体货物负责。如需在中央库存中看到每个库房/门店的批号,可在实物库存层另加一张批号库存表用以记录库房进销存流水变化,但不作为实物库存计算和分仓的主要逻辑处理。

这是一种解耦的设计方式。

在实物库存层,库存管理的维度包括:SKU、仓库/门店、库存状态、实物库存、出库预占库存、锁定库存、在途库存、库存成本价、是否锁定。

仓库/门店:仓库和门店同属于管理库房的载体;

库存状态:合格/不合格/停售/待验(药品里有停售业务,故将停售设计为一种库存状态);

实物库存数量:仓库/门店存放的实际库存按照SKU、库房、库存状态汇总的数量;

出库预占库存:分仓以后,发货之前对库存预占,防止超卖。分为销售出库预占、退供预占等;在系统中出库预占库存明细至少应该包括:SKU、仓库/门店、库存状态、预占类型(销售出库预占、退供预占等)、业务单号、预占数量;

出库已分配数量:需要出库时,先根据出库波次对出库货位进行分配,对库存进行预占,防止其他订单抢占。待拣货下架后,清出库预分配,并扣减实物库存;

入库已分配数量:入库相关业务,商品在上架之前,会先分配上架货位,并对预上架数量在库存中记录,待上架后,清入库预分配,并加实物库存;

补货预分配数量:当从整件货位向零货货位进行补货时,在源货位未下架和目标货位未上架之前,分别记录原货位和目标货位的补货出库已分配数量和入库已分配数量。从业务层面,补货和出入库是两种业务,但系统设计时可和出库已分配和入库已分配合并至一起处理;

锁定库存:某些业务场景下,需要对整条库存明细进行冻结,不允许在线售卖,此时商品尚在库房,如:盘点临时锁定/临期锁定/盘点差异/其它原因;

已锁定的库存明细,不作为可用库存。例如:需要将某门店的A商品临时冻结线上销售,处理方式便是在中央库存中将此条明细的“是否锁定”变更为“是”。

所以,锁定库存明细至少应该包括SKU、仓库/门店、库存状态、锁定类型(盘点临时锁定/临期锁定/盘点差异/其它原因 等)、业务单号、锁定数量;

在途库存:即将入库的库存,含调拨未入库库存、采购未到货库存;待实物上架以后,清除在途库存;在途库存明细包括:SKU、仓库/门店、库存状态、在途类型(采购入库/调拨入库 等)、业务单号、锁定数量;

库存成本价:根据采购、调拨入库、库存状态变化等业务明细计算的成本价,以仓库 库存状态为单位核算;

可用库存数量:出库和补货、移库相关业务中,只能操作可用库存,可用库存是根据实物库存、预占库存和锁定库存计算而来,是分仓和销售库存计算的依据。

可用库存=实物库存-预占库存-锁定库存(注:若库存明细被锁定,则此条明细不用作可用库存计算)

需要注意的是,在新零售模式下,线上订单和线下订单会同时占用门店库存会导致库存冲突。为了防止线上已经预占库存但尚未拣货的订单商品,在门店里被新到店的线下客人拿走,可以将门店库存分为前店和后仓两部分,以货位分隔,前店库存主要应对线下订单,后仓库存应对线上订单,两部分库存可以根据业务随时调整。

库房所有与实物相关的作业,均会在系统中产生作业流水,继而对仓库库存进行预占和实物库存变更计算,列举部分仓库实物库存和已分配数量的部分业务处理逻辑如下:

▲仓库门店库存相关业务库存处理

为方便监控和排查问题,以上库存维度中,出库预占库存、锁定库存、在途库存均需要记录明细,如:某商品A出库预占库存为20,中央库存需另有一张出库预占库存明细表记录此20个库存被哪些业务明细单据所预占。


销售库存,也就是门店可实际销售的库存总数。

销售库存层是将实物库存的合格品库存数量,根据仓库/门店的地理属性、配送属性,以及多个销售平台的库存共享比例进行综合计算后,计算出的按销售店铺维度的可销售实物库存数量,该层的库存数量与销售平台的实物库存保持同步。

销售库存和实物库存的分层之间,最重要的是如何设定匹配业务的分仓策略。

销售库存关注的是当前可销售的商品数量,管理维度包括:SKU、销售店铺、可配送区域、可配送库存、自提门店、可自提库存。

销售店铺:与多渠道多平台的售卖店铺保持一致,每个店铺按照比例分配一定的库存;

可配送区域:由于全国各仓和门店的覆盖的配送区域不一定相同,故每个SKU支持的配送区域不同;例如A门店配送广东省,B门店配送广西省;

可配送库存:分别汇总每个SKU在不同的区域可配送的库存数量,根据实物可用总库存按店铺库存占比分配。例如:SKU A可配送广东省50个;可配送广西省80个;

自提门店:展示SKU可进行自提的门店;

虚拟库存:若某些商品尚未到货,可开启预售模式,提前售卖,故可开启虚拟库存;

预占库存: 订单已提交但未支付之前,为给顾客预留商品,会先预占商品库存,待支付以后再删除预占库存、扣减可销售库存;若长时间未支付,则会取消订单,释放预占库存;

预留库存:若需要提前为某些促销活动预留库存,以免活动开始以后库存不足,可设置预留库存,预留库存尽量不要超过可售卖库存,预留库存在活动开始时候释放;

可自提库存:在允许自提的门店中,该SKU的库存。根据实物总库存按店铺库存占比分配。例如:SKU A 广州天河1店可自提库存100个;广州天河2店可自提库存150个;

可自提库存=每个可自提门店的实物可用库存 * 店铺自提库存分配比例,向下取整

若某门店既支持配送又支持自提,则配送库存和自提库存是重合的,例如广州某门店中SKU A有50个,则说明该门店中A商品既支持配送50个,也支持自提50个,两种业务并存,将50个库存用完为止,这也是库存共享的概念。

可销售库存:当前可售卖的库存,根据公式计算而来:

  • 若未开启虚拟库存,可销售库存 = 实物库存 预占库存 - 预留库存
  • 若开启了虚拟库存,可销售库存与虚拟库存和实物库存有个换算关系,一般平台有三种设定规则:

A.以虚拟库存为主,可销售库存 = 虚拟库存 预占库存 - 预留库存

B.虚拟库存和实物库存取其大者,可销售库存 = max(虚拟库存,实物库存) 预占库存 - 预留库存

C.虚拟库存和实物库存相加,可销售库存 = 虚拟库存 实物库存 预占库存 - 预留库存

组合商品库存:有些业务场景下,会将多个商品组合成一个套装进行售卖,此类组合商品是纯营销玩法的产物,不是实物的组合,故不会存在实物SKU和库存。

此类商品库存取组合商品下库存组合最小的SKU的库存作为组合商品库存。

举例:SKU A【可销售库存:80】、B【可销售库存:70】、C【可销售库存:100】,ABC被组合成套装D。

若D= A B C,则D的可销售库存取B的可销售库存,为70;

若D= 2A B C,因为A可提供组合40个(80/2),B提供70,C提供100,故D的可销售库存取A的组合数,为40。

组合商品因没有实物SKU,故在订单生成后,需按照组合规则将组合商品进行拆分为实物SKU进行库存预占和扣减处理。

活动商品库存: 若需要对某些SKU做活动促销时,一般在活动系统中创建活动(起止日期、活动SKU、活动价格、活动数量、活动规则等)。对于活动商品库存,需要关注的是三个指标:

活动计划总数量,可先从常规库存中预留部分库存,待活动开始时释放预留库存;

已下单数量,一般情况下,若下单数量等于活动总数量了,此活动即终止;

可下单的总数量,计划总数-已下单数即为可下单数量,当可活动下单数量>0,可继续以活动价下单;订单取消后,还原可活动下单数量;

活动订单生成以后,和普通订单的库存处理逻辑一样,提交订单后加预占库存,支付后扣减实物库存或者虚拟库存。

关于活动商品的库存管理,还有另外一种处理方式。

在销售平台库存之外再创建活动库存,并且直接预留库存一直等到活动结束的时候释放。当有活动订单时,在订单下发过程中同时处理销售平台库存和活动库存的锁定和释放,活动结束后再将未销售完的活动库存归还销售平台。

这种设计思路的好处是可以把活动订单当做一种独立的业务来实现,两套库存系统处理不同的业务,活动库存和常规售卖库存完全隔离,但不足在于设计过于复杂,纯业务性质的活动系统挂载了不必要的负担。

所以,还是更为推荐把活动库存统一在销售库存中进行管理,“活动系统”只控制活动计划和可活动下单数量,把业务逻辑和底层库存逻辑进行隔离,在系统上要更为简洁和高效,同时还能集中控制和防止活动超量情况发生。

03

库存同步

中央库存中的实物库存来源于各库房和门店的库存,考虑到有些自营门店(自主研发的系统),有些合作门店(使用他们自己的ERP),通常实物库存同步可以有两种机制:

1、流水加减模式。适用于自营的库房和门店,所有的库存变化均通过业务流水回传中央库存,按照入库加库存,出库减库存的方式变更实物库存。

库存的加减对应着库存成本的变化。

2、 设置库存模式。适用于和外部合作的门店,无法通过流水变更库存时,直接通过商家端或系统对接的方式同步库存,更新实物库存数量。

▲实物库存同步

使用流水加减模式进行实物库存同步时,特别要注意控制多条业务流水对同一条库存记录的处理,避免出现并发而导致加减出错的情况。因此,系统设计的时候,需要有一张很清晰的实物库存流水变更记录表,能够按顺序追查到每一条明细的变化情况:

实物库存流水变更记录表:作业时间、SKU、仓库/门店、库存状态、业务类型、业务单号、变化数量(加库存为正数,减库存为负数)、原库存、结转库存。

中央库存中将销售库存计算完以后,需向销售平台同步,只有同步到销售平台的库存,才是直面用户的。和实物库存的同步机制类似,针对自营平台和三方平台,销售库存统一有两种处理方式:

1、自营电商销售平台,销售平台库存没有必要设计的过于复杂,仅管理虚拟库存、活动库存等,实物库存相关逻辑可直接从中央库存读取,以服务的形式进行系统交互

举例:

例一。商品列表和详情页判断商品是否有库存时,若开启了虚拟库存则读取虚拟库存,若未开启则直接读取中央库存中的销售库存(根据库存比例分配计算的配送库存与自提库存,二者取其大、或者求和);

例二。下订单提交时若选物流配送,可直接根据用户收货地址读取中央库存中当前地址区域下可配送的库存数量是否满足订单;若选择了自提门店,可直接读取中央库存中当前门店下的可自提库存是否满足订单(前提条件是用户地址和门店的自提范围一致)。

2、其它三方平台(例:京东、天猫),销售平台逻辑不为自己所控,也无法支持客户自提,可只同步配送库存。若平台支持分区域库存,可根据平台规则将中央库存中的销售库存按区域分组同步至销售平台,若不支持分区库存,可将可配送库存之和同步至平台。(不过有超卖的风险)

共享库存模式下,无论针对自营平台还是针对三方平台,为了保证库存的尽量准确性,在订单生成以后,均需要尽快到中央库存系统中分仓并进行库存预占,然后根据可用库存重算销售库存并同步。

向销售平台同步库存时,可在系统中针对每个销售平台进行配置同步库存的时间。可考虑下述4种情况整:

A.每当库存变动时同步

任何一个销售平台有订单下发至中央库存导致库存预占,或者库房/门店的可用库存发生变化时,重新根据实物可用库存计算销售库存,并同步至销售平台。

B.定期同步

设定时间间隔,定期计算销售库存并同步,比如每10分钟一次。

C.低于阀值下限时同步

当某一商品在此销售平台的库存比例低于此平台设定的阀值时,触发销售平台库存计算并同步至销售平台。

D.暂停同步

以最后一次同步的数量为准,再次开启同步之前不再同步库存,例如双11前夕暂停对天猫店铺同步。

以上A、B、C、D 4种方式各有优劣,同步频次越高,库存自然越准确,超卖风险降低,但刷新频率过快对系统性能损耗较大;同步频次较低,系统压力会小,但库存同步会不及时,超卖风险增加。

04

库存计算

新零售模式下,每个仓库和门店都有自己的覆盖配送范围,且每个门店的品项数较少,并且履约能力有限,所以门店一般重点发力自提业务,同时自提的覆盖半径也是有限的,多维属性结合到一起,将实物库存从系统层面分开为很多堆,构成了不同维度的销售库存。

▲销售库存计算因素

每个库房/门店可以自由配置支持配送,或者支持自提(可都支持),配送的范围和自提的范围是不同的,故从配送方式来看,配送库存和自提库存是需要分开管理的。例如:某门店有一款商品可以支持配送全国,但仅支持门店周围5公里自提,则全国的用户均能下配送订单,仅门店周围5公里的用户能下自提订单。

从店铺库存分布上,有两种处理思路:共享和独占。

共享库存:各个销售平台店铺共享库存,按照比例进行分配。任一店铺有订单产生,导致实物总可用库存变少,均会导致其它店铺的库存同步减少;

独占库存: 某一个或者多个销售平台店铺按照比例分配的库存属于独占模式,即库存分配以后,仅属于此店铺使用,其它店铺产生订单不能占用独占店铺的库存。

(独占库存模式下销售库存计算方式更为复杂,不在此文中深入展开,感兴趣的朋友可以按照共享库存的思路进行独占库存设计的推演)

计算销售库存之前,先对销售店铺进行库存设置,以共享库存为例,并非每个平台都支持自提(例如天猫、京东均不支持),所以配送库存和自提库存分开设置比较合理。

为了防止超卖,配送库存和自提库存原则上不超过100%比较合适,但根据实际业务需要,可以灵活调整,例如采购能力足够,则各销售店铺可以互抢库存,保证销量最大化,那么每个店铺的库存均可以设置为100%,甚至大于100%。

▲销售库存配置

根据配置,将实物库存重组后再根据配送库存和自提库存进行分堆计算,逻辑为:

①支持相同配送区域的多个仓库门店的库存汇总后,根据配送库存分配比例计算可得到店铺可配送库存:

可配送库存=∑各仓库/门店实物可用库存 * 店铺配送库存分配比例,向下取整

②因为自提订单不适宜分店铺(如果让某一个用户下个订单,需要从多个门店提货,这种体验太差),故自提库存以门店为单位,每个支持自提的门店库存按照自提库存比例计算可得到店铺的可自提库存:

可自提库存=每个可自提门店的实物可用库存 * 店铺自提库存分配比例,向下取整

举例说明:

门店1、门店2、门店3三个门店均有 SKU A商品,配送范围一致,均无预占,共设两个销售店铺(店铺1、店铺2),配置如下:

根据销售库存计算公式分别算得店铺1和店铺2的配送库存和自提库存如下:

05

分仓及库存预占

实物库存层除做实物的管理外,还为订单系统提供分仓服务,为每张订单分配最优的发货库房,库房分配成功后,为了防止此库存再被其它订单所占用,故需要对库存进行预占,预占库存记录到实物库存明细行。

为什么一定要做库存预占,而不是直接扣减库存?

因为中央库存是实时库存的监控和体现,如果没有预占,无法得知当前订单对应的商品当前在库房内,还是已经发货出库房了,也就不能很好的体现商品的实时动向。

▲中央库存分仓及预占逻辑

分仓时,一般可考虑三个因素。当然前提是订单是否有指定门店,如已经指定了仓库/门店的订单,直接进行库存预占,否则需要分仓后再预占库存。

①最少包裹原则(能单仓发货的,尽量不拆包裹;若不能单仓发货,找拆包裹最少的仓库组合);

②距离最近原则(发货库房离收货地址距离最近,若多个库房拆单发货,选择到达用户的总时长;

③成本最优原则(先从采购成本最低的库房发货,再考虑从物流费用最低的库房发货)。

06

成本计算

中央库存的另一个功能,是管理全公司自营库房和门店的存货成本,故在进行实物库存流水加减的时候,需要同步进行库存成本计算。

成本价的计算方法有很多,例如:先进先出法、 后进先出法、加权平均法、移动加权平均法、个别计价法、计划成本法、毛利率法、零售价法等。

重点说明一下常用的先进先出法、加权平均法、移动加权平均法:

1、先进先出法:商品最新发出(领用)以该物料(或该类物料)各批次入库的时间先后决定其存货发出计价基础,越先入库的越先发出。 采用先进先出法时,期末结存存货成本接近现行的市场价值;

2、加权平均法:称全月一次加权平均法,是指以当月全部进货数量加上月初存货数量作为权数,去除当月全部进货成本加上月初存货成本,计算出存货的加权平均单位成本,以此为基础计算当月发出存货的成本和期末存货的成本的一种方法。

  • 加权单价=(月初结存货成本+本月购入存货成本)/(月初结存存货数量+本月购入存货数量)

3、移动加权平均法:指以每次进货的成本加上原有库存存货的成本,除以每次进货数量与原有库存存货的数量之和,据以计算加权平均单位成本,以此为基础计算当月发出存货的成本和期末存货的成本

  • 移动加权平均单价= (本次收入前结存商品金额 本次收入商品金额)/(本次收入前结存商品数量 本次收入商品数量 )

上述三种计算方式中,移动加权平均法可以实时获取最新库存成本。

举例: 某公司 经营某SKU A,采销过程如下:

10日,购入此SKU 100个,单价5元;

13日,购入此SKU 200个,单价6元;

18日,发出此SKU 100个 ;

20日,购入此SKU 700个,单价4元 ;

28日,发出此SKU 500个 ,还剩400个。

提问:分别用先进先出法、加权平均法、移动平均法计算发出存货的成本及期末库存存货的成本。

(1) 先进先出法:

发出存货的成本=100*5 (200*6 300*4)=2900元

说明:28日发出的500个,其中200个的单价为6元,300个的单价为4元;单价为4元的还剩400个,故期末成本取4元

期末库存成本=400*4=1600元

(2) 加权平均法:

加权平均单价=(100*5 200*6 700*4)/(100 200 700)=4.5元

发出存货的成本:(100 500)*4.5=2700元

期末库存成本:400*4.5=1800元

(3) 移动加权平均法:

13日购入后的单位库存成本:(100*5 200*6)/300=5.67元

18日发出存货成本:5.67*100=567元

20日购入后的单位库存成本: (200*5.67 700*4)/ (200 700)= 4.37元

28日发出存货成本:4.37*500=2185元

期末库存成本: 400*4.37=1748元

按照不同仓库和库存状态成本独立计算的原则,采购入库、调拨入库、退货入库、库存状态变化会对库存成本产生影响,其它业务不会导致库存成本变化。

①采购/调拨入库业务成本计算:

新库存成本=(本次入库数量 * 本次入库单价 当前实物库存数量 * 库存成本) / (本次入库数量 当前实物库存数量)

② 退货入库业务成本计算:

新库存成本=(本次退货入库数量 * 原出库单出库时成本单价 当前实物库存数量 * 库存成本) / (本次入库数量 当前实物库存数量)

③库存状态变化业务成本计算:

新库存成本=(原状态变化数量 * 原状态成本单价 新状态实物库存数量 * 新状态库存成本) / (状态变化数量 当前实物库存数量)

07

订单调度

梳理完3层库存模型后,我们可以依照订单流向设计出订单从下单到发货的全流程。

整个库存的处理逻辑如下:

▲订单下发过程中的库存处理

为能更加清晰的讲述三层库存模型的联动,小Q以订单下单流程为例举了一个实例。

①某SKU合格品在全国库房分布情况如下(取自中央库存实物库存):

以上,门店1和仓库1均支持配送全国区域。

②现有A、B两平台店铺配送库存分别为50%、50%,自提库存比例分别为100%、0%,根据中央库存实物库存计算得销售库存如下:

③现有A店铺在线支付的配送类订单下单20个,故A店铺销售平台库存变更逻辑为:

④订单生成后,通过中央库存分仓并预占库存,假设分配从门店1发货,中央库存实物库存变更如下:

因可用库存发生变化,故触发销售库存重算并同步:

此时,因为B店铺帮分摊了10个已销售库存,故A店铺实物库存由80变为90。

⑤订单下发门店1发货,门店1的门店系统中库存变化情况如下:

⑥ 订单发货后回传中央库存,中央库存实物库存变化情况:

因为订单预占时已重算过销售库存并同步,故发货时无需再次处理。

<未完待续>

0 人点赞