订单是交易系统的核心聚合根。 模型设计得好,后续每条链路都有清晰的数据支撑; 模型设计得差,每加一个新功能都要给老字段打补丁。


一、从合同到模型

第一章说过:订单是一份合同的数字化表达。

那么,一份合同包含什么?

  1. 合同主体:谁和谁之间的合同(买家、卖家、平台)
  2. 合同标的:合同约定交换什么(哪些商品、多少数量)
  3. 合同金额:以什么价格成交(总价、实付、各类优惠)
  4. 合同状态:合同现在处于哪个履行阶段
  5. 合同附属信息:收货地址、下单时间、特殊约定

这五类信息,构成了订单模型的骨架。


二、订单的层次结构

一笔购物,可能涉及多个商家、多种商品。

业界电商系统通常采用三层结构来表达订单层次:

订单层次结构.png

结算单(CheckoutOrder)