主题
06 订单流程
版本:v3.0
所属端:前台商城
文档状态:已交付
1. 概述
1.1 背景与目标
订单是电商交易链路的核心环节,承载了从"用户决定购买"到"交易完成"的全过程。一个清晰、流畅的订单流程直接影响用户的付款意愿和复购率。
本模块的设计目标:
- 提供完整的交易闭环:下单→支付→发货→收货→完成
- 支持多种优惠叠加(促销、优惠券、积分抵扣),金额计算透明
- 支持订单超时自动关闭,释放库存资源
- 支持用户主动取消和确认收货
- 所有订单操作可追溯,保障交易安全
1.2 目标用户
| 角色 | 使用场景 |
|---|---|
| 会员 | 提交订单、支付、查看物流、确认收货、取消订单、申请售后 |
| 游客 | 不可访问订单功能,需先登录 |
1.3 功能范围
| 功能模块 | 说明 | 优先级 |
|---|---|---|
| 确认订单页 | 地址选择、商品确认、金额明细、优惠选择 | P0 |
| 提交订单 | 库存校验、订单生成、购物车清理 | P0 |
| 订单支付 | 模拟支付(支付宝/微信) | P0 |
| 订单列表 | 按状态筛选查看自己的订单 | P0 |
| 订单详情 | 完整订单信息、物流、操作记录 | P0 |
| 取消订单 | 待付款状态下用户主动取消 | P0 |
| 确认收货 | 已发货状态下确认收货 | P0 |
| 超时自动关闭 | 未支付订单超时自动关闭 | P0 |
| 自动确认收货 | 发货后超时自动确认 | P1 |
| 运费计算 | 根据运费模板计算配送费用 | P1 |
2. 功能详细设计
2.1 确认订单页
页面结构
从购物车点击"去结算"后进入确认订单页,页面包含以下区域:
- 收货地址区域:展示默认地址(姓名、电话、详细地址),支持切换
- 商品清单:商品图片+名称+规格、单价×数量、小计
- 优惠选择:优惠券下拉选择、积分使用开关
- 金额明细:商品总额、运费、促销优惠、优惠券抵扣、积分抵扣、应付金额
- 订单备注:选填文本框
- 提交订单按钮
业务规则
| 编号 | 规则描述 |
|---|---|
| BR-ORD-01 | 必须选择收货地址才能提交订单,无地址时引导新增 |
| BR-ORD-02 | 商品库存不足时标红提示,禁用提交按钮 |
| BR-ORD-03 | 商品已下架时标灰提示,禁用提交按钮 |
| BR-ORD-04 | 选择优惠券后实时重算应付金额 |
| BR-ORD-05 | 开启积分抵扣后按平台配置的比例计算抵扣金额 |
| BR-ORD-06 | 运费根据商品关联的运费模板计算,无模板则免运费 |
金额计算公式
应付金额 = 商品总额 - 促销优惠 - 优惠券抵扣 - 积分抵扣 + 运费
其中:
- 商品总额 = 各商品单价 × 数量之和
- 积分抵扣上限为商品总额的一定比例(由平台配置)
2.2 提交订单
业务规则
| 编号 | 规则描述 |
|---|---|
| BR-ORD-10 | 提交时再次校验库存,库存不足则拒绝并提示具体商品 |
| BR-ORD-11 | 提交成功后:扣减库存、生成订单记录、清除购物车中已购商品 |
| BR-ORD-12 | 订单初始状态为"待付款" |
| BR-ORD-13 | 生成唯一订单编号,返回给用户 |
| BR-ORD-14 | 记录操作日志:操作人为"系统",备注"用户提交订单" |
交互说明
| 用户操作 | 系统反馈 |
|---|---|
| 点击"提交订单" | 校验通过后生成订单,跳转支付页面 |
| 提交失败(库存不足) | 提示"XXX商品库存不足",留在确认页 |
2.3 订单支付
业务规则
| 编号 | 规则描述 |
|---|---|
| BR-ORD-20 | 支付方式:支付宝、微信(当前为模拟支付) |
| BR-ORD-21 | 支付成功后订单状态从"待付款"变为"待发货" |
| BR-ORD-22 | 支付成功后记录支付时间 |
| BR-ORD-23 | 支付成功后赠送积分和成长值 |
| BR-ORD-24 | 记录操作日志:备注支付方式和金额 |
超时规则
| 订单类型 | 超时时间 | 超时后处理 |
|---|---|---|
| 普通订单 | 由后台配置(默认120分钟) | 自动关闭订单,释放库存 |
| 秒杀订单 | 由后台配置(默认60分钟) | 自动关闭订单,释放库存 |
2.4 订单列表
页面结构
"我的订单"页面顶部为状态Tab切换(全部/待付款/待发货/待收货/已完成),下方为订单卡片列表(按创建时间倒序),每张卡片包含:订单编号、状态标签、商品缩略信息、应付金额、操作按钮。
订单状态
| 状态 | 说明 | 用户可执行操作 |
|---|---|---|
| 待付款 | 订单已提交,等待支付 | 去支付、取消订单 |
| 待发货 | 已支付,等待商家发货 | 提醒发货 |
| 已发货 | 商家已发货,等待收货 | 查看物流、确认收货 |
| 已完成 | 用户已确认收货 | 评价、申请售后 |
| 已关闭 | 超时/用户取消/管理员关闭 | 无 |
交互说明
| 用户操作 | 系统反馈 |
|---|---|
| 切换状态Tab | 筛选对应状态的订单 |
| 点击订单卡片 | 进入订单详情页 |
| 点击"去支付" | 跳转支付页面 |
| 点击"取消订单" | 二次确认后取消 |
| 点击"确认收货" | 二次确认后确认 |
2.5 订单详情
页面结构
订单详情页包含以下区域:
- 订单状态条:当前状态及说明
- 收货信息:收货人、电话、详细地址
- 商品信息:各商品的图片、名称、规格、单价、数量、小计
- 金额明细:商品总额、运费、各类优惠、实付金额
- 订单信息:订单编号、创建/支付/发货/收货时间、支付方式、备注
- 物流信息(已发货时):物流公司、物流单号
- 操作记录时间线:按时间展示所有操作历史
2.6 取消订单
业务规则
| 编号 | 规则描述 |
|---|---|
| BR-ORD-30 | 仅"待付款"状态的订单可由用户取消 |
| BR-ORD-31 | 取消后订单状态变为"已关闭" |
| BR-ORD-32 | 取消后释放已扣减的库存 |
| BR-ORD-33 | 记录操作日志:操作人为"用户",备注"用户取消订单" |
2.7 确认收货
业务规则
| 编号 | 规则描述 |
|---|---|
| BR-ORD-40 | 仅"已发货"状态的订单可确认收货 |
| BR-ORD-41 | 确认后订单状态变为"已完成",记录收货时间 |
| BR-ORD-42 | 超过配置天数(默认15天)未手动确认的,系统自动确认收货 |
| BR-ORD-43 | 记录操作日志 |
3. 接口能力
| 能力名称 | 说明 | 是否需登录 |
|---|---|---|
| 获取确认订单信息 | 返回购物车选中商品、收货地址列表、可用优惠券、积分余额、金额预算 | 是 |
| 提交订单 | 校验库存、生成订单、扣减库存、清理购物车 | 是 |
| 模拟支付 | 模拟支付成功回调,更新订单状态 | 是 |
| 订单列表 | 按状态筛选查看自己的订单,分页返回 | 是 |
| 订单详情 | 返回订单完整信息、商品明细、操作记录 | 是 |
| 取消订单 | 用户主动取消待付款订单 | 是 |
| 确认收货 | 用户确认已收到商品 | 是 |
4. 核心数据实体
| 实体 | 业务含义 | 关键属性 |
|---|---|---|
| 订单 | 一次完整的交易记录 | 订单编号、会员、订单状态、商品总额、运费、促销优惠、优惠券抵扣、积分抵扣、实付金额、支付方式、收货信息、各时间节点、备注 |
| 订单商品明细 | 订单中每件商品的快照 | 关联订单、商品信息(名称、图片、价格、规格)、购买数量 |
| 操作记录 | 订单生命周期中的每次操作 | 关联订单、操作人、操作时间、订单状态、备注 |
| 订单设置 | 平台级订单参数配置 | 普通订单超时时间、秒杀订单超时时间、自动确认收货天数 |
实体关系:一个订单包含多条商品明细;一个订单关联多条操作记录;订单设置影响所有订单的超时行为。
5. 验收标准
| 编号 | 验收条件 |
|---|---|
| AC-ORD-01 | 确认订单页正确展示商品、地址、金额明细 |
| AC-ORD-02 | 选择优惠券/积分后应付金额实时重算 |
| AC-ORD-03 | 提交订单成功后生成订单号,库存正确扣减 |
| AC-ORD-04 | 库存不足时提交失败,提示具体商品 |
| AC-ORD-05 | 支付成功后订单状态变为"待发货" |
| AC-ORD-06 | 超时未支付的订单自动关闭,库存释放 |
| AC-ORD-07 | 订单列表按状态筛选正确 |
| AC-ORD-08 | 订单详情展示完整信息(商品、金额、物流、操作记录) |
| AC-ORD-09 | 取消订单后状态变为"已关闭",库存释放 |
| AC-ORD-10 | 确认收货后状态变为"已完成" |
| AC-ORD-11 | 超过配置天数自动确认收货 |
| AC-ORD-12 | 所有状态变更均记录操作日志 |
| AC-ORD-13 | 购物车中已购商品在下单后清除 |