各位,今天老王给大家讲讲优惠券验证和库存抵扣的逻辑。
优惠券这种商品简直就是电商的宠儿。可能你几乎看不到任何没有优惠券的电商app。因为它足够简单,容易理解,使用方便,价值突出。
优惠券是有生命的,网上不同的举动会对他的生命特征产生很大的影响。
图表中将有六个状态。但老王发现,很多文章并没有详细解释这些状态,更多的是阐述具体的事实结果,而中间形成的过程一笔带过。
可能,我没有深究过这个问题,不能说到点子上。
比如,在从未使用到已使用的过程中,哪些场景会改变凭证发送到用户账户的状态?哪个系统用于使用优惠券?在使用过程中,前进后退的逻辑是怎样的?优惠券库存的逻辑是什么?
老王用一篇短文和大家快速梳理一下。
1.优惠券的验证
核销意味着使用优惠券。最核心的核销场景是订单核销,即用户在结算页面选择优惠券,商品以优惠券后的价格下单。
其中,券后价格的计算,在大中型工厂中,一般由价格域能力提供并显示到前台。当用户提交订单时,该优惠券的生命就结束了。
在提交订单时,交易系统需要通知优惠券系统优惠券已经在使用中。此时并不是真正的核销,而是一种中间状态,后面会讲到。
当用户发起支付并且支付成功后,这张优惠券就可以认为是真正的核销了。仍然是交易系统通知优惠券系统改变优惠券的状态。
但是,如果订单逾期或支付失败,此优惠券的状态将从“使用中”(底部状态)变为“未使用”。
如果你不想付出,你可以结婚回家。没有办法。
2.优惠券的库存流量
细心的你还会发现,我们用优惠券下单后,只要订单没有取消,那么这张优惠券就不能再用了。原因是什么?
其实这个时候的券是处于临界状态的,也就是所谓的“抢占”。
什么是“先占”?即优惠券被暂时占用,在某个节点,被占用的优惠券可能会被再次退回。或者,干脆不还,直接用。
好了,我们从头梳理一下。发送到用户账户的优惠券满100-10,库存1。
用户提交订单,抢先优惠券,交易通知优惠券,锁定优惠券库存。
创建新订单,预处理,提交订单,并生成优惠券订单。
确定订单的支付是否完成,如果没有完成,则取消订单,释放刚刚预订的优惠券,并更改其状态。
如果订单已经支付,会通知优惠券,解除预占,直接扣除真实的优惠券库存。
当交易系统更改订单状态时,需要通知上游凭证系统实时更新凭证状态。
取消优惠券和预占库存应该更好理解。但是很多产品生从来没有关注过产品的技术细节和实现形式。想要变得专业,就需要深入学习这些内容,不要总被低质量的电商文章洗脑。
上面说的交易系统是什么?给大家简单科普一下,大部分同学眼中的交易就是下单、开单、订单类型、订单状态。实际上,交易包含三大领域,即购买领域、履行领域和反向领域。
购买域,从下单到付款完成。
绩效领域,从下单到完成订单。
售后域,从下单到售后服务有效的时间。
每个领域都有不同的产品能力,这里面的细节太多了。先扔个图,先关注一下,后面蹲着看文章。