# 订单系统设计

订单系统地位:电商业务最复杂的核心系统,同时管理和跟踪订单的信息和数据。是整个交易线上重要的对客环节。构建在产品、促销、仓储、会员、支付等系统之上,起承上启下的作用

业务架构:

  • 订单服务 对用户提供的服务和页面,像订单列表、订单详情、在线下单等。另外还包括向公共业务模块提供的订单数据服务
  • 订单逻辑 核心,负责管理订单创建、支付、生产、确认、完成、取消等订单流程。另外还涉及复杂的状态规则引擎、支付金额计算、库存增减等
  • 底层服务 订单服务接入的由公共模块提供的服务,比如产品、促销、仓库、支付等

订单服务的核心数据:

  1. 基础信息:订单类型、编号、订单状态、来源渠道
  2. 用户信息:用户编号、会员信息、电话、收货地址信息
  3. 商品信息:购买商品、数量、单价、运费、产品快照信息
  4. 物流信息:物流公司、物流单号、物流状态
  5. 支付信息:支付流水号、商品总金额、运费、促销活动金额、优惠券金额、其它优惠金额、优惠总金额、实付金额
  6. 促销信息:活动信息、优惠券信息、其它优惠
  7. 其它信息:发票、下凌晨

订单流程引擎:

抽象出订单创建到订单完成,中间整个状态流转过程,制定标准流程。然后基于流程组建流程引擎模块,对订单流程进行管理。

正向流程:一次顺利的购物过程,信息的流转

逆向流程:修改订单、取消订单、退款、退货等各种动作引起的信息流转过程

正向核心流程:

  1. 订单创建:用户下单后,系统查询涉及的商品的信息、优惠信息、账户的会员权益信息、优惠活动信息,然后生成订单
  2. 订单支付:支付成功后,基于商品不同渠道或不同仓库、运输要求、包裹限制等进行订单拆分
  3. 订单生产:订单分发到仓库,仓库对商品进行打单、捡货、包装、配送等
  4. 订单确认:售后服务开始
  5. 订单完成:收货后X天

减库存方式:

下单减库存:下单成功的同时库存减少

  • 优点:体验好,逻辑简洁
  • 缺点:恶意下单,真实用户购买受影响
  • 解决:
    • 设置订单有效时间
    • 限购
    • 风控

付款减库存:

  • 优点:减少无效订单
  • 缺点:三方支付存在时差,下单数目超库存
  • 解决:
    • 付款前额外检查
    • 产品层面增加提示

逆向流程:

订单状态机:现态、动作、次态

订单流程涉及与多个服务进行交互,系统间信息交互通常采用系统间服务调用、队列方式

上次更新: : 6 months ago