关于电商库存扣减的解决方案

目录

下单锁定库存    

付款减库存

采用虚拟库存和实际库存,redis+mysql(推荐)

为什么要预扣?

怎么检测库存不一致?


电商中很常见的就是库存扣减的问题了,那么究竟有哪些解决方案以及各自的优缺点呢?一共总结有几种方式

下单锁定库存    

下单接口就把库存锁住,先到先得

   优点:可以解决库存减扣问题,不会出现超卖的问题

    缺点:体验差,如果只下单未付款,库存被锁定,让有意愿购买的用户无从下单,对销售业务有很大影响;造成恶意下单,最后不买了,而想买的人买不到

付款减库存

等付款时再减库存,前面动作随便下单

优点:防止恶意买家大量下单用光库存,避免下单减库存的缺点

缺点:付款时需要再主动调用一下扣库存的操作;付款时发现库存不足了,用户体验也比较差,如果并发没有控制好就会出现超卖的现象

下单页面显示的库存数可能不是最新的库存数,而是比实际库存要多,而库存数用完后,下单页面的库存数没有刷新,出现下单数超过库存数;若支付的订单数超过库存数,则会出现支付失败。或者是超卖的现象

采用虚拟库存和实际库存,redis+mysql(推荐)

使用虚拟销售库存和实际库存不仅可以对在途库存、预定货进行销售增加销量而且还可以保证仓库商品库存进行有效管理。

A、未付款订单给予20-40钟付款等待时间,未付款自动释放虚拟销售库存,尽量减少库存占用,避免影响销售。

B、 下单扣减虚拟销售库存,同时营销人员和产品部可以根据商品到货情况和生产情况进行提前增加虚拟销售库存,可以提前实现销售。

C、 商品按实际出库进行扫码出库进行扣减,从而保证业务数据和仓库运营数据能够有效同步管理,库存准确性,及时管理库存;

优点:扣redis库存=锁定库存,但是不影响mysql实际库存,运营可以看到实际库存进行管理

缺点:需要有一个库存不一样的同步

为防止恶意消耗库存,可针对userid下单未付款的情况进行限量

为什么要预扣?

说了这么多,为什么要预先把库存扣掉?

如果直接扣除mysql库存,不好管理,不知道实际还剩多少库存,而预扣可以先扣redis,成功则扣mysql,不成功则还库存,所以mysql只有真正卖出去才扣库存,保证了数据的准确性

如果redis>mysql,可以下单,但是不能出库,后续要退款,这种情况很少

如果redis<mysql,不能下单,但是实际有库存,影响销售业绩。可以设置库存同步时间点,在redis库存<mysql的时候进行同步

保证最终库存不会有问题

怎么检测库存不一致?

如果不一致,可以在redis库存为0的时候检测是否需要同步,注意没有还库存的要过滤出去,可以根据商品查询未付款的订单数,还库存数=数据库库存 - 下单未付款数

如果极端情况在还库存的时候发生 下单未付款的订单付款了怎么办?没有关系,因为数据库库存和下单未付款数同步-1

  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是小酒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值