【产品设计】电商后台系统设计--库存

news2024/11/24 0:07:37

电商后台产品,涉及众多模块,而以商品、订单、库存为核心模块,模块间存在大量交互。库存决定商品是否可售卖,下单是否能成功。

电商中的库存管理是为了保证前台商品的正常售卖,库存的管理和仓库密不可分,而仓库又和销售、采购相关,以下是简单的示意库存变动的影响因素。
在这里插入图片描述
 A. 销售订单-减库存;B. 销售订单-锁库存;C.售后退货-补库存;D. 仓库调拨-增加/扣减库存;E.预售-锁库存 ;G. 采购-增加库存;H.盘盈盘亏(盘库存对账,增加/扣减库存)。这里说一下盘盈盘亏,盘点主要是用于管理仓库实际值与系统值的差异的。理论上来说,若商品的各个环节数据都准确的话,实际值与系统值应该是一致的。但实际中可能会有一些系统检测不到的因素影响了真实的库存,这就需要仓库进行周期性的盘点了。盘点之后,若实际值与系统值不一致,就需要把系统值修改正确,这时,可以通过人工或者自动生成出入库单的形式去修改系统值,而且修改的这部分数据是需要做出标记的,以便于财务之后的对账。(当然,实际设计中如何处理这部分差异,还要看业务性质和需求)
根据库存不同应用阶段,将库存管理体系分层为销售层、调度层、仓库层,主要是各层的职能不同,驱动库存发生变化的依据也不一样。

在这里插入图片描述
销售层 销售层的库存决定是否可售卖,下单是否能成功。在秒杀时,活动库存决定了是否可以秒杀成功;预售时,预售库存决定是否可下定金预定。
◼︎可销售库存:网站前台显示的库存,可以对外售卖的库存。当“可销售库存>0”时,前台网站则会显示商品可销售;而“可销售库存=0”时,前台网站则会显示商品缺货。
◼︎锁定库存:用户下单锁定库存,支付后扣减库存。锁定库存指的下单时占用库存,保证客户下单后支付的订单都是有货可发,而不会相互冲突。
◼︎已销售库存:统计商品已售数量。当支付成功,商品就算作已销售库存。如果取消订单或售后就需要走相应的库存变动流程变动。
◼︎活动库存:主要是做促销活动(例如秒杀)时,分配固定数量的商品给相应的活动,这时候就需要从可销售库存中占用相应数量给活动库存。这部分库存也是走相应的锁定、扣减逻辑。
◼︎预售库存:这部分是虚拟库存,主要是拉动式需求,例如B端订货、双十一定金预售等。预售同样走相应的锁定、扣减逻辑。不同的是,预售的订单需要备货之后,再推送至调度层。

在这里插入图片描述
其中,可销售库存在商品维护界面仅有一个对库存数维护的地方,也就是实际可售库存。对于大平台的入驻商户来说,通常采用手动录入方式(有开发能力的可以做系统对接),让商户自己维护SKU的销售数量。具体填写多少由商户自己决定,这个填写的数字就是实际可售库存。而对于平台自营来说,公司通常都有自己的仓储系统,每个SKU都有明确的存储记录,并且部分SKU参与内部任务(如调拨、拍照、战略储存等)使得当前时间不可售。因此实际的SKU库存可能并不等于全部可售,具体实际可售库存需要通过仓储系统经过统计同步到商户模块中,而不是由买手自己手动维护。
在这里插入图片描述
调度层

调度层相当于订单的分配中心,将订单转化为发货单,按照调度规则决定哪些sku由哪个仓库发货。调度层的库存分为单仓、区域、总库存三个维度,区域库存指的是这些仓库只发某一区域的,例如京东华中地区的仓库配送华中地区,北京就无法从华中地区的仓库发货。总库存即所有仓库的sku库存总计。
◼︎账面库存:仓库中的实物库存,只要是未出库的都算在账面库存中。
◼︎可用库存:仓库中可供发货的库存。这部分库存是可供调度的库存。
◼︎在途库存:下了采购单但是尚未入库的库存,在途库存理论上部分是可供销售的,例如T+1的在途库存,就是1日之后就可以入库的sku。
◼︎已用库存:在调度层已分配的库存。
调度层在某些方面上和前端库存有些重叠,前端库存也会分区域和总库存,但是不同的是,调度层对应的是实物,不会存在虚拟库存,流到调度层的订单经由调度后推动至仓库发货。

