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. Spring Security从后台数据库查询实现登陆控制

    Spring Security框架是一个控制登陆的框架,通过配置文件获取后台的用户名及密码,进行比较进行登陆判断 使用步骤 1.导入依赖 <!-- 身份验证 --> <depende ...

  2. Java描述设计模式(07):适配器模式

    本文源码:GitHub·点这里 || GitEE·点这里 一.适配器模式简介 1.基础概念 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在 ...

  3. (六十一)c#Winform自定义控件-信号灯(工业)-HZHControls

    官网 http://www.hzhcontrols.com 前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kww ...

  4. Wpf Dispatcher.BeginInvoke((Action)delegate{}));

    <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/w ...

  5. ASP.NET Core 2.2 WebApi 系列【一】搭建ASP.NET Core WebApi项目

    一.步骤 从“文件”菜单中选择“新建”>“项目” . 选择“ASP.NET Core Web 应用程序”模板,再单击“下一步” . 将项目命名为 NetCoreWebApi,然后单击“创建” . ...

  6. Eclipse中Junit测试中@Before不执行

    场景 在使用Junit进行单元测试时,一部分获取JPA的entityManager的代码将其放在了 @Before标注的方法中,这样每次执行@TEST标注的方法时会首先执行@Before标注的方法. ...

  7. Dynamics CRM - js中用webapi基于fetchxml查询遇到的问题 -- Invalid URI: The Uri scheme is too long.

    最近用WebApi做基于Fetchxml的查询的时候,遇到一个很蛋疼的报错:Invalid URI: The Uri scheme is too long. 检查了整个URL,也没发现有什么问题. - ...

  8. retrying failed action with response code: 403

    0x00 Event [2019-09-24T19:22:31,655][INFO ][logstash.outputs.elasticsearch] retrying failed action w ...

  9. Kafka学习(一)

    官网 kafka.apache.org 集群部署 消息中间键 --> 分布式流式平台 Kafka Streaming Flume: 1个进程包含三个角色 source channle sink ...

  10. python3字符串常用方法

    整型和布尔值的转换: bin -- 十进制转二进制 int("1101",2) -- 二进制转十进制 十进制转二进制的算法 除2 取余,获取的所有余数从下往上进行计算 二进制转十进 ...