电商库存扣减

方案1:在下单就锁定库存
    优点:可以解决库存减扣问题
    缺点:体验差,如果只下单未付款,库存被锁定,让有意愿购买的用户无从下单,对销售业务有很大影响;

方案2:支付后减扣库存
    优点:防止恶意下单,只要有足够的实际库存,随便多少意向客户下单
    缺点:下单页面显示的库存数可能不是最新的库存数,其他用户可能提示库存不足,可能出现超卖问题。

方案3:调起支付界面前锁定库存

    优点:防止恶意下单,只要有足够的实际库存,随便多少意向客户下单
    缺点:体验差,有可能在支付时提示库存被其他用户锁定,提示库存不足

方案4:下单占库存根据库存大小决定库存锁定时间

     库存充足下单占库存,设定库存最大占用时间,按库存大小限购数量按策略缩减库存占用时间

 

 

具体以哪种方案为主还是要看公司的业务做决定


 

下面主要讲解方案3 支付前锁定库存的的实现步骤,以下是使用到的关键表

-------------------------------------------------------------------------------------
订单表
订单唯一编号     库存锁定状态(1库存已锁定 2库存已释放 3库存已确认,库存减扣成功)
-------------------------------------------------------------------------------------
订单详细表
订单编号      商品id     购买数量
-------------------------------------------------------------------------------------
商品库存表
商品id     库存数量     实际锁定库存数量  预锁定库存数量   限购数量
-------------------------------------------------------------------------------------

A商品库存 1个


用户1  下单1个
用户2  下单1个


业务场景及解决方式:
1.支付前预占库存 :用户1和用户2可能同时点击支付按钮,此时对于商品锁定库存来说只能有一个用户会锁定A商品的库存,剩下一个肯定锁定失败,此时应该提示其中一个用户(库存可能不足,请稍后再试),这里更新库存减扣应该都有前置条件的或者说版本号

2.限制支付时间,需要设置一个支付时间

(设置三方支付过期时间为30分钟)调起支付页面锁定库存30分钟,30分钟后还未支付则还原预减库存

3.检测恶意下单用户加入到店铺黑名单

4.加入限购

5.优化方式
另一个用户跳转到三方支付界面,
如果此用户取消支付,客户端应该发送一条消息告诉服务端恢复库存锁定,
如果此用户支付成功,客户端应该发送一条消息告诉服务端确认减扣库存,
客户端可能因某种情况发送失败,此时要考虑使用定时任务恢复超过多久库存还处于(根据锁定状态)锁定中的订单商品库存,应该先调用支付系统关闭原有未完成支付的订单,然后再恢复商品锁定库存
支付系统异步通知支付成功修改库存,此时根据库存锁定状态进行不同的业务处理(1库存已锁定 2库存已释放 3库存已确认,库存减扣成功)
 

6.

想到了再补充

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值