仓库层(WMS库存)

仓库层的库存对应的是实物库存,出库入库盘点都会引起仓库库存的变动。仓库层在整个库存管理体系中尤为复杂,仓库内的出库流程可参考上图-库存关系流转关系图。(其中波次拣货是指将几个订单合并拣货,可以提高拣货效率。)

◼︎可用库存:发货单推至仓库后,仓库可以用于发货的库存,不包括锁定的库存。
◼︎锁定库存:发货单推送至仓库后锁定库存,锁定时同时去锁定库位库存。
◼︎已出库库存:已经确认出库的实物库存。
◼︎不可用库存:盘点时发现的不良品,需要报损,从可用库存转化为不可用库存。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/425511.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Midjourney详细注册和使用教程

来源:Midjoureny详细注册使用教程【探索ChatGPT】 Midjourney,用户只需要输入一段图片的文字描述,即可生成精美的绘画,相信了解Midjourey的小伙伴已经对它强大之处而赞叹! 下面是用通俗易懂的步骤教会大家如何注册和…

【严蔚敏版数据结构】你分得清顺序栈和链栈吗

【严蔚敏版数据结构】顺序栈和链栈的剖析和对比一、顺序栈和链栈的存储结构二、顺序栈和链栈的初始化三、顺序栈和链栈的判断是否栈空四、顺序栈和链栈的入栈五、顺序栈和链栈的弹栈六、顺序栈和链栈的取栈顶元素一、顺序栈和链栈的存储结构 顺序栈的存储结构图如下&#xff1…

Windows 10系统,JDK安装与环境变量配置

引言 随着互联网的日益发展, 越来越多的小伙伴加入了程序员这个行列, 也有很多小伙伴正计划学习编程, 学习Java 那么对于新手来说, 第一件事就是下载安装Java开发工具包, 也就是JDK, 今天我们就来一起详细的说说怎么操作 JDK版本描述 学习环境中, 我们通常使用较新版本的JD…

支持PHP运行环境和系统防火墙配置管理,1Panel开源面板v1.1.0发布

2023年4月17日,现代化、开源的Linux服务器运维管理面板1Panel正式发布v1.1.0版本。 在这一版本中,1Panel新增支持PHP运行环境、系统防火墙配置管理以及同步本地应用等功能,并带来了40多项功能更新和问题修复,感谢各位社区用户的反…

回归预测 | MATLAB实现GA-LSTM遗传算法优化长短期记忆网络的数据多输入单输出回归预测

回归预测 | MATLAB实现GA-LSTM遗传算法优化长短期记忆网络的数据多输入单输出回归预测 目录回归预测 | MATLAB实现GA-LSTM遗传算法优化长短期记忆网络的数据多输入单输出回归预测效果一览基本介绍程序设计参考资料效果一览 基本介绍 MATLAB实现GA-LSTM遗传算法优化长短期记忆网…

nvm管理node

开发的时候node版本不兼容问题频频出现,就得安装多个版本node,nvm管理起来就很方便。 首先nvm是一个nodejs的版本管理工具。为了解决node.js各种版本存在不兼容现象可以通过它安装和切换不同版本的node.js。 打开CMD,输入命令 nvm &#xf…

密码基础知识——密码的概念与作用

密码基础知识——密码的概念与作用密码的概念与作用密码的概念密码的重要作用密码的功能密码应用技术框架密码应用中的安全性问题密码应用安全性评估的基本原理信息安全管理标准PDCA 管理循环信息安全风险评估定义信息安全风险评估的目的和用途信息安全风险评估的基本要素密码的…

Centos 7 安装系列(10):ElasticSearch 8.6.2

ElasticSearch 部署一、系统环境二、解压安装2.1 解压压缩包2.2 修改配置文件2.3 添加操作用户2.4 启动2.5 开放端口2.6 开机自启动配置2.7 设置用户名密码认证三、总结一、系统环境 操作系统:Centos 7 已配置环境:空 二、解压安装 2.1 解压压缩包 上…

基于ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升环境、生态、水文、土地、土壤、农业、大气等领域的数据分析能力与项目科研水平

