库存设计思路, 库存系统结构设计思路
库存设计 基本概念
新零售自马云和雷军2016年10月提出以来,充满了各种神秘色彩,各家对其的解释也不尽相同,笔者目前在国内某知名互联网公司从事新零售产品工作,接下来笔者将用一系列的文章,来给大家讲述我锁理解和实践的新零售。
笔者认为对新零售最好的解释是:更高效率、更好体验的零售。无论是新零售,还是大零售,还是东哥说的无界零售,其本质还是零售,只是大家从不同的纬度和视角进行了阐释。
零售,最大和最复杂的问题就是库存了,那么笔者优先从库存切入,给大家一一剖析新零售的“人、货、场”。
(1)可销售库存
定义:可用于销售的商品库存。
说明:
- 前端页面不显示具体库存数量,是为了防止竞品通过库存数量来预测商品销量和总库存;
- 当某sku可销售库存>0时,前端显示为有货;
- 当sku可销售库存<=0时,前端显示为无货,可引导用户使用到货提醒;
- 为提高商品转化率,电商可根据商品销量,设置库存预警值X,当库存>X时,提示库存充足;当0<库存<=X时,提示库存紧张,促进销售;当库存<=0时,提示无货,引导用户设置到货提醒。
(2)订单占用库存
原因:下单支付与仓库发货是异步进行,对于已下单支付的用户,要保障有货可发,对于尚未下单支付的用户,要保障其下单后有商品可卖,防止超卖,所以设计订单占用库存。
常用防止恶意攻击或意外情况导致订单占用库存异常锁定的方法:
- 若用户下单后未进行支付,进入到待支付环节,同时进行时间限制(半小时或者1小时),过时后释放订单占用库存,增加相应的可销售库存;
- 对每个用户单次购买的数量进行限制(比如每个用户最多购买5件),当用户下单后未支付且再次进行下单时,提示其有相应的未支付订单;
- 通过技术手段对设备ID及IP地址检测,防止其通过多个设备及IP地址进行破坏性下单。
(3)不可销售库存
定义:当商品出现破损等不符合销售标准的情况下归属到不可销售库存。
设立目的:
- 提高库存管理效率,方便对有问题的商品向上游供应商进行协商赔付;
- 对用户负责,防止将有问题的商品销售给用户,以防止信任危机和物流成本的增加。
标识方法:
- 使用不同的SKU编码,例如某正常商品的SKU编码为12345,其对应的不可销售库存的SKU编码为12345U;
- 使用同一编码,但须专门开辟一块不可销售区域来集中管理。
(4)锁定库存
场景:折扣促销、买赠等。
设立的产品诉求:
- 并不想让某种全部以促销的方式卖出,只卖其中一部分防止亏损;
- 防止竞争对手的恶意采购,挖空库存;
- 仅仅通过以低成本的方式促销,以此来吸引流量,通过其他商品来获利(类似淘宝的爆款)。
(5)调配占用库存
定义:因仓与仓之间的调拨需求而占用的实物库存;
(6)调配中库存
定义:处于在途状态的调拨占用库存商品的状态。
(7)虚库存
定义:仓库中没有实物库存,实物库存来源于供应商。
设立原因:
- 仓库能力有限,在供应商供货能力可控的情况下,可设置虚拟库存,待有订单后再向供应商采购下单;
- 某商品需求极少时,无需采购入库,待有订单时再采购。
(8)几者之间的关系:总库存=可销售库存+订单占用库存+不可销售库存+锁定库存+调配占用库存-调配中库存-虚库存。
库存设计 影响库存的因素
库存的问题主要有两个:库存准确性及库存同步数量,库存不准确或同步不及时或同步策略有问题,将会导致库存积压或销售超卖,从而影响收益或成本,本期主要讲影响库存准确性的因素。
库存,是放在仓库/门店等某个物理空间的实体/虚拟商品的数量,由于是针对新零售行业,所以本文主要讲的是实物库存。
一、影响因素:人
由于商品的存放、盘点、搬运等需要人来处理,所以人的因素将会影响库存的准确性,具体有如下几个方面:
1. 组织架构
- 人员配置
如果仓库较小,业务量小,人员配置可能比较简单,库管、采购等即可满足需求,如果仓库较大,业务单量也较多,比如沃尔玛等,这样的规模,就应该配置齐全,比如采购、配送、库管、监管、盘点、拣货人员等等,如果配置不合理,导致仓库作业效率低下,无法满足线上订单的履约,降低客户体验。
- 岗位职责
人一旦多了,就需要给每个人设置明确而清晰的职责。对于一个仓库,应该设置一个主要负责的人,由此人进行全权决定某些事项,不能权力分散,否则相互之间扯皮,互相推诿是常见的事。
比如一个仓库设置了两个经理,但两个经理又分管不同的区域,但我们知道,一个仓库内作业经常要关联很多区域,如果这时候双方因利益关系僵持不下,将导致作业效率低下,所以必须设置一个主要的负责人,由此人进行全权负责。
2. 公司制度
- 赏罚不明
对于库存相关人员的赏罚不明,相关人员对库存准确性认知不够,也会影响库存的准确性。比如采购无视仓库库存周转效率,门店销售情况,根据与供应商的关系,采购大批量货物防止仓库,将直接导致库存成本直线上线,所以对于库存准确性的相关人员必须进行严格的赏罚措施,明确成公司制度来管理。
- 管理目标不清晰
如果整个公司都不把库存作为重点工作,而只是放在了销售毛利上,也不会让自己的整体收益下降,虽然开源了,但没有节流,所以公司应该将库存指标作为公司管理的目标,分配给不同的管理人员。
3. 操作流程
- 单人操作
库存是系统进行同步的,如果操作人员对库存的操作不及时,也会导致库存不准确。比如拣货上架,实际已经将货物从托盘防止到货架上,但并未使用PDA等设备进行库位库存的更新,而是完成所有业务操作再进行更新,此时在系统中的库存就未体现出来,而如果恰巧此时有订单需求,将导致下单提示无货的异常。
- 多人操作
仓库内的作业有时候是需要多人操作的,比如A拣货发现有异常商品,通知B来进行查看,而B对此的反应不及时或遗忘,则会导致A拣货任务的继续完成。
二、影响因素:货
不同的货品(商品)具有不同的属性,不同属性之间可能相互影响,比如具有挥发性、刺激性气味的商品需要跟容易吸附气味的商品进行隔离开,属性相似的货品,需要进行分开存放,否则盘点、理货会增加难度和错误率较高。
1. 相似性
属性相似的货品,在入库、上架、盘点、分拣、理货等环节均可能会发生弄错情况,比如商品A和商品B在形状、颜色、大小、规则等很相似,但实际是不同的商品,如果操作不得当,将导致库存不准。
2. 复杂度
某些标品,涉及到不同部件的组合,这时候需要将成品的各个部件归拢防止,或部件专门放置,否则容易出现发货缺部件的情况。
3. 过于微小
有些商品本身的规格就很小,比如回形针、口红等,这些商品在放置和盘点的时候一定要仔细,否则错盘、漏盘、少发货、多发货都将导致库存不准确。
三、影响因素:场
场,也就是仓库,仓库的设计是否合理也影响到库存的准确性。
1. 仓库
比如一个仓库分多个区、每个区放置不同供应商的不同品类的商品,不同区之间的通道设计如果不合理,在仓库内作业的时候,可能导致货物错放、货物错发等。
2. 库位
一个库位是放置一种商品,一个批次的商品,一个供应商的商品,还是可以混放,具体的混纺类型是什么,如果系统处理不得当,都将影响库存的准确性。
库存设计 库存交易逻辑
一、库存相关的系统交互
在介绍库存的交易逻辑之前,先整体讲下与库存相关系统的数据交互:
与库存相关的模块很多,现逐一简介:
1. 采购系统
采购系统主要是采购人员用于采购进货之用,一般流程为采购人员发起采购申请,财务人员审核通过后会生成有效的采购订单,供应商根据采购订单发货,待货物到达仓库后,由仓库人员验货、收货、入库。
2. WMS
WMS(Warehouse Management System)仓库管理系统,主要用于入库、出库的业务操作,与库存中心不一样的是,WMS更多是业务操作,相当于一个后台,供仓库人员使用,而库存中心是一个中台服务,关注库存数量和变动流水。
3. 财务系统
顾名思义,财务系统是供财务人员使用,主要有单据审核、财务报表、账本核算、应收应付账款等等,对于仓库的盘点作业,产生了盘盈盘亏,需要增加、扣减相应的库存数量。
4. PDA手持设备
PDA手持设备主要用于仓库人员进行拣货下架、收货上架之用,当收到拣货/上架任务后,根据调度中心的路线指引,使用PDA做相应的业务操作,拣货下架、上架之后,库位库存的数据会发生变动。
5. 调度中心
调度中心其实就是中台服务,主要负责一些调度任务的执行,比如拣货路径、上架路径等等。
二、库存交易
1. 采购入库
通过采购系统发起的采购单,到货之后,在WMS操作入库,需增加库存,一般采购会有批次控制,所以会增加批次库存及仓库总库存。
2. 提交订单
电商前台一般不会显示具体的库存数据(防止暴露数据给竞争对手),用户在电商平台从商品页面提交订单之后,为保障用户支付之后有货可发,这时候会预占库存,也就是锁定库存,如果不锁定库存,将导致用户支付后高并发的扣减库存,可能导致用户因库存不足而支付失败,从而影响用户体验,一般电商提交订单锁定时长为30分钟,超过30分钟,系统自动释放库存。
3. 取消订单
用户提交订单之后,因各种原因导致不想购买,选择取消订单,这时候系统需将锁定的库存进行释放,让别的订单可以进行占用。
4. 拣货过机
仓库人员使用PDA设备,将货物拣到拣货车,交给配送人员之后,相当于商品从仓库出库,需扣减库存。
5. 报损
仓库人员的定期/不定期盘点,如果发现有商品损坏或超过保质期,需使用PDA设备进行报损处理,对于报损的商品需扣减相应的可用库存数量,从而增加报损商品库存数量,方便仓库人员/财务人员/负责人进行查询。
三、系统处理逻辑
1. 库存流水
每一笔库存的变动,都需要记录详细的变动流水,而库存流水的特别需要注意以下几点:
- 单据号及来源:引起库存变动的单据号及其来源,比如引起沃尔玛北京仓库存变动的单据号是W20181108234w,单据来源是淘宝商城;
- 业务类型:标记该变动的业务类型,比如外卖销售、门店自提等等;
- 变动的方向:是增加库存、扣减库存、锁定库存还是释放库存;
- 变动的数量:当次单据号引起了多少数量库存的变动
- 流水时间:库存流水变动的时间;
- 变动商品信息:商品ID、SKU、所属货主、所在仓库、所在库位等等
2. 库存同步
库存的变动,建议优先记录流水,这样当高并发发生时,可以后台采用MQ消息列队来消费流水记录,进行相应数据的变更,同时,需要库存数据的多个平台的库存数据需要实时同步,否则会导致因库存同步不及时,发生超卖缺货的问题。
库存设计 库存的底层设计思路
一、仓的设计
O2O模式下,库存跟仓是最直接的关系,无论该仓是前置仓,还是门店后置仓库,还是专门的仓储仓库。
在物理层级可以通过买卖、租赁、借用等方式使用仓储,但在系统层级需要知晓有仓的存在,方便存储货物。
1. 新建
通过WMS或库存管理系统,新建一个仓库,在系统层级标识该仓库的实际存在,在新建仓库时以下字段必不可少:
- 仓库名称:仓库的名称,当一个公司有多个仓时,方便查询和管理,比如:京东到家北京中心仓。
- 仓库类型:仓库的类型,标识该仓是一个什么类型的仓,比如总仓、中心仓、海外免税仓等。
- 仓库所属:仓库的所有权,标识该仓是属于哪个公司的,方便仓储成本计费结算对账之用。
- 仓库的位置:仓库的实际所在位置,比如北京市朝阳区XXX路YY号等。
- 仓库的规格:表示该仓的大小,比如面积、宽、高、长等等,在设计仓库内货架的高度时作为参考。
2. 管理
对系统仓的管理主要分为三类,一类是查询,一类是修改,一类关联:
查询:
主要使用新建时的字段进行查询,一般情况下一个公司的仓不会太多,特别是O2O这种业务模式,电商模式下,像京东这种自营自建仓库的公司拥有很多仓,需要使用各种条件进行筛选,其余基本就那么几个,单页就能展示完全。
修改:
修改主要是修改仓库的属性,比如所属公司(因归属发生变更)、所在位置(仓库搬迁)、仓库规格(扩仓)等等。
关联:
关联的意思指的是仓库内关联的库区、货架、通道、监控、制冷通风设备等等数据,将这些数据与仓库关联,方便的是将来业务需要,进行系统调用的时候,直接通过关联即可找到对应的设备,从而控制设备。
比如自动化拣货的场景,系统接到O2O订单后,根据订单包含的商品,快速定位商品所在位置,然后通过自动化拣货助手,到对应的货架拣货,然后传送到对应的订单打包区进行打包配送,这个过程需要知晓货架、通道等信息的属性。
二、库存的设计
库存的设计依赖于库存的交易逻辑,在上篇文章中讲过,库存的交易主要涉及到增加库存、扣减库存、锁定库存、释放库存和返还库存这五大块,现就每一块的设计说明如下:
1. 增加库存
库存增加的业务场景主要包含:采购入库和盘盈入库。
无论是采购入库还是盘盈入库,都有操作人、操作单据、操作时间、操作数量、操作商品等信息,所以增加库存的设计需关注以下几个字段:
- 业务来源:比如采购入库,系统需要知道该采购入库单从哪来的,如商品文章所述,采购入库单一般来源于商家的ERP系统。
- 业务单据号:增加该笔库存单据号,用作溯源和将来对账之用。
- 增加的商品:采购入库的商品主体是什么。
- 商品的所属:该商品属于谁。有些入库的商品是属于商户花钱采购的,有些是供应商配送的,但未支付货款,此时在货权上,该货其实是属于供应商的。
- 操作时间/人:主要用于记录谁来完成的该笔操作,无论采购入库还是盘盈入库,都需要相关的人员进行业务操作才行。
2. 扣减库存
扣减库存与增加库存的底层核心逻辑是一致的,只是变动方向不同而已,增加库存是加,扣减库存是减,且业务场景不一样而已,此处不做敷述。
3. 锁定库存
锁定库存发生的业务场景是O2O平台提交订单,库存中心对库存进行预占,以防缺货问题发生。锁定库存与增减库存不同的是,锁定库存一般情况下,需要有时间限制,不能无限制的锁定库存。
在电商模式下,用户前端购物的操作流程一般是:浏览商品->加入购物车->提交订单->支付订单->确认收货。
大部分电商平台选择的是在用户提交订单时锁定库存,这样能保障提交订单了的用户能有货可发,绝大部分电商平台采用的是这种,少数平台采用加入购物车锁定库存(唯品会,所以唯品会加入购物车会有一定时间的计时器,超过计时器自动释放库存)、支付订单锁定库存等,对于O2O业务模式,一般会选择支付订单进行库存锁定。
锁定库存时需特别关注以下几个字段:
- 渠道来源:该笔订单从哪个渠道来的。
- 业务单据号:锁定库存的具体订单号。
- 锁定商品:订单内的商品信息。
- 锁定数量:锁定商品的数量。
- 锁定时长:设置的锁定时长。
- 锁定时间:该笔锁定流水发生的时间,以便溯源。
4. 释放库存
释放库存与锁定库存其实是一个反向操作,类似,在此不做敷述。
5. 返还库存
一般平台的设计通过增加、扣减、锁定、释放就能解决业务需求,有些平台为精细知晓库存变动的方向,在销售退货场景下的库存增加标记成了返还库存类型,具体的逻辑与增加库存一致。
三、库位的设计
设计库位的主要目的是精细化管理仓库内的商品,明确知道某个商品在某个库位上,在发生拣货下架、收货上架的时候,能准确定位某个库位。
库位的设计一般需要注意以下几点:
1. 库位编号生成规则
库位编号设计的优良跟仓库内动线的效率直接相关,比如拣货场景,如果库位编号设计合理,拣货员收到拣货任务后,能准确的知晓任务内某个商品在具体的某个位置。
一般库位编号的生成跟库区、通道、货架、货层、库位有关,比如库位编号采用【库区】+【通道】+【货架】+【货层】+【库位】生成,则A库区,3号通道,第2个货架,第3层,第1个库位的库位编号应为:A03-02-03-01。
2. 库位规格设计
不同的库位,不同的用途,其规格不同,比如存放小件商品(口红、墨水)的库位,在设计上需关注库位的护栏,因为小件商品可能由于没有护栏而滑落,而有些商品,比如箱装的矿泉水,在设计库位时,需关注库位的宽度、高度、深度,以及库位的核定载重,当库位存放商品的体积或重量超标时,该库位就不能再上架商品。
3. 库位状态
仓库内的每个库位都应该有一个状态:可用、不可用。
可用表示该库位还可继续存放商品,反之,不能存放商品,该状态的标识主要用于收货上架的指引或电子货架,不可用的库位使用红色的灯表示,这样仓库人员在上架时一眼就能看出来哪些可用,哪些不可用。
4. 库位库存
库位库存主要有以下几个纬度:
- 库位总库存:该库位上总共有多少库存商品,以商品切分。
- 库存明细:该库位上某个货主的某个批次的某个商品有多少库存数据。
本文为个人学习查阅方便转自网络, 如有侵权联系删除
(。・v・。)