库存扣减 redis db一致性_数据

     库存,是仓库中实际储存的货物。可以分两类:一类是生产库存,即直接消耗物资的基层企业、事业的库存物资,它是为了保证企业、事业单位所消耗的物资能够不间断地供应而储存的;一类是流通库存,即生产企业的原材料或成品库存,生产主管部门的库存和各级物资主管部门的库存。

    在电子商务里面,除了像携程、艺龙等旅游酒店服务提供商意外,基本上各个电子商务公司都面临者库存系统管理。

Part one

一、库存管理的重要性

    1、库存过少带来的风险

    ● 可能产生应对紧急订单的困难,造成客户投诉或因此失去市场或客户

    ● 产生供应风险,需启动紧急计划

    ● 因供应风险的产生,可能导致紧急采购,进而引发采购成本的上升

    ● 因可能产生供应紧张,造成因此产生的紧急配送或空运,增加物流成本

    2、库存过大带来的风险

    ●增加仓库面积和库存保管费用,从而提高生产成du本

    ● 占用大量的流动资金,造成资金呆滞

    ● 造成成品和原材料的有形和无形损耗

    ● 造成企业资源的大量闲置,影响其合理配置和优化

    ● 掩盖企业生产、经营全过程的各种矛盾和问题,不利于企业提高管理水平

    3、负库存带来的风险

    ● 增加商品的不明损耗

    ● 产生缺货

    ● 损失商品毛利

Have a blue dream

Part two

二、库存概览

    电商库存体系分为销售层、调度层和仓库层,销售层是为了保证前台商品的正常售卖,库存的管理和仓库密不可分,而仓库又和销售、采购相关,主要有销售订单、采购、仓间调拨、盘盈盘亏、预售、售后退货等因素。



库存扣减 redis db一致性_优先级_02

    库存的变动分为自上而下和自下而上两种,每一层库存数量的变化可总结为增加、锁定、解除、扣押、返还、异常处理等。数据的变动都需要相关单据依据,例如销售订单、发货单、采购入库单等。



库存扣减 redis db一致性_优先级_03

    ● 增加:自有库存通过采购入库,协同仓库通过代销采购协议入库

    ● 锁定:下单之后锁定库存

    ● 解锁:订单取消之后释放解锁库存

    ● 减扣:订单支付成功之后扣减库存,扣减锁定库存

    ● 返还:退货换货返还库存,相当于增加库存

    ● 异常处理:库存数据在定期校验时,如果出现异常数据,就需要进行异常处理

Part three

三、库存分层

    库存管理体系分层为销售层、调度层、仓库层,主要是各层的职能不同,驱动库存发生变化的单据也不一样。



库存扣减 redis db一致性_历史数据_04

    1、销售层

    销售层主要面对前端用户,一般情况下,前端库存要和实物库存保持一致,即不能超卖。但是做预售时,就是虚拟库存,下单时涉及到的库存动作只在销售层,待到备货之后,再推送至调度层。销售层的库存决定是否可售卖,下单是否能成功。

    ● 可销售库存:网站前台显示的库存,可以对外售卖的库存。当“可销售库存>0”时,前台网站则会显示商品可销售;而“可销售库=0”时,前台网站则会显示商品缺货
    ● 锁定库存:用户下单锁定库存,支付后扣减库存。锁定库存指的下单时占用库存,保证客户下单后支付的订单都是有货可发,而不会相互冲突
    ● 已销售库存:统计商品已售数量。当支付成功,商品就算作已销售库存。如果取消订单或售后就需要走相应的库存变动流程变动

    2、调度层

    调度层相当于订单的分配中心,将订单转化为发货单,按照调度规则决定由哪个仓库发货。调度层的库存分为单仓、区域、总库存三个维度,区域库存指的是这些仓库只发某一区域的。
    ● 账面库存:仓库中的实物库存,只要是未出库的都算在账面库存中
    ● 可用库存:仓库中可供发货的库存。这部分库存是可供调度的库存
    ● 在途库存:下了采购单但是尚未入库的库存,在途库存理论上部分是可供销售的,例如T+1的在途库存,就是1日之后就可以入库的sku

    3、仓库层

    仓库层的库存对应的是实物库存,出库入库盘点都会引起仓库库存的变动。
    ● 可用库存:发货单推至仓库后,仓库可以用于发货的库存,不包括锁定的库存
    ● 锁定库存:发货单推送至仓库后锁定库存,锁定时同时去锁定库位库存
    ● 已出库库存:已经确认出库的实物库存
    ● 不可用库存:盘点时发现的不良品,需要报损,从可用库存转化为不可用库存

Part four

四、库存调度逻辑

    1、影响库存调度的因素

    物流时效——为了迅速响应用户需求,很多企业在多地建立仓库,以便能够从最近的区域发货,在最短的时间内送到用户手中。

    仓库等级——有些企业在业务量较大时,会在同一区域内除了建立中心仓,还会建立多个区域仓。这些区域仓库存量较小,存放一些消费频次高的SKU,只供应当地城市。

    业务需求——在业务发展时,会有部分货源从供应商处直接发出,或者为了保证物流时效,在某些区域由供应商直发,这种仓库定义为供应商协同仓。再对这些SKU库存进行调度时,就需要在调度层直接把仓库下发给供应商订单系统。



库存扣减 redis db一致性_历史数据_05

    2、库存调度的逻辑

    同一仓库不同级别区域不能重复,设置某一级别区域范围时,其他区域级别设置过的区域选项置不可选。

    库存调度示例逻辑:

    ● 在下单时,先筛选出对应订单有库存的仓库

    ● 将收货地址与这些仓库的一级配送区域匹配,若没有再去匹配二级区域,依次类推

    ● 筛选出同级区域的仓库,再根据仓库的优先级进行筛选

    ●若仍有多个仓库待选,根据同级仓库之间的优先级来进行选择,最后选择仓库

    ● 选择好仓库之后,再根据SKU优先级、运费(体积、重量)等因素来选择物流公司

    ● 当订单中有多SKU时,还会根据库存调度规则进行拆单

Part five

五、库存控制的策略

    库存控制有五个方面的因素必须要考虑,即数量、时间、频率、范围以及可预测性

    1、数量是可以用精确的数字来表达,也可以为一个范围或一个概率,例如判断某种商品95%的需求位于80到120件之间。

    2、时间是指预测的时间跨度。预测按时间的不同可划分为:短期预测、中期预测和长期预测三种

    ●短期预测:短期预测的方法般包括筲单平均、加权平均和指数拟合等。短期预测时间跨度最多为1年,而通常不少于3个月

    ●中期预测:中期预测的方法包括曲线和指数平滑、基数序列等。中期预测的时间跨度为2年左右

    ●长期预测:长期预测的方法般包括简单回归等。长期预测的时间跨度通常为2年及2年以上

    3、频率是特定时间内满足需求的次数(一次或几次)

    4、范围是指需求数量的变化范围

    5、可预测性:需求或消耗可能会与历史数据相同也可能与历史数据有联系也可能与历史数据毫无关系。考察历史消耗量与补充库存数据可以揭示未来的形式及趋势。



库存扣减 redis db一致性_库存扣减 redis db一致性_06

  总结

    在实际的设计中,库存系统产品设计所涉及到的东西远比所分享的多,而且与产品的实际业务相关度更高,不同的业务,设计出来的库存系统会有很大的差别。