【原文链接】:基于ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升环境、生态、水文、土壤、农业、大气等领域的数据分析https://mp.weixin.qq.com/s?__bizMzU5NTkyMzcxNw&mid2247537467&idx4&sn10c4c12897282daf5320efae05caf3a4&chksmfe689551…

黑马2023JavaScript笔记1

一、js知识点 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-widt…

LoRA 指南之 LyCORIS 模型使用

LoRA 指南之 LyCORIS 模型使用 在C站看到这个模型&#xff0c;一眼就非常喜欢 在经历几番挣扎之后终于成功安装 接下来&#xff0c;我们一起开始安装使用吧&#xff01; 1、根据原作大佬的提示&#xff0c;需要安装两个插件 https://github.com/KohakuBlueleaf/a1111-sd-web…

蓝桥杯之我见

前言 关于蓝桥杯&#xff0c;应该有很多人不知道这是一个什么样的比赛。但是作为一名合格的程序员&#xff0c;就算之前没有参加过蓝桥杯的比赛&#xff0c;或者没听说过蓝桥杯&#xff0c;读完本篇文章再说不知道蓝桥杯&#xff0c;就有点不合适了吧&#xff1f;&#xff01;那…

网络作业6【计算机网络】

网络作业6【计算机网络】前言推荐网络作业6一. 单选题&#xff08;共11题&#xff0c;33分&#xff09;二. 多选题&#xff08;共2题&#xff0c;10分&#xff09;三. 判断题&#xff08;共1题&#xff0c;1分&#xff09;四. 阅读理解&#xff08;共1题&#xff0c;56分&#…

DY-30型电压继电器DY-36

DY-30系列电压继电器 DY-32电压继电器&#xff1b;DY-36电压继电器&#xff1b; DY-33电压继电器&#xff1b;DY-37电压继电器&#xff1b; DY-34电压继电器&#xff1b;DY-38电压继电器&#xff1b; DY-31电压继电器&#xff1b;DY-35电压继电器&#xff1b; DY-32/60C电压继…

npm与node版本不匹配问题解决思路(一百五十八)

1.报错 npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: ‘electron-packager17.1.1’, npm WARN EBADENGINE required: { node: ‘> 14.17.5’ }, npm WARN EBADENGINE current: { node: ‘v12.22.9’, npm: ‘8.5.1’ } npm WARN EBADENGINE } np…

软件测试【常见】62 道面试题,不背完这些你还想去面试?

01、您所熟悉的测试用例设计方法都有哪些&#xff1f;请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。 02、您认为做好测试用例设计工作的关键是什么&#xff1f; 03、您在从事性能测试工作时&#xff0c;是否使用过一些测试工具&#xff1f;如果有&#xff0…

中国人民大学与加拿大女王大学金融硕士——去发现、去尝试更多的可能

现实中很多人都曾信心满满地列出各种计划&#xff0c;学习、减肥、运动等等&#xff0c;但结果却是“晚上想想千条路&#xff0c;早上醒来走原路”。三毛说过&#xff1a;“我有一个想法&#xff0c;去做&#xff01;”我们要发现&#xff0c;更要去行动&#xff0c;去尝试更多…

python输入矩阵的方法

在 python中输入矩阵有多种方法&#xff0c;这里我主要介绍下面几种。 输入矩阵的第一种方法&#xff0c;用 shell命令来实现。这个方法可以用来将矩阵转化为字符串&#xff0c;然后进行输入。 另外一种方法是使用 list语句。这个语句也是可以用来把矩阵转换为字符串的&#xf…

MongoDB的安装及配置 windows版本

1.去mongoDb官网下载后缀是.msi &#xff08;我安装的是6.0.0版本以下&#xff09; mongodb下载地址 2.接下来按照图示步骤安装即可 &#xff08;1&#xff09; &#xff08;2&#xff09; &#xff08;3&#xff09; &#xff08;4&#xff09;点击browse,这边要记住你的安装…

坚持60s(jar反编译)

下载附件打开&#xff0c;是一个.jar文件 好像是一个小游戏&#xff0c;但是我没明白怎么操作&#xff0c;我只知道它在侮辱我 .jar文件是java中的class文件打包而成的&#xff0c;相当于类库。 在打开.jar文件之前&#xff0c;要确保电脑里面安装好了java JDK(java 的开发环…