1.表
- 1.主订单表
- 2.子订单表
- 3.商品信息表
- 4.支付流水表
2.订单
1.订单的基本设计
2.拆单
所谓拆单一般指的是拆订单,而不是拆支付流水。一个订单中包含多个商品时,需要把其中一个或者几个商品进行分组,生成子订单。即一次支付对应多个订单的情况。
拆单的形式:
- 便于后期结算,按商家拆单。
- 便于商品发货,按仓库拆单。
拆单后涉及到一个问题,在付款的时候,虽然拆分多个订单,但是可能涉及到合并付款的情况。
需要注意的地方,所有的合并付款,拆单都是基于订单,不涉及到付款模块。
拆单设计到的问题
- 1.积分,优惠券,红包怎么分配到多个订单上
- 2.对账的时候,按主订单对账
主订单,子订单,商品表之间的关系
1.主订单
在支付的时候,使用的订单号是主订单号。
在对账的时候,按照主订单来对账。这样的话就不需要拆分支付流水了。
一个支付流水对应一个主订单,支付流水和其他子订单没有关系。2.子订单
记录该订单所有关联的商品信息。
一个主订单可能有一个或者多个子订单。3.商品信息表
记录商品信息,商品数量,商品价格等等。
3.支付流水
订单和支付实际上是两个业务,支付唯一影响订单的应该是订单的支付状态以及交易流水号等。
我们应该将订单和支付彻底分开,不要混在一起,即支付不需要考虑具体的订单的拆单。
4.退单
可能退子订单,也可能退整单。
用户选择要退款的商品,形成退款订单。
订单生成规则和正常购买订单的规则一样。根据商家判断是否形成多个子订单。
需要注意的点
退单的时候,多个子订单,涉及到了积分的使用。退的方式的要怎么处理。
5.流程
1.用户购买商品
同一个商家,形成一个主订单和一个子订单
N个商家,形成一个主订单和N个子订单
2.用户支付
修改主订单的支付状态
3.用户退款
生成退款订单
4.发货
根据子订单来发货
5.结算
根据订单状态和商家生成结算数据即可。