商城订单在支付后才扣库存是正确的做法吗

2019-08-10 01:24:31 +08:00
 emeab

新去的一家公司. 今天和同事说这个话题 他说他一直是商城订单在支付后才扣库存. 不做延迟任务. 查订单时候把 15 分钟未支付的订单关闭了. 这样的做法好吗?

5306 次点击
所在节点    问与答
19 条回复
airyland
2019-08-10 01:31:21 +08:00
非拼团订单要先锁库存,超时关闭订单时释放。不锁库存等多个用户同时下单,并发时扣库存就有坑了,然后还要给用户退款。感觉就是产品不行技术也不行,感觉可能要出超卖事故。
wunonglin
2019-08-10 01:36:25 +08:00
1、创建订单,状态标记未支付,锁定库存
2、支付完成后,标记订单状态完成,并减去库存
or
2、支付超时,订单标记关闭,并释放库存
limuyan44
2019-08-10 02:16:24 +08:00
下单了,支付了,然后告诉我库存没了,这种商家应该见一个拉黑一个。所以,从一个普通人角度,合适吗?
emeab
2019-08-10 02:19:43 +08:00
@airyland 我一直这样做..但是他说这样做太麻烦. 还拍着胸口对着我说 都是怎么做的...
emeab
2019-08-10 02:23:17 +08:00
@airyland 之前用的是 beanstalkd 做的队列
emeab
2019-08-10 02:25:59 +08:00
@limuyan44 他的意思是 支付之前 检查库存 如果够了才扣
illl
2019-08-10 02:37:46 +08:00
支付后扣库存会有小问题,有些限购一件的东西可以先锁单,多锁几单后再支付就破解了限购了
gam2046
2019-08-10 03:17:25 +08:00
从比较科学的流程上来说,产生订单时,即锁定库存,支付成功后减库存。订单取消、超时后取消锁定库存。

但是,如果你不是项目负责人,项目经理之类的角色,请遵循现行做法,同事们都是这么做,除非你想把他们的活抢过来都自己做。

工作不是一个讲求真理的地方,好或不好,对或不对,因时因地因人,都不一样。
hadesy
2019-08-10 03:51:22 +08:00
拍下减库存,存在恶拍风险;
付款减库存,存在超卖风险。
watzds
2019-08-10 06:24:39 +08:00
如果是没什么大并发,库存又比较多的,没啥大问题吧
一个小网站搞这么复杂干嘛
westoy
2019-08-10 07:20:08 +08:00
也就京东是下单锁库存吧

天猫超市和苏宁都是这种搞法, 下单锁一定时间库存, 超时间释放, 已下订单超过时间无库存付不了款

看电商平台调货能力了, 没什么对错的
yibin001
2019-08-10 07:33:58 +08:00
商品总量 10000
实际库存 加到购物车就-1,此时变成 9999
支付成功 实际库存 9999
超时不支付 时间库存+1,变回 10000
zhuzhibin
2019-08-10 09:46:10 +08:00
预扣->锁一波->支付成功->释放
xwbz2018
2019-08-10 10:49:13 +08:00
所以后台一般有几种锁定库存方式选择:

1. 加入购物车时
2. 进入结算页面
3. 结算完毕(支付成功)

要做的事情就是在这些操作时,修改购物车项或者订单项里的是否已分配库存标识并减去商品库存。超时释放库存是一定要有的。还要结合一些活动做一些调整什么的。
NerverLibis
2019-08-10 12:51:28 +08:00
@airyland 网易就是不锁 同时支付 其余退款 单件商品 10 元-200 万元
airyland
2019-08-10 13:11:08 +08:00
@NerverLibis 需要拣货确认的场景可以理解这样的形式,比如线上菜市场之类的,用户也好理解,也有给用户如何履约的选项或者说明。线上商品使用这种形式不会导致因为一个商品退款发生优惠券门槛满足不了,运费逻辑需要重新计算这些问题么,下了一个单一会又被退款导致用户不爽么?
emeab
2019-08-10 15:32:49 +08:00
@gam2046 这个是我负责的 他和我是同期进来的..
gamexg
2019-08-10 15:36:23 +08:00
@yibin001 #12 我习惯把购物车当收藏夹用,进购物车就扣减库存对商家有些不友好。
botian
2019-08-10 15:38:43 +08:00
肯定下单未支付的时候就要锁库存了,不然并发要死

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/590625

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX