
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
对于网购相信大家已经不陌生了,但是对于网购的逆向操作,还是有一些人并不是很明白他的后台程序是怎么运行的,对于开发人员来说,有时候逆向设计比正向设计还要复杂多变。
今天,我们就通过对案例的分析来了解一下,对于电商平台的逆向操作是如何开发设计的。
下面先看下取消订单一个比较典型的业务流程,我拿京东作为举例。
发起申请
当在京东上下过一单之后,在我的订单里面可以看到这个订单的详情,这时候会看到“申请退款”这个选择。这里叫法不一样,有的平台这里叫做“取消订单”,这个时候你可以进行申请。
取消中
然后你可以看到取消的状态,刚刚取消后查看状态为“取消处理中”,下面的进度里面可以看到是正在进行仓库的拦截。因为订单已经产生了,系统会将订单推送到仓库系统进行生产,库内作业是有一段时间的,要拣货、打包等。如果此时订单还没出库,你发起取消订单的申请,这时候会到仓库进行拦截,找到这单告诉仓库的人不要发了。如果订单已经出库,这时候你再发起取消订单的申请,那么你的申请可能会失败,一般主流的做法是可以收货的时候进行拒收或者申请售后退货。但是要付出代价的,有的会扣你的运费,有的会扣经验值;也有免费的,但是有次数限制。
取消完成
当取消成功后,取消状态会变成已经完成,订单状态会变成已经取消。
上面只是取消订单一个比较简单的场景:一单只有一个商品。
如果一张订单中有多个商品,并且被拆成多个包裹后事情就变得复杂了。
首先一个问题是,多个包裹支不支持按照包裹维度进行取消?不支持的话只能整单取消,用户体验不是很友好,所以主流电商平台都是支持按照包裹维度进行取消的。
那么问题就来了
先看下运费的问题
原来你因为买了多个商品,达到了免邮的标准,这时候你取消其中一个包裹,那么可能达不到免邮的条件了,这个时候怎么办?
如果不收运费这其实是一个业务的漏洞,有的电商平台为了用户体验更好些,或者是避免后台逻辑过于复杂是真的没有收运费的,主要是靠风控体系来控制风险,如果一个人经常采用这种方式套运费的话是会被拉黑的。但是大部分的电商平台还是需要收运费的,当发现取消一个子单后,剩下的订单无法满足包邮的条件,那么需要用户支付运费,或者是从取消订单的退款金额里面把运费扣掉,或者是从你的虚拟账号里面把运费扣掉(比如扣你的积分)。
促销的相关问题
另外跟运费类似的是各种促销,满减、满赠、满返等也存在类似问题。
我们这里以满减作为例子,如果买了多个商品达到了满减的条件,享受了满减的优惠。当取消一个包裹单后如果满减的条件还满足,那么就可以正常取消。如果由于取消了这个包裹单满减条件达不到了,这个时候是需要把关联订单也一起取消的,不然也会存在业务漏洞。
资源回退问题
上面的条件都达到了可以正常取消订单,但是还需要考虑把生成订单时所占用的资源回退掉,这里主要是库存、券、积分等。
库存:生成订单的时候会先锁定库存,保证仓库可以正常生产,如果取消订单后,需要把这个库存释放,增加前台销售库存的可用量。具体库存的逻辑可以参考之前的文章电商技术解密—管好库存没那么容易
积分:生成订单后也会给用户发放一些虚拟资源,例如积分、经验值。订单取消后也需要把之前发放的资源进行回收。
优惠券:如果之前下单的时候使用了优惠券,那么订单取消后也需要把原来用掉的优惠券返还到用户的账号中,方便用户后面继续使用。
可以看到一个简单的取消订单操作背后的业务逻辑是多么的复杂。上面的流程是用户自己发起取消订单,还有一种情况也会触发取消订单这个流程。当你下单后没有在规定的时间内进行付款,那么系统会自动把你的订单进行取消。因为要释放资源,主要是库存的资源。
达内时代科技集团致力于培养面向电信和金融领域Java、C++、C#/.Net、3G/Android、3G/IOS、PHP、嵌入式、软件测试、UID、网络营销、网络工程、会计、UED、web、Unity3D、大数据、童程童美等17大方向中高端软件人才课程与少儿教育课程。选择太原电商培训,不再孤军奋战,轻轻松松做IT高薪白领。太原达内培训带领有明确目标的学子迈向成功之路!想找工作的求职者可以加QQ:3373924515(太原达内就业服务部)咨询了解。