在网购的流程中 , 大家一般接触的比较多的都是正向流程 , 即下单的流程:浏览商详、加入购物车、提交订单、确认收货等 。但是系统设计的时候往往会发现逆向流程比较正向流程更加的复杂 , 大家经常接触的逆向流程一般主要两类:取消订单和售后退货 。
今天先跟大家聊下取消订单背后的逻辑 , 对用户来说只是一个简单的申请取消的按钮 , 但是后台确实做了比较复杂的逻辑 。例如要判断订单能不能取消?关联订单需不需要一起被取消?应该退多少钱给用户?等等一系列的问题 。
下面先看下取消订单一个比较典型的业务流程 , 我拿京东作为举例 。
当在京东上下过一单之后 , 在我的订单里面可以看到这个订单的详情 , 这时候会看到“申请退款”这个选择 。这里叫法不一样 , 有的平台这里叫做“取消订单” , 这个时候你可以进行申请 。
然后你可以看到取消的状态 , 刚刚取消后查看状态为“取消处理中” , 下面的进度里面可以看到是正在进行仓库的拦截 。因为订单已经产生了 , 系统会将订单推送到仓库系统进行生产 , 库内作业是有一段时间的 , 要拣货、打包等 。如果此时订单还没出库 , 你发起取消订单的申请 , 这时候会到仓库进行拦截 , 找到这单告诉仓库的人不要发了 。如果订单已经出库 , 这时候你再发起取消订单的申请 , 那么你的申请可能会失败 , 一般主流的做法是可以收货的时候进行拒收或者申请售后退货 。但是要付出代价的 , 有的会扣你的运费 , 有的会扣经验值;也有免费的 , 但是有次数限制 。
【怎样在京东取消订单 京东取消订单在哪里找】
当取消成功后 , 取消状态会变成已经完成 , 订单状态会变成已经取消 。
上面只是取消订单一个比较简单的场景:一单只有一个商品 。
如果一张订单中有多个商品 , 并且被拆成多个包裹后事情就变得复杂了 。
首先一个问题是 , 多个包裹支不支持按照包裹维度进行取消?不支持的话只能整单取消 , 用户体验不是很友好 , 所以主流电商平台都是支持按照包裹维度进行取消的 。
那么问题就来了
先看下运费的问题
原来你因为买了多个商品 , 达到了免邮的标准 , 这时候你取消其中一个包裹 , 那么可能达不到免邮的条件了 , 这个时候怎么办?
如果不收运费这其实是一个业务的漏洞 , 有的电商平台为了用户体验更好些 , 或者是避免后台逻辑过于复杂是真的没有收运费的 , 主要是靠风控体系来控制风险 , 如果一个人经常采用这种方式套运费的话是会被拉黑的 。但是大部分的电商平台还是需要收运费的 , 当发现取消一个子单后 , 剩下的订单无法满足包邮的条件 , 那么需要用户支付运费 , 或者是从取消订单的退款金额里面把运费扣掉 , 或者是从你的虚拟账号里面把运费扣掉(比如扣你的积分) 。
促销的相关问题
另外跟运费类似的是各种促销 , 满减、满赠、满返等也存在类似问题 。
我们这里以满减作为例子 , 如果买了多个商品达到了满减的条件 , 享受了满减的优惠 。当取消一个包裹单后如果满减的条件还满足 , 那么就可以正常取消 。如果由于取消了这个包裹单满减条件达不到了 , 这个时候是需要把关联订单也一起取消的 , 不然也会存在业务漏洞 。
资源回退问题
上面的条件都达到了可以正常取消订单 , 但是还需要考虑把生成订单时所占用的资源回退掉 , 这里主要是库存、券、积分等 。
库存:生成订单的时候会先锁定库存 , 保证仓库可以正常生产 , 如果取消订单后 , 需要把这个库存释放 , 增加前台销售库存的可用量 。具体库存的逻辑可以参考之前的文章电商技术解密—管好库存没那么容易
积分:生成订单后也会给用户发放一些虚拟资源 , 例如积分、经验值 。订单取消后也需要把之前发放的资源进行回收 。
优惠券:如果之前下单的时候使用了优惠券 , 那么订单取消后也需要把原来用掉的优惠券返还到用户的账号中 , 方便用户后面继续使用 。
具体流程可以看下面的业务序列图
可以看到一个简单的取消订单操作背后的业务逻辑是多么的复杂 。上面的流程是用户自己发起取消订单 , 还有一种情况也会触发取消订单这个流程 。当你下单后没有在规定的时间内进行付款 , 那么系统会自动把你的订单进行取消 。因为要释放资源 , 主要是库存的资源 。
取消订单后台的业务逻辑就先介绍到这里 , 可能有些遗漏或者错误 , 欢迎大家拍砖、讨论!
-- 展开阅读全文 --
推荐阅读
- 聩组词聩的组词聩字怎么组词
- 蒸汽眼罩能带着睡觉吗
- 小马宝莉图片大全 小马宝莉人物介绍
- 积极正能量的经典短句 积极正能量的经典短句工作
- qq免费靓号申请注册网址 qq免费靓号怎么申请
- 魔方拆了怎么装图解 魔方怎么拆
- 幼儿教师誓言一句话 幼儿园老师教育格言
- 电脑pdf免费编辑器 免费的pdf编辑器推荐
- 物流可以托运宠物吗