如何设计一个完整的订单流程

最近一直在思考如何让订单这个服务进行插件化,在其他项目使用的时候也能直接将模块调用过去

基于cool-admin方法实现的思路同样适用于nestjs

设计订单状态

订单状态设计了很多种都不理想,因为每个模块的功能都不一样project也不一样
比如服务订单的状态是服务中/暂停服务/完成服务等
发货订单却是另一种比如,发货中/退货中等等

解决方案

我的打算是将status使用string,在所有订单的接口中过滤掉status的更改
在每个模块中使用ENUM或者type定义好每个模块中需要使用的状态,对每个业务定义好tag
在团队设计中使用规范约束状态
在shop模块中定义好shopOrderStatus,定义状态变更方法,要求所有的状态变更前使用此方法
在service模块中定义好serviceOrderStatus,定义状态变更方法,要求所有的状态变更前使用此方法

设计支付状态

微信支付的方式是有一个回调方法用于接收结果,不过既然都已经设计集中的订单模块了,应该是有一个更简单的方法的

所以我们可以在order中建立一个集中的支付结果处理功能,处理流程的初步设计如下

  • 支付->传递业务tag->订单号->支付成功hook->支付失败hook->退款hook
  • 回调通知->根据订单号执行成功/失败/退款hook

如何将hook传递给order模块,并且如何设计

是在模块加载的时候定义好各个模块的hook还是在业务中具体传入hook?

团队

团队招募

2025-8-18 14:53:38

思路

电商平台的订单拆单流程

2025-8-18 22:03:43

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
搜索