Skip to content

业务流程图

来源:05-portal-cart.md, 06-portal-order.md, 07-portal-member.md, 08-portal-aftersale.md, 13-admin-promotion.md 适用:理解核心业务场景的完整操作路径和决策节点


1. 购物下单主流程

从浏览商品到支付成功的完整链路。

mermaid
flowchart TD
    A["进入商城"] --> B{"浏览方式"}
    B -->|"首页推荐"| C["查看商品"]
    B -->|"分类导航"| C
    B -->|"关键词搜索"| C
    B -->|"品牌/专题"| C

    C --> D["商品详情页"]
    D --> E{"选择规格"}
    E --> F["加入购物车"]

    F --> G{"继续购物?"}
    G -->|"是"| B
    G -->|"否"| H["进入购物车"]

    H --> I{"选择商品"}
    I --> J["点击去结算"]

    J --> K["确认订单页"]
    K --> L["选择收货地址"]
    K --> M["选择优惠券"]
    K --> N["积分抵扣"]

    L & M & N --> O["系统计算应付金额"]

    O --> P{"库存校验"}
    P -->|"充足"| Q["提交订单"]
    P -->|"不足"| R["提示库存不足<br/>禁用提交"]
    R --> H

    Q --> S["生成订单号<br/>扣减库存<br/>清理购物车"]
    S --> T["支付页面"]

    T --> U{"用户支付"}
    U -->|"支付成功"| V["订单状态→待发货<br/>赠送积分和成长值"]
    U -->|"放弃支付"| W{"超时?"}
    W -->|"是"| X["自动关闭订单<br/>释放库存"]
    W -->|"否"| T

    V --> Y["等待商家发货"]

购物下单主流程

关键业务规则

  • 应付金额 = 商品总额 - 促销优惠 - 优惠券抵扣 - 积分抵扣 + 运费
  • 订单超时时间由后台配置(普通订单默认120分钟,秒杀订单默认60分钟)
  • 支付成功后系统自动赠送积分和成长值

2. 售后退货流程

从用户发起退货申请到退款完成的完整链路。

mermaid
flowchart TD
    A["用户查看订单详情"] --> B["点击申请售后"]
    B --> C["选择退货商品"]
    C --> D["选择退货原因"]
    D --> E["填写退款金额<br/>默认为实付金额"]
    E --> F["填写问题描述<br/>选填"]
    F --> G["上传凭证图片<br/>选填, 最多3张"]
    G --> H["提交退货申请"]

    H --> I{"系统校验"}
    I -->|"订单状态=已完成<br/>无重复申请"| J["申请提交成功<br/>状态=待审核"]
    I -->|"校验失败"| K["提示错误原因"]

    J --> L{"管理员审核"}
    L -->|"通过"| M["通知用户审核通过"]
    L -->|"拒绝"| N["通知用户拒绝原因"]
    N --> O["流程结束"]

    M --> P["用户寄回商品"]
    P --> Q["填写退货物流单号"]
    Q --> R["管理员确认收货"]
    R --> S["处理退款"]
    S --> T["退款完成<br/>状态=已完成"]
    T --> U["流程结束"]

售后退货流程

关键业务规则

  • BR-AS-01:仅"已完成"状态的订单可申请退货
  • BR-AS-03:退款金额默认为实付金额,可向下调整
  • BR-AS-07:同一商品不可重复申请
  • 审核拒绝时必须附带拒绝原因

3. 订单全生命周期

从购物车到订单完结的完整路径,包含所有分支。

mermaid
flowchart TD
    A["购物车选中商品"] --> B["提交订单"]
    B --> C["锁定库存<br/>快照商品信息<br/>计算金额"]
    C --> D["订单状态: 待付款"]

    D --> E{"用户操作"}
    E -->|"支付"| F["订单状态: 待发货"]
    E -->|"取消"| G["释放库存<br/>订单状态: 已关闭"]
    E -->|"超时未支付"| G

    F --> H["管理员发货<br/>填写物流公司+运单号"]
    H --> I["订单状态: 已发货"]

    I --> J{"用户操作"}
    J -->|"确认收货"| K["订单状态: 已完成"]
    J -->|"超时未确认<br/>默认15天"| K

    K --> L{"用户操作"}
    L -->|"申请退货"| M["进入售后流程"]
    L -->|"评价商品"| N["提交评论<br/>赠送积分和成长值"]
    L -->|"无操作"| O["订单归档"]

    M --> P{"审核结果"}
    P -->|"通过并完成退款"| Q["订单状态: 已关闭"]
    P -->|"拒绝"| R["订单保持已完成"]

    G --> S["订单归档"]
    Q --> S
    O --> S

