电商产品最复杂的模块莫过于“后台模块”,而后台模块中较为复杂的又莫过于“库存管理”,而一般来讲B2C电商产品中的库存包括七大部分,分别是:可销售库存、订单占用库存、不可销售库存、锁定库存、调配占用库存、调配中库存、虚库存。而这几个的关系是这样的:
总库存=可销售库存+订单占用库存+不可销售库存+锁定库存+调配占用库存-调配中库存-虚库存
关于这个关系,下边会详细说。
可销售库存
可销售库存就是普通用户在电商前端看到的的库存。而一般为了防止竞品通过前端库存来预测其销量和总库存,因此前端只显示“有货”或“无货”(如下图)。当某SKU的可销售库存>0时,前端显示“有货”,用户可加入购物车或者立即购买;当某SKU的可销售库存≤0时,前端显示“无货”,用户无法加入购物车或立即购买,并提示“商品已下架”,同时可进行“到货提醒”的功能设置。
其实除此之外,电商产品在出于提高转化率的目的上还可以再次优化,例如,在库存管理上,可以根据某商品的销售情况得出一个风险库存预警值X,当该SKU的可销售库存>X时,前端显示库存充足,当该SKU可销售库存情况:0<可销售库存≤X时,前端提示库存紧张,以促进消费,当该SKU可销售库存≤0时,则提示商品已下架,设置“到货提醒”。
订单占用库存
设立订单占用库存的原因是商品的下单支付和发货是异步进行的。对于已下单支付的用户,保证其商品能正常出库发货,而对于尚未下单支付的用户,保证其下单后有可售的库存,防止超卖。
订单占用库存和可销售库存的反向的,也就是可销售库存减少后,订单占用库存增加。而这里就涉及到一个什么时候可销售库存减少的问题(也就是我们常说的锁库存),一般来讲,锁库存的方式或条件是不一定的,主要有三种:加入购物车锁库存、下单后锁库存、支付后锁库存;不同的方式应用场景是不一样的,这里待以后以另一篇来详细写。
为了方便理解,这里以下单后锁库存为例,举个理想化的例子:假设一个袜子的可销售库存是100,那么在未下单前,可销售库存与订单占用库存为以下情况:
假设一个用户下了一个3双袜子的单,那么此时的可销售库存与订单占用库存为以下情况:
当然,现实中还有许多异常情况导致用户下单后未立即付款造成可销售库存的减少从而影响后续用户的购买,最终造成库存积压。比如:
- 某个用户下单后,由于各种原因不想买或者出现网络异常而没有立即进行支付。
- 竞争对手或者其他居心叵测的用户持续下多个单而不支付。
因此,针对以上情况,一般的解决方案如下
- 若用户下单后未进行支付,进入到待支付环节,同时进行时间限制(半小时或者1小时),过时后释放订单占用库存,增加相应的可销售库存。
- 对每个用户单次购买的数量进行限制(比如每个用户最多购买5件),当用户下单后未支付且再次进行下单时,提示其有相应的未支付订单。
- 通过技术手段对设备ID及IP地址检测,防止其通过多个设备及IP地址进行破坏性下单。
不可销售库存
不可销售库存在这里很好理解,就是当商品出现破损等不符合销售标准的情况下归属到不可销售库存。设立不可销售库存的目的是1)提高库存管理效率,方便对有问题的商品向上游供应商进行协商赔付。2)对用户负责,防止将有问题的商品销售给用户,以防信任危机和物流成本的增加。
此外,在不可销售库存在后台系统的标注方法上,一般有两种方式:
- 使用不同的SKU编码,例如某正常商品的SKU编码为12345,其对应的不可销售库存的SKU编码即为12345U。
- 使用同一编码,但须专门开辟一块不可销售区域来集中管理。
锁定库存
锁定库存常见于电商的促销活动中,电商的促销活动一般以低价折扣来吸引用户,而对于产品方而言,有其他诉求:
- 并不想让某种商品全部以促销的形式卖出,只卖一部分防止亏损。
- 防止竞争对手的恶意采购,挖空库存。
- 仅仅想通过以低于成本价的方式促销,以此来吸引流量,通过其他商品来获利(淘宝爆款就是这个意思)
因此,基于这样的产品诉求,一般会设立锁定库存,将总库存中的一部分商品锁定不参与促销活动。当可销售库存为0时,必须将锁定库存释放转换为可销售库存才可继续销售。
因此锁定库存不是一个常设系统,需要使用时临时搭建即可。
那么谈到这。此时:
总库存=可销售库存+订单占用库存+不可销售库存+锁定库存
虚库存
虚库存就是仓库中没有实物库存,实物库存来自于供应商方面。
在实际的电商中,由于仓储能力有限,缺乏扩展性。一方面当市场上某种商品的需求量极大时,这时仓库中该商品数量较少时,如果与供应商的沟通渠道畅通,可以迅速将该商品输送到仓库中转换为库存,将有效提升销售额;另一方面某种商品的需求量极少时,平台不需要提前在仓库储存该种商品,可事先拿到商品订单,凭借订单来寻找供应商(前提是平台与该供应商已达成协议并及时沟通库存情况)。因此这时候就引入了这么一个概念——虚库存。
因此此时的可销售库存=总库存-订单占用库存-不可销售库存-锁定库存+虚库存(从这里我们可以看出总库存是一个实物库存概念,意指只存在自身仓库中的库存)
调拨占用库存与调拨中库存
我们经常在京东上购物,会明显感觉到京东的物流很快,常常今天刚下单,明天就到货了。这一方面要归功于京东的自有物流体系,另一方面要归功于京东的仓储体系,也就是由于京东的自营性质,京东会在全国各地搭建自营仓库。而不同地区的销售情况是不尽相同的,可能同一种商品在北京仓需求量高,但在武汉仓需求量就很低了,这样一来,如果前期对市场需求判断不准确,就会造成该商品在武汉仓造成积压,在北京仓造成缺货的情况,这时候武汉的仓储就要对北京的仓储进行“支援”,这就涉及到一个“调配占用库存”和“调配中库存”。
还是拿刚刚的例子,假设武汉仓需将100个32G的亮黑色iPhone7调拨到北京仓。首先武汉仓需要发起调拨需求,此时武汉仓需要将100个32G的亮黑色iPhone7锁定不可销售,因此这时的武汉仓的可销售库存=总库存-订单占用库存-不可销售库存–锁定库存+虚库存-调拨占用库存。(需要注意的时,虽然此时调拨占用库存仍在总库存中,但不可销售,是为了避免极端情况,比如原来有300可销售库存,此时由于调拨需求可销售库存降低为200,若不将100库存锁定为调拨占用库存,如果碰到极端需求250,那么则完成不了调拨行为)
在调拨需求发起后,经过库存调整、打包及出库,此时的库存既不在武汉仓,也不在北京仓。因此此时的双方的总库存的情况均为:
总库存=可销售库存+订单占用库存+不可销售库存+锁定库存-虚库存+调拨占用库存
当调拨的商品到达北京后,此时双方的总库存情况为:
- 北京仓:总库存=可销售库存+订单占用库存+不可销售库存+锁定库存-虚库存+调拨占用库存+100(调拨中库存)
- 武汉仓:总库存=可销售库存+订单占用库存+不可销售库存+锁定库存-虚库存+调拨占用库存-100(调拨中库存)