推荐使用:免费中小企业ERP软件(免费下载,像Excel一样极速上手,可灵活自定义的企业管理软件)
本文主要阐述电子商务平台库存订单系统的相关逻辑。让我们一起来看看
一、库存的概念
电子商务业务场景中的订单流程经常伴随着库存变更;就erp系统而言,库存可能涉及诸如仓库入口、仓库出口和仓库配送等操作。这里暂时不讨论erp中库存的处理逻辑,主要是解释电子商务平台库存的订单系统相关逻辑。
合计库存指供应商仓库中货物的实际库存;
冻结库存是指库存暂时被订单占用,冻结库存可以根据订单的取消或交付等情况解除。
可用库存指总库存-冻结库存,一般指前端显示的最大数量,用户可以下订单。
库存使用场景:
常规订单流程:需要申请总计库存、冻结库存和可用库存;
运营活动:特殊商品活动需要占用一定数量的库存以确保足够的库存支持活动。
礼品库存:如果礼品被视为SKU,即与正常订购路径相同,当礼品分离时,需要设置礼品库存(在我们的业务系统中,礼品是由商家库存手动添加和设置的),同时需要建立单独的库存处理系统。
二、常规订单处理库存
总量库存可以与ERP同步设置,也可以手动设置。如果是手动设置,供应商点击“确认发货”,然后减少。如果订单已在退款期间发货,供应商单击“同意退款”/系统自动同意退款,并在供应商单击“确认收据”时增加金额/系统自动确认收据。
在同步ERP数据的情况下,总计库存可以不受订单状态的影响(值得注意的是,如果确认装运的节点和扣除总计库存的节点之间存在时间差,则该时间段实际上将导致系统冻结库存,但是企业资源规划总计库存将保持不变。因此,可用的库存在短时间内将会太大,并且总数库存也可以首先被扣除/增加,因为总的库同步肯定会覆盖先前修改的数量。
当用户从app下订单时冻结库存增加,当供应商确认发货/取消订单时冻结减少,当“待发货”订单退款成功时冻结申请减少。
此外,取消退款和退款失败将不会影响库存。
结合订购过程中的每个节点给出进一步的解释:
用户下订单:下订单时,由于订单生成后需要预留一定的金额库存,以保证订单可以发货,因此需要增加相应商品的冻结库存;这里应该注意,不同的业务场景对于添加冻结节点有不同的定义库存。
一般来说,在两个节点库存考虑冻结:一个是订单生成时,另一个是支付成功时。
对于库存有限和有时间限制的订单(例如秒杀),在付款成功时添加冻结库存更为合理,因为未付订单将影响其他人购买本产品。然而,对于常规场景,在生成订单时最好占用库存,否则将影响用户的订购体验(但是必须有自动取消订单以解除冻结的功能库存)。
确认发货:确认发货的动作可以是发出ERP订单时自动确认发货,也可以是手工确认发货。无论是哪种情况,只要触发交货动作,就要扣除总金额库存和冻结金额库存。如果ERP系统自动同步总计库存,则总计库存将从ERP系统中扣除,并自动同步至系统。
取消订单:主页。在我们的系统中,订单可以在付款成功之前取消。取消订单时,应扣除冻结库存(即应取消占用库存)。
申请退款:如果系统定义在货物支付后可以在装运前进行退款申请,如果退款成功(商家操作“同意退款”或系统将自动检查超时),退款将需要被扣除和冻结库存。
申请退货:如果系统定义为申请货物交付后可以退货,如果退款成功且供应商已收到货物,则需要增加总额库存(商户操作“确认收货”或系统自动确认收货)。如果ERP系统自动同步库存,总数库存将在企业资源规划系统中增加,并自动与系统同步。
附件:订购流程图

三、活动处理库存
实际操作:由于数据库中没有活动的库存段字,所以原始公式:可用库存=合计库存-冻结库存,不能统一修改;在实际开发中,冻结库存=普通商品冻结库存活动库存和其他活动库存的总和将保留在活动表中,其中包括字活动库存和已用库存。
1.活动的概念库存
设置特价时,可以设置活动库存。目的是限制特别优惠的数量(设定的活动库存不能大于总数库存),同时确保当活动库存用完时,参与活动的商品数量将以原价购买。
2.数据库库存相关字段
商品清单相关字段:合计库存,冻结库存;活动表的相关字段落:活动库存,活动冻结库存。
可用的普通商品库存=总计库存-冻结库存-活动库存
有效可用商品库存=有效库存-有效冻结库存
(事实上,在我们的开发过程中,由于最初的数据库设计未能考虑到后面的扩展,当页面取数据时,普通商品是可用的库存=总计库存-冻结库存。当以后增加促销活动时,如果需要改变,这个公式会有太大的影响。因此,我们将保持原始公式不变,并让冻结库存=普通货物冻结库存和活动库存之和。这个问题突出了技术框架的重要性。)
3. 库存订购过程中的逻辑
如果活动成功创建,相应的商品需要将活动库存A从总库存B中分离出来。此时,可用的普通商品库存为(B-A),可用的特殊商品活动库存为(A)。
当用户下订单时,他以有效价格购买C件商品,那么普通商品的可用库存仍然是(B-A),特殊商品的可用库存是(A-C),而活动的冻结库存是C件。
当活动库存不足/超过有限数量时,将订购D件,其中D1件将以特价购买,D2件将以普通价格购买。那么普通商品的可用库存是(D2),普通商品的冻结库存D2,特殊商品活动的可用库存是(D1),活动的冻结库存是D1。
当特价商品不可用时库存,特价商品售完,所有商品以普通价格购买。如果订单在活动期间被取消、退回或退回,活动库存将被重置为零,剩余数量可以继续以特价购买。
4.活跃商品的扣减和回滚库存
在销售活动商品后,添加活动冻结库存,如果在活动期间订单取消/退款成功,则减少活动冻结库存;普通商品库存不受影响,但特殊商品的采购数量需要增加/减少。
如果ERP系统需要调整冻结库存和由于在活动期间交货而导致的总额库存,此时,无论货物是否在销售,冻结库存和总额库存都将直接扣除,因为ERP系统没有单独的仓库,并且库存是自动同步的,总额库存肯定会减少,并且还需要扣除冻结库存。
活动结束:如果活动库存为100件,售出20件,则商品的活动库存将被清除,活动冻结库存也将在活动冻结库存的数量合并到冻结库存后被清除。最终冻结库存增加了20。此外,随着活动库存变小,普通商品库存的可用性变大(相当于返回未使用的活动库存)。
四、礼品处理库存
礼品库存基于我当前的企业管理软件中的业务系统进行解释。我们当前的礼物总数库存和礼物活动库存在后台被手动设置,因此这是一个单独的逻辑。
礼品表中的相关字段:总礼品库存,可用礼品活动库存;活动表的相关字段:礼品活动库存,可用礼品库存;
礼品总数库存可以手动设置,并且将为每个使用礼品的活动设置相应的礼品活动库存。礼品活动库存可用=礼品总额库存-礼品活动库存。(请注意,此礼品可用库存,这是指添加礼品活动时可以设置的最大活动数库存数量)
购买商品时,赠送的礼品不能大于礼品活动库存;如果没有免费礼品活动库存,并且礼品不够,应以友好的方式提示客户。提交订单后,如果赠送礼品,相应的礼品活动库存和礼品总额库存将自动扣除。
在活动有效期内,取消订单/退货,如果退款被批准,礼品活动库存和礼品总金额库存将自动添加。活动失败后,取消订单/退货,如果退款被批准,礼品总额将自动增加库存。当活动失败时,相应的礼品活动库存被清除。
五、前端库存显示器
按照正常逻辑:如果该商品没有特殊价格/秒杀活动,可以按普通价格直接购买,表明该普通商品可用库存;如果商品有第二次促销/特价,则应显示活动商品库存。
但是,存在这样一种情况,即一些购买的一批商品需要按照现行价格计算,而其余商品需要按照正常价格计算。那么拿普通商品库存/主动商品是错误的。
因此,我们最终使用了称重后的普通商品可用量库存和有效商品可用量库存的总和(即总量库存-冻结量库存-有效冻结量库存)。