订单全生命周期

操作日志要求

  • 所有状态变更必须记录到 oms_order_operate_history
  • 日志格式:操作人 + 时间 + 操作后状态 + 备注
  • 发货日志格式:"发货:{物流公司},运单号:{运单号}"

4. 会员注册与等级升降

从注册到持续消费过程中的等级变化路径。

mermaid
flowchart TD
    A["访客注册"] --> B["输入手机号+密码+验证码"]
    B --> C{"校验"}
    C -->|"通过"| D["创建会员<br/>等级=普通会员<br/>积分=0, 成长值=0"]
    C -->|"失败"| E["提示错误"]

    D --> F["开始购物"]
    F --> G["消费累积成长值"]
    G --> H{"系统定期检查"}

    H --> I{"成长值 >= 银卡门槛?"}
    I -->|"是"| J["自动升级为银卡"]
    I -->|"否"| K{"成长值 < 当前等级门槛?"}
    K -->|"是"| L["自动降级"]
    K -->|"否"| M["等级不变"]

    J --> N["享受银卡权益<br/>会员价/优惠券等"]
    N --> F

    L --> O{"降级到普通会员?"}
    O -->|"是"| P["等级=普通会员"]
    O -->|"否"| Q["降一级"]

    P --> F
    Q --> F
    M --> F

会员注册与等级升降

等级机制说明

  • 成长值来源:消费金额、签到、评论等行为
  • 升级:成长值达到上一级门槛时自动触发
  • 降级:成长值低于当前等级门槛时自动触发
  • 等级权益:会员专属价格、优惠券领取资格、免运费门槛等
  • 等级配置由后台管理员在"会员等级"页面维护

5. 秒杀与优惠券流程

5.1 秒杀活动流程

mermaid
flowchart TD
    subgraph Admin["管理员配置"]
        A1["创建秒杀活动<br/>设定时间范围"] --> A2["创建场次<br/>如10:00/14:00/20:00"]
        A2 --> A3["添加秒杀商品<br/>设置秒杀价+秒杀库存+限购数"]
    end

    subgraph User["用户抢购"]
        B1["查看秒杀页面"] --> B2["选择商品"]
        B2 --> B3["点击立即购买"]
        B3 --> B4{"校验"}
        B4 -->|"在活动时间内<br/>秒杀库存充足<br/>未超限购"| B5["以秒杀价加入购物车"]
        B4 -->|"不在时间内"| B6["提示活动未开始/已结束"]
        B4 -->|"库存不足"| B7["提示已售罄"]
        B4 -->|"超限购"| B8["提示已达限购上限"]
        B5 --> B9["进入结算支付"]
    end

    A3 -.->|"活动上线"| B1

秒杀活动流程

5.2 优惠券生命周期

mermaid
flowchart TD
    subgraph Admin["管理员创建"]
        C1["创建优惠券<br/>类型/面额/门槛/有效期/发行量"]
    end

    subgraph User["用户领取"]
        C2["浏览可领优惠券"] --> C3["点击领取"]
        C3 --> C4{"校验"}
        C4 -->|"未超领取上限<br/>未领完"| C5["领取成功<br/>进入我的优惠券"]
        C4 -->|"已领完"| C6["提示已领完"]
        C4 -->|"已达上限"| C7["提示已达领取上限"]
    end

    subgraph Trade["下单使用"]
        C5 --> C8["确认订单页选择优惠券"]
        C8 --> C9{"校验"}
        C9 -->|"满足门槛<br/>在有效期内<br/>适用商品匹配"| C10["抵扣金额<br/>标记已使用"]
        C9 -->|"不满足"| C11["优惠券置灰<br/>提示不可用原因"]
    end

    C1 -.->|"配置完成"| C2

优惠券生命周期

Mall 电商系统知识库