Java生鲜电商平台-订单中心服务架构与异常订单逻辑

订单架构实战中阐述了订单系统的重要性,并从订单系统的信息架构和流程上对订单系统有了总体认知,同时还穿插着一些常见的订单业务规则和逻辑。上文写到订单的拆单部分时搁置了,现在接上文继续剖析订单中心的后台核心业务模块。

 

上文讲完了订单正向流程,本文从订单逆向流程继续一窥订单中心全貌。

订单正向流程相对常规,业务虽然从商品中心,物流,会员,仓库,内容等各大模块进行数据交互,但涉及的业务逻辑易于理解,所以难度并不大。

但在订单逆向流程中,业务流程和逻辑则相对复杂。因为在订单正向流程中,每一个环节都有可能触发逆向订单任务流;而在订单正向任务流中,每一个子环节上的商品在后台出库发货流程中所处的具体节点不一致,所以不同节点触发的订单逆向流程的处理规则则有差异。

订单逆向流程

定义:订单逆向流程是为了解决在订单流程中出现的退货退款的业务流程。在前端订单状态下,各个环节都有触发的可能,而订单的不同节点触发订单逆向流程的处理方式不同。订单触发订单逆向流程,可以按照主体与客体划分,可分为用户端触发和商家端触发两种。

用户主动发起

 
 

1. 待付款取消订单

说明:待付款订单取消订单分为两种情况:

用户主动取消;

超时系统自动取消,此时订单状态变更为已取消。

在待付款订单状态下,取消订单无需客服审核。流程图如下:

 
 

2. 待发货取消订单

说明:在待发货订单状态下取消订单时,此时应根据订单此时所在的节点作出处理。

由于订单在支付完成后,发货单可能已经推送至WMS,甚至已经交接发货,状态未及时回传更新。为避免货款两失,要先暂停订单出库,在调度中心查询订单是否推送至仓库。

若尚未推送至仓库,则停止推送至仓库;若已经推送至仓库,则去wms中心去拦截,拦截成功则暂停出库。

若暂停失败,则拒绝取消订单申请,回复“订单已经出库”;

若暂停成功,取消订单申请通过,则进入退款流程,同时通知调度中心该订单取消。WMS订单进入返库流程。

 
 

3. 待收货/交易成功退货

说明:在用户提交退货申请后,需经过客服审核。审核通过则回到原有状态,审核通过后则进入退货流程并告知用户退回地址及收件信息,此时进入退货流程。系统生成退货入库单,当仓库收货后,进行退款。

在待收货状态下平台设计者仍需考虑退货是否全退的问题。当SKU全退时,原订单则中止进入交易关闭状态。当订单中发生部分退货时,原订单的状态不变,维持待收货或交易成功状态,同时退货的部分生成交易售后订单。剩余未退货部分仍然允许申请售后。

 
 

注意:在订单流程逆向流程中,涉及到财务数据的处理时 ,为了保证财务数据的真实性及可追溯性(这与会计数据的处理原则有关,具体问下会计或者财务同学),都不能直接在原订单状态下修改,因此在设计订单逆向流程时应注意这一点。

Java生鲜电商平台-订单中心服务架构与异常订单逻辑的更多相关文章

  1. Java生鲜电商平台-SpringCloud微服务架构中核心要点和实现原理

    Java生鲜电商平台-SpringCloud微服务架构中核心要点和实现原理 说明:Java生鲜电商平台中,我们将进一步理解微服务架构的核心要点和实现原理,为读者的实践提供微服务的设计模式,以期让微服务 ...

  2. Java生鲜电商平台-SpringCloud微服务架构中分布式事务解决方案

    Java生鲜电商平台-SpringCloud微服务架构中分布式事务解决方案 说明:Java生鲜电商平台中由于采用了微服务架构进行业务的处理,买家,卖家,配送,销售,供应商等进行服务化,但是不可避免存在 ...

  3. Java生鲜电商平台-SpringCloud微服务架构高并发参数优化实战

    Java生鲜电商平台-SpringCloud微服务架构高并发参数优化实战 一.写在前面 在Java生鲜电商平台平台中相信不少朋友都在自己公司使用Spring Cloud框架来构建微服务架构,毕竟现在这 ...

  4. Java生鲜电商平台-SpringCloud微服务架构中网络请求性能优化与源码解析

    Java生鲜电商平台-SpringCloud微服务架构中网络请求性能优化与源码解析 说明:Java生鲜电商平台中,由于服务进行了拆分,很多的业务服务导致了请求的网络延迟与性能消耗,对应的这些问题,我们 ...

  5. Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲

    Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲 Java生鲜电商平台:   微服务是当前非常流行的技术框架,通过服务的小型化.原子化以及分布式架构的弹性伸缩和高可用性, ...

  6. Java生鲜电商平台-商品基础业务架构设计-商品设计

    Java生鲜电商平台-商品基础业务架构设计-商品设计 在生鲜电商的商品中心,在电子商务公司一般是后台管理商品的地方.在前端而言,是商家为了展示商品信息给用户的地方,它是承担了商品的数据,订单,营销活动 ...

  7. Java生鲜电商平台-优惠券系统的架构设计与源码解析

    Java生鲜电商平台-优惠券系统的架构设计与源码解析 电商后台:实例解读促销系统 电商后台系统包括商品管理系统.采购系统.仓储系统.订单系统.促销系统.维权系统.财务系统.会员系统.权限系统等,各系统 ...

  8. Java生鲜电商平台-促销系统的架构设计与源码解析

    Java生鲜电商平台-促销系统的架构设计与源码解析 说明:本文重点讲解现在流行的促销方案以及源码解析,让大家对促销,纳新有一个深入的了解与学习过程. 促销系统是电商系统另外一个比较大,也是比较复杂的系 ...

  9. Java生鲜电商平台-用户管理的架构与实战

    Java生鲜电商平台-用户管理的架构与实战 在电商后台中,用户管理是运营人员管理用户的模块.这里的用户区别于运营人员,会在权限的角色管理中分别阐述.这里的用户包含平台的一般用户,会员用户等.本文将分享 ...

随机推荐

  1. adb devices无法连接mumu模拟器

    解决方案: 如果你的android环境能够直接访问 adb 的相关指令.只需要把mumu模拟器打开 然后打开cmd -> 输入 adb connect 127.0.0.1:7555 就能直接连上 ...

  2. windows系统搭建Python环境

    1.首先访问http://www.python.org/download/去下载最新的python版本. 2.安装下载包,一路next. 3.为计算机添加安装目录搭到环境变量,如图把python的安装 ...

  3. java遍历request.getParameterMap()中的值

    在开发过程中发现request对象有提供一个request.getParameterMap()方法可以获取到从前端请求发送的参数Map. 但是在使用get()方法通过key(键)去获取这个参数Map中 ...

  4. C#函数(构造函数)的重载

    using System; namespace test { class Program { static void Main(string[] args) { Cat cat = new Cat() ...

  5. JPA的基本注解

    场景 JPA入门简介与搭建HelloWorld(附代码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103473937 ...

  6. SpringBoot启动项目时提示:Error:java: 读取***.jar时出错;

    场景 在IDEA中新建SpringBoot项目后,修改了默认的Maven仓库和配置文件,然后在启动项目时提示: Error:java: 读取\org\assertj\assertj-core\3.11 ...

  7. linux下unzip解压报错“symlink error: File name too long”怎么办?提供解决方案。

    点击上方↑↑↑蓝字[协议分析与还原]关注我们 " 分享unzip工具的一个bug." 最近在研究菠菜站,中间用到了Spidermonkey,碰到一些小波折,在这里分享出来,以便大家 ...

  8. JAVA微信企业付款到零钱(十分钟搞定),附完整DEMO下载

    最近帮朋友做了一个简单的微分销系统,实现从企业付款到零钱分润的功能,简单记录一下微信企业付款到零钱的开发过程, 主要就是按规则封装好请求参数调用微信接口,涉及一些签名校验: A.接口流程 1. 获取用 ...

  9. gcc栈溢出保护机制:stack-protector

    关键词:stack-protector.stack-protector-strong.stack-protector-all等等. 1. gcc栈保护机制stack-protector简介 gcc提供 ...

  10. 【转载】XSS攻击和sql注入

    XSS攻击: https://www.cnblogs.com/dolphinX/p/3391351.html 跨站脚本攻击(Cross Site Script为了区别于CSS简称为XSS)指的是恶意攻 ...