童话说说技术创业美文职业
投稿投诉
职业母婴
职场个人
历史治疗
笔记技能
美文纠纷
幽默家庭
范文作文
乐趣解密
创业案例
社会工作
新闻家居
心理安全
技术八卦
仲裁思考
生活时事
运势奇闻
说说企业
魅力社交
安好健康
传统笑话
童话初中
男女饮食
周易阅读
爱好两性

电商技术解密之库存系统

11月23日 回头爱投稿
  今天来跟大家聊下电商平台里的库存系统,相信大家对库存系统最直观的感受就是商详页上是否显示“加入购物车”或者是“到货通知”。只要能加入购物车就表示有库存,显示到货通知就表示没有库存了,并没有觉得这里面有多么的复杂。今天来跟大家一起解密下库存系统,来看一看是不是真的如大家想象中那么的简单。
  库存系统的作用是什么?
  最重要的作用就是管理好各个商品的实时库存数据,及时告诉用户当前商品是否可以购买?还可以购买几件。
  为了能够更清楚的介绍库存系统是如何管理商品库存数据的,这里需要先简单给大家介绍另外一个系统,叫做仓库系统。估计很多人分不清仓库系统跟库存系统之间的关系是什么?
  仓库系统实际真正管理的是物理仓库里面的库存的数量。我们经常听说的京东亚洲一号仓等等这些大型的仓库,由于面积非常大,里面的商品数量也很多,所以需要有一套系统来帮助管理实体仓里面的库存的数量。
  简单来说就是管理这个仓库一天有多少商品进入到这个仓库里面来,每个商品的数量有多少?每天从这个仓库发出去多少个商品?仓库里面每个商品还剩下多少?剩下的这些商品分别存储是仓库的哪个储位上等等。
  那么有了仓库系统就可以管理商品的数量,那么为什么还要有库存系统呢?
  下面给大家举个例子,让大家了解下仓库系统和库存系统之间的区别是什么?当某个商品A在仓库里面有10个数量的时候,仓库系统负责管理这个商品A的数量,以及它的位置信息。那么仓库里面这个商品A在网站上是不是一定可以允许卖10个呢?这是不一定的。因为仓库里面有10个商品A,可能网站上已经有3个被用户买掉了,只不过这3个商品还没有出库,所以在仓库系统里面看这个商品目前还有10个在仓库,但实际上已经卖掉个,网站上其实只能卖个,这种可卖的数量仓库系统是区分不出来的,它只是负责管理在当前时刻仓库里面一共有多少库存,并不区分商品的状态信息。所以库存系统主要是用来解决这个问题,经过一系列的计算告诉用户当前时刻商品A一共还可以买几个。仓库系统管理的是仓库里面商品的实际数量,库存系统管理的是商品的可销售数量,这就是库存系统和仓库系统主要的区别。
  在电商网站的商详页上展示当前商品可售卖数量对库存系统来说是相对比较简单的,有货的时候显示当前商品的数量,没货的时候告诉前端此商品库存为0,前端展示到货通知,如下图:
  库存跟仓库系统之间的交互
  比较复杂的是如何对接仓库的各种出入库事件来管理商品的数量。下面来跟你介绍一下库存跟仓库系统之间交互的几个比较重要的事件。
  采购入库
  当B2C电商网站类似京东、当当这种想卖一个商品的时候首选要发起采购计划,这时候需要在仓库系统里面建立一个采购单。目的是记录哪个商品采购了多少数量,将会把这批货采购到哪个仓库里面去。
  采购单发起之后过一段时间实际的商品会入库。这时候仓库系统会把相应的商品数量进行更改。这个时候仓库系统同时会通知库存系统,告诉库存系统某个商品入库了,数量是多少,库存系统会把相应的数量加上。
  采购入库时序图
  下单锁库存
  商品采购入库之后库存系统就会增加相应的数量,这时候在网站端这个商品就可以开始卖了。当有人购买这个商品的时候,库存系统会将这个商品数量先锁定。然后等待仓库出货。当仓库真正出货的时候,库存系统才会将相应的数量减掉。这里解释下库存系统为什么要有一个锁定的状态?
  还是举个例子来说。当一个手机A采购入库10个的时候,库存系统也会显示这个手机在库存系统里面有10个数量。也就是说网站上可以销售的数量为10。
  当一个用户买了一个手机A的时候。库存系统会将这个商品先锁定一件。表示有一个商品已经有人付钱要进行购买了,这个时候库存系统会告诉网站端此商品目前能购买的数量为9个。
  订单取消解锁库存
  当用户下了单买了手机之后,过了一会可能由于种种原因后悔了,或者是不想买了或者是想换一个更好的手机,这个时候用户会将这个订单取消掉。在仓库没有将这个手机发出去之前用户是可以取消的,这个时候我们需要将刚刚锁定的数量解锁掉,变化后的库存数量如下:
  出库扣库存
  如果上面用户没有取消订单,那么仓库里面的工作人员将这个商品找到、打好包裹、寄出去之后,仓库系统会通知库存系统这个手机已经出库,这个时候库存系统需要将数量减少,具体变化如下:
  仓库的实际数量变为,锁定数量变为,可售卖的数量仍然为。
  仓库间调拨
  这个纯属电商仓库管理的后台流程,普通用户是感知不到的,稍微大一点的商家或者自营平台,类似京东、苏宁这种自建仓库的平台商家都会有很多个仓库分布式在全国各地,商品也是有一定规则的分布在各个仓库一定的数量,当用户下单的时候尽量从离用户最近的仓库发货,这样速度比较快并且距离也比较短,物流成本也比较低。但实际上会由于各种原因导致某些商品库存数量分配的并不是很合理,可能南方的仓库已经卖没了,北方的仓库还积压很多没卖出去,这个时候为了让商品尽快的卖出去,需要将这个商品从北方的仓库调拨到南方的仓库,这就是调拨的业务场景。
  可以看到调拨是一个商品在两个仓之间的周转,这就为管理增加了难度,完成一次调拨有三个步骤:发起调拨申请、调拨出库、调拨入库。
  发起调拨申请:当决定把商品从北方仓调拨到南方仓的时候,首选需要发起一个申请,表示哪个商品从哪个仓调拨到哪个仓,调拨的数量是多少。
  为了方便大家理解,我们举个例子,将商品从北方仓调拨到南方仓100个。当发起调拨申请的时候,库存系统会先在北方仓锁定100个商品A的数量。库存的变化如下:
  发起调拨前
  发起调拨后
  看到这里有同学会奇怪为什么发起调拨的时候也要先将调拨数量进行锁定,因为如果不进行锁定的话极端情况下北方仓的这个商品可能突然就卖掉了950件,这时候仓库只剩下了50个,仓库就没有办法进行100个商品的调拨,会影响商家的整体统筹安排,所以需要在发起调拨的时候预先锁下,保证调拨可以正常进行。
  调拨出库:即当A商品从北方仓出库的时候,这个时候我们需要将库存数量进行相应的调整,调整后数量如下:
  将北方仓的实际库存数量和锁定数量都减掉100,可销售的数量仍然是900。
  调拨入南方仓
  在这100个商品进入到南方仓之前,我们看下南方仓的库存数量,如下:
  当这个100个单品进入到南方仓之后,南方仓这个商品的数量会进行调整,如下:
  实际数量和可售卖数量都变成了100。
  至此我们完成了一次完成的调拨流程。这里面大家可以看到,其实库存与仓库之间交互的事件比较多,逻辑也比较复杂。上面只是简单列举了几个比较核心的流程。实际生产中还有很多更细节的事件需要管理。例如,退货的流程、换货的流程、损益的流程等等。如果任何一个地方出现误差,就会导致仓库的数量与库存的数量不一致。
  如果出现不一致,那就是库存系统的最大失败,库存系统就是用来管理库存的,这就是它的职责。但是实际业务中由于复杂的逻辑会出现一部分商品库存管理出现错误,这时候会导致两种后果,一种是仓库系统明明只有5个商品,库存那边计算成了10个。这样可能会有10个用户来购买,但是仓库只有5个,会导致有5个用户的商品不能发货,这就是我们所谓的超卖。这种是比较严重的后果,用户的体验非常不友好。另外一种情况是仓库里面还有10个商品,但是库存系统计算成只有5个,这样会导致商品少卖会造成商品在仓库的积压。所以仓库跟库存还有一个比较重要的逻辑就是对账每天都要核对一下两边的库存数量是否一致。
  上面跟大家介绍了下库存系统的大体业务逻辑,相信已经有不少人已经看晕了,后面再找时间跟大家介绍下如此复杂的库存系统是如何实现的?这里需要解决的问题是如何保数据一致性?跨库的事务如何解决?采用什么样的策略进行补偿?对账如何做?商详的请求量比较大,如何保证库存的性能?等等。有好的方案欢迎留言讨论。
  相关阅读
  电商技术解密:如何让用户快速地打开商品详情页?
  电商技术解密之购物车
  电商技术解密之跨店铺促销
投诉 评论 转载

产品经理必读如何跳出不断加需求的坑?随着时间、场景的转变,需求永远都是源源不断的,永无终止之日。上周二,刚去到公司,客户就找上门,说希望加一个筛选某个员工业绩的功能。类似这样的事情不知道发生了多少次,每个客……网易教会我的5件事打磨而不是出活我是一名策划新人。总有很多自以为正确的事情,总是尝试努力去;而最后,效果却并不见好。原因在哪里?我是一名策划新人。新人常有一个毛病,拼命压榨自己的时间,遇到一个需求……QOC:让设计思考被看见在前一篇总结分享《交互新人的踩坑史》中,提到了可以运用QOC的设计理念帮助我们在纠结设计方案时帮助我们思考和决策。关于QOC的介绍只是在总结中草草带过,所以有小伙伴问我:QOC……产品设计的思考方式:功能的保健与激励(五)保健与激励,从本质来说,我们是要解决哪些功能需要重点突破,哪些则是够用就好。任何一个功能背后都是资源的投入,设计、开发、运营以及后续的维护,都需要成本。在这里增加投入,就……电商直播的核心诉求:如何将直播模式和电商属性有效结合2016年被公认是移动直播爆发元年,直播在与各行业结合之后,表现出强大的生命力,掀起了全民直播的热潮。在电商领域,各大平台也纷纷开始引入直播模式,并用实际的数据证明了这是一种非……7条产品需求思考原则,设计师要了解面对产品需求时,作为设计师,应该如何思考,才不会陷入产品的需求陷阱,还可以帮助产品经理一起完善需求,设计出合理的、打动人心的设计方案呢?不妨看一下以下7条产品需求思考原则。……电商技术解密之库存系统今天来跟大家聊下电商平台里的库存系统,相信大家对库存系统最直观的感受就是商详页上是否显示“加入购物车”或者是“到货通知”。只要能加入购物车就表示有库存,显示到货通知就表示没有库……为了沟通到位,我为设计师们专门准备了一份原型文档直接交付设计的文档只有一份带有简要说明的原型文档,这样设计就只能根据自己的思路猜测文档中的部分功能与逻辑。也不知道谁规定的,许多刚入行的产品er都感觉需求交接时,最痛苦的……当投票有了权重,事情会变得不一样吗?目前大多涉及打分、投票的网站,所有参与用户的权重都是一样的。但这其实存在一些问题。评分、评星、投票是很多网站的标配,比如淘宝的宝贝评价、知乎的赞同。有些网站甚至以这些功能……为拇指区域设计:关于拇指区域设计的四个关键点在这篇文章,我将分享一些我了解到的拇指区域的知识和如何将这些知识用到导航,卡片和滑动手势中。如果有一件事可以经得住时间的考验,那便是在移动端关于拇指的位置设计了。”拇指区……视频广告系统v1。0产品实战:调研和分析你有经历过“任务”型产品吗?也就是被指派做一个产品,这和你的梦想无关,也和你想做的产品无关,只是被指派做某一款特殊用途的产品。大家一直热捧的一流互联网公司的产品经理,比如……产品价值观:toB系统设计的核心思想科学无国界,但科学家有他的祖国。系统产品也是同理,系统无优劣,系统设计者有他的价值观。系统本质就是集合了一系列功能的快捷工具。例如电话网络作为一个产品,可以胜任通讯任务,……
一套表情是一个对话系统:关于原创表情设计的思考自由联合、自动解散:一个罗辑思维订户眼中的互联网思维周鸿祎:颠覆传统企业就两招伟大的产品必定具有优秀的主旨陌陌该怎样卸下约炮神器的“美誉”?做产品,到底是EQ的问题还是IQ的问题?前工程师揭秘:谷歌地图这样计算导航路线网页与APP中那些优美的登陆表单移动网站设计应该避免的“七宗罪”更接近于现实的社交产品设计社会化广告微信新版内测图曝光:又挑战使用习惯了到底什么是极简主义?

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找作文动态热点娱乐育儿情感教程科技体育养生教案探索美文旅游财经日志励志范文论文时尚保健游戏护肤业界