大家伙,今天老王跟大家,来聊聊优惠券核销和库存扣减逻辑。
优惠券这款产品,简直是电商的宠儿,可能你几乎看不到哪个电商app没有优惠券的。因为它足够的简单,易懂,使用方便和价值突出。
优惠券是有生命的,线上的不同动作,会对他的生命特征产生很大影响。
会出现图内的6种状态。不过,老王发现很多文章都没有把这些状态很细致的说明,更多的是阐述具体的事实结果,而中间形成的过程却一带而过。
可能是,并没有深究过这个问题,无法说到点子上。
比如,从未使用到已经使用的过程中,发到用户账户的券是基于哪些场景会变更状态的?究竟是哪个系统去使用的券?使用过程中,正逆向是什么逻辑?券库存又是什么逻辑?
老王用一篇短文,跟大家快速梳理下。
1. 优惠券的核销
核销,意味着优惠券的被使用,核心的核销场景是下单核销,即用户在结算页选券,商品以券后价下单。
其中,券后价的计算,在中大厂,一般会由价格域能力提供,并展示到前台。当用户提交订单的一刻,这张券的生命就走到了“尽头”。
订单提交的一刻,需要交易系统告知优惠券系统,这张券已经在使用过程中,此时并不是真正的核销,是个中间态,后面会讲。
当用户发起支付,并支付成功后,这张券,才算是真正的核销。仍然是由交易系统告知优惠券系统,变更优惠券的状态。
不过,如果订单过期未支付,或支付失败,这张优惠券状态会从使用中(底层状态)变更为未使用。
想不给钱,就娶回家,门都没有。
2.优惠券的库存流转
细心的你还会发现,我们用券下单后,只要订单未取消,那这张券就没法再使用,这究竟是什么原因?
其实,此时的券处于一个临界状态,叫做“预占“。
何为”预占“?即优惠券被临时占用掉,后面在某个节点,可能再将占用的券归还。或者,干脆直接不还,直接用掉这张券。
好,我们从头开始梳理,发到用户账户优惠券是满100-10,库存为1。
-
用户提交订单,预占优惠券,交易通知优惠券,锁定券库存。
-
新建订单,预处理,提交订单,生成用券订单。
-
判定订单是否支付完成,未支付完成,订单取消,释放刚才预占的优惠券,并更改其状态。
-
订单已支付完成,告知优惠券,预占解除,直接扣减真实优惠券库存。
交易系统在订单的各个状态变更时,都需要通知上游券系统,实时更新券的状态。
优惠券的核销和预占库存,应该比较好理解。只是,很多产品同学,压根没有关注过技术细节和产品的实现形式。如果你想自己变得专业,是需要深入学习这些内容的,不要总被低质量电商文章洗脑。
上面一直提到的交易系统是什么?给大家再简单科普下,大部分同学眼中的交易就是下单,拆单,订单类型和订单状态。而实际上,交易包含三大领域,分别是购买域,履约域和逆向域。
购买域,从下单开始,到支付完成。
履约域,从下单开始,到订单完成。
售后域,从下单开始,到售后服务有效期完成。
每个领域做不同的产品能力,里面细节过多,先抛出个图,先点波关注,后面蹲好文章。