# 订单管理 — 功能需求说明

> 本文档在《订单管理功能需求-草稿》基础上整理，并关联《农资商城web》目录下 **会员管理 v1.0**、**商品管理 v1.3.3**、**店铺管理 v1.3.2**、**商户管理 v1.3.1**、《关联需求分析.md》v1.2 及目录内原型截图做边界与流程对齐。  
> 范围：**平台管理端** 全平台订单查询、履约（发货/物流/完成/关闭/删除）及与会员累计消费统计；不涉及数据库结构、接口定义及技术实现细节。  
> **说明：** 订单由 **C 端会员** 在 **店铺** 下购买 **商品** 产生；首期 **单规格** 商品（商品 P16）。  
> **v1.0：** 状态机与草稿对齐并补充 **待支付**；会员消费统计口径定稿。  
> **v1.0.1：** **不做分批发货/拆单**（草稿拆单能力划入非本期）；**待支付超时未付款自动关闭**（§3.4）。

---

## 1. 模块定位

### 1.1 业务目标

在农资商城 **平台管理端（Web）** 提供：

- **全平台订单** 列表、状态筛选与高级检索；
- 订单 **详情**（含物流节点时间轴）；
- **履约操作**：**整单一次发货**、更新物流、登记送达、配合 C 端 **确认收货** 完成订单；
- **待支付**：超时未支付 **系统自动关闭**（§3.4）；
- **关闭** 与 **逻辑删除** 已关闭订单；
- 为 **会员管理** 提供会员维度订单只读数据及 **累计消费** 统计口径。

**不包含（本期）：** 支付渠道对接细节、商家端独立订单后台（可后续）、Excel 批量发货/批量打印（原型有，见 §14）。

### 1.2 在业务链中的位置

```text
【供给链】商户 → 店铺 → 商品（出售中）
            ↓
【用户链】C 端会员注册 → 下单/支付
            ↓
【本模块】平台订单管理（履约、关闭、删除）
            ↓
【会员管理】只读查看会员订单、展示累计消费（统计来自本模块）
```

| 关联模块 | 关系 | 边界说明 |
|----------|------|----------|
| 会员管理 v1.0 | 下游展示 | 会员「查看订单」**只读**；累计消费 **以本模块统计为准**（§11） |
| 商品管理 v1.3.3 | 上游 | 下单时商品须 **出售中**、库存>0 等（P15）；支付成功 **扣减库存**（§12.2） |
| 店铺管理 v1.3.2 | 上游 | 店铺 **开业** 才可下单；**停业** 禁止新下单；删店校验 **未完成订单**（§10.3） |
| 商户管理 v1.3.1 | 间接 | 删商户校验未完成订单；商户冻结 **不自动** 关单 |
| 商品服务 v1.0.1 | 间接 | 订单展示商品快照信息（名称、规格、价格），不单独维护服务项 |

### 1.3 使用端与角色

| 端 | 角色 | 能力 |
|----|------|------|
| **平台管理端** | 平台管理员/运营/客服 | 全部订单列表、检索、详情、发货、物流、送达登记、关闭、删除 |
| **C 端** | 买家会员 | 下单、支付、**确认收货**；查看本人订单（C 端页面另述） |
| **会员管理（平台）** | 同平台角色 | 仅 **查看** 某会员订单，**不可** 在本模块外执行发货 |
| 商家端 | 店铺经营账号 | **本期定稿以平台履约为准**；商家端订单处理若建设，单独立项 |

---

## 2. 业务概念

| 概念 | 说明 |
|------|------|
| 订单 | 会员在某 **店铺** 一次交易单据；含一行或多行 **商品明细**（首期每行对应单规格 SKU） |
| 订单编号 | 系统生成，全平台唯一 |
| 交易单号 | 支付渠道返回的支付流水号（若有）；用于检索 |
| 订单金额 | 商品金额 + 运费等；展示 **应付/实付** 以产品口径为准（含运费 0 展示） |
| 会员 | 下单的 C 端买家；展示 **会员名称**（昵称等） |
| 收货人信息 | 收货人、手机号、收货地址（下单快照） |
| 配送方式 | **物流配送** / **商家配送**（草稿发货时选择） |
| 物流节点 | 发货、运输更新、送达、确认收货等 **时间轴** 记录 |
| 支付超时时间 | 平台可配置；自下单起在该时长内须完成支付，否则 **自动关闭**（§3.4） |
| 未完成订单 | 用于删店/删商户校验；见 §10.3 |
| 逻辑删除 | 仅 **已关闭** 订单可「删除」为 **已删除**；列表默认不展示 |

---

## 3. 订单状态（定稿）

### 3.1 状态枚举与页签

| 状态 | 含义 | 列表页签（建议） |
|------|------|----------------|
| **待支付** | 已下单未支付（**定稿补充**，C 端闭环必需；草稿页签未列） | 待支付 |
| **待发货** | 已支付，待平台/运营发货 | 待发货 |
| **已发货** | 已发货，运输中或待买家确认收货 | 已发货 |
| **已完成** | 买家 **确认收货** 后完结 | 已完成 |
| **已关闭** | 交易终止（未支付超时、取消、运营关闭等） | 已关闭 |
| **已删除** | 由 **已关闭** 逻辑删除 | 已删除 |
| **全部** | 以上所有未物理清除的订单 | 全部 |

> 原型另有「已取消」「无效」等标签，**本期与「已关闭」合并归类** 为 **已关闭**，关闭原因在详情中区分（§3.3）。

### 3.2 状态流转（主路径）

```text
【C 端】提交订单
    ↓
待支付 ──支付成功──► 待发货 ──整单发货──► 已发货
    │                    │                      │
    │                    │                      ├── 更新物流（可多次，仍为已发货）
    │                    │                      ├── 平台登记「商品到货/送达」
    │                    │                      └── 买家确认收货 ──► 已完成
    │                    │
    ├── 支付超时（系统自动）──► 已关闭
    ├── 买家取消 / 运营关闭 ──┤
    └── 待支付/待发货/已发货运营关闭 ──┴──► 已关闭 ──删除──► 已删除
```

| 规则 | 说明 |
|------|------|
| 支付成功 | 待支付 → **待发货**；触发 **库存扣减**（§12.2） |
| 发货 | **待发货** 须 **整单一次发完** → **已发货**（本期不支持部分发货、不拆单） |
| 完成 | **买家** C 端确认收货 → **已完成**（平台登记送达 **不替代** 完成） |
| 自动关闭 | **待支付** 超过 **支付超时时间** 仍未支付成功 → **已关闭**（§3.4） |
| 手动关闭 | 待支付/待发货/已发货（未完成）可由运营关闭 → **已关闭** |
| 删除 | **仅已关闭** → **已删除** |

### 3.3 已关闭（定稿分类）

| 关闭类型（详情展示） | 典型前置状态 | 触发方式 |
|----------------------|--------------|----------|
| **未支付超时** | 待支付 | **系统自动**（§3.4） |
| 买家取消 | 待支付 | C 端（若开放） |
| 运营关闭 | 待支付、待发货、已发货 | 平台手工 |
| 支付失败/退款关闭 | 待支付或待发货 | 支付/售后流程（另册） |

### 3.4 待支付与自动关闭（v1.0.1 定稿）

| 项 | 定稿 |
|----|------|
| 适用状态 | 仅 **待支付** |
| 触发条件 | 自 **下单时间** 起，超过 **支付超时时间** 仍未 **支付成功** |
| 支付超时时间 | **平台系统参数** 可配置（单位：分钟）；**首期建议默认 1440（24 小时）**，上线前由产品确认 |
| 执行方式 | **定时任务** 扫描到期待支付单，批量置为 **已关闭** |
| 关闭类型 | **未支付超时**（§3.3） |
| 库存 | **不扣减**（扣减仅在支付成功，§12.2）；自动关闭 **无需** 回滚库存 |
| C 端 | 关闭后该单 **不可继续支付**；买家须 **重新下单** |
| 与删店 | 自动关闭后状态为 **已关闭**，**不属于** 未完成订单（O10） |
| 运营 | 待支付单在超时前仍可 **手工关闭**；关闭类型记「运营关闭」 |

```text
【C 端】提交订单 → 待支付
    ↓
    ├── 在支付超时时间内支付成功 → 待发货
    └── 超时仍未支付成功
            ↓
        【系统】自动关闭 → 已关闭（未支付超时）
```

---

## 4. 功能结构

```text
订单管理（平台）
├── 全部订单列表（状态页签 + 高级检索）
├── 查看详情（含物流节点）
├── 去发货（待发货）
├── 更新物流信息（已发货）
├── 商品到货 / 送达登记（已发货）
├── 关闭订单（符合条件的在途订单）
└── 删除订单（已关闭 → 已删除）
```

---

## 5. 全部订单列表

### 5.1 列表字段（定稿 · 对齐草稿）

| 字段 | 说明 |
|------|------|
| 订单信息 | **订单编号**；**商品主图**；**商品名称**；**商品规格**（首期单规格可展示规格文案或「默认」）；**数量**；**单价**；**下单时间** |
| 订单金额 | 合计金额；含运费时展示「含运费：xx」（原型） |
| 会员名称 | 买家昵称/会员名 |
| 收货人信息 | 收货人、手机号（可脱敏）、收货地址 |
| 配送方式 | 物流配送 / 商家配送等 |
| 订单状态 | 见 §3 |
| 操作 | 按状态展示：查看详情、去发货、更新物流、到货登记、关闭、删除等 |

- 一单多商品时：列表可 **折叠摘要** 或展示主商品 +「共 N 件」（UI 以前台为准）。

### 5.2 状态页签

与 §3.1 一致：**全部、待支付、待发货、已发货、已关闭、已完成、已删除**。

- 各页签仅统计对应状态订单数（可选角标）。
- 默认进入 **全部** 或 **待发货**（产品可配置）。

### 5.3 高级检索（定稿 · 对齐草稿）

| 条件 | 说明 |
|------|------|
| 订单编号 | 精确或模糊 |
| 商品名称 | 模糊（匹配订单内任一行商品） |
| 发货状态 | 下拉（与订单状态或履约子状态对应） |
| 收货人姓名 | 模糊 |
| 收货人手机号 | 模糊 |
| 收货地址 | 模糊 |
| 下单时间 | 起止日期 |
| 配送方式 | 下拉 |

**会员管理 §6.3 另需（平台订单列表建议一并支持）：** 支付方式、支付状态、物流公司、交易单号、会员信息（名称/手机号）、店铺名称（多店场景）。

### 5.4 列表行为

- 默认 **下单时间降序**。
- 默认 **不展示** `已删除`（在「已删除」页签查看）。
- 手机号、姓名等 **脱敏** 展示，详情按权限展示完整信息。

### 5.5 原型扩展（非草稿必选项）

原型含：**待支付** 页签（已纳入 §3）、**标记**、**Excel 批量发货**、**批量打印**、订单来源（PC/小程序/代客下单）、店铺标签 —— 见 §14。

---

## 6. 查看详情

### 6.1 范围

**全部状态** 订单均可查看详情（草稿定稿），含 **已删除**（审计只读）。

### 6.2 详情内容（建议分区）

| 分区 | 内容 |
|------|------|
| 基本信息 | 订单编号、交易单号、下单时间、订单状态、店铺名称、会员名称、订单金额、配送方式、支付方式和支付状态 |
| 商品明细 | 主图、名称、规格、单价、数量、小计 |
| 收货信息 | 收货人、手机号、地址 |
| 物流信息 | 物流公司/单号 或 车辆/配送员信息；**物流节点时间轴**（发货、运输更新、送达、确认收货） |
| 操作记录 | 关闭原因、操作人、操作时间（建议） |

### 6.3 与会员管理边界

- 在 **会员管理 → 查看订单** 打开的详情，内容与本文 **一致**，但 **不展示** 发货/关闭/删除等写操作按钮（会员模块 M6）。

---

## 7. 去发货（待发货）

### 7.1 前置条件

- 订单状态 = **待发货**。
- 支付已成功。

### 7.2 发货表单（定稿 · 对齐草稿，整单发货）

| 字段 | 必填 | 说明 |
|------|:----:|------|
| 发货时间 | 是 | 默认当前时间，可改 |
| 配送方式 | 是 | **物流配送** / **商家配送** |
| 物流配送 | 选物流时 | **物流公司** + **快递单号** |
| 商家配送 | 选商家配送时 | **车辆号码**、**配送员**、**配送员手机号** |
| 发货备注 | 否 | 文本 |
| 发货商品 | 展示 | **展示本单全部商品行及数量**；本期 **须整单一次发完**，**不可** 只发部分数量、**不拆单** |

| 规则 | 说明 |
|------|------|
| 整单发货 | 一次操作发齐订单内全部商品；订单状态 → **已发货** |
| 库存 | 发货 **不重复** 扣库存（已在支付成功扣减，§12.2） |
| 与草稿差异 | 草稿「分开发货自动拆单」**本期不做**，见 §17 |

### 7.3 发货后

- 订单状态 → **已发货**。
- 写入物流节点：「已发货」+ 发货时间 + 物流信息摘要。

---

## 8. 更新物流信息（已发货）

### 8.1 前置条件

- 订单状态 = **已发货**。
- 配送方式为 **物流配送** 时为主；商家配送也可记录运输状态描述。

### 8.2 表单

| 字段 | 必填 | 说明 |
|------|:----:|------|
| 运输更新时间 | 是 | 默认当前 |
| 运输状态描述 | 是 | 文本，如「到达 XX 中转站」 |

### 8.3 规则

- **可多次** 更新（草稿：运输中订单可多次更新）。
- 每次更新 **追加** 一条物流节点，不覆盖历史。
- 更新物流 **不改变** 订单主状态（仍为已发货），直至买家确认收货。

---

## 9. 商品到货 / 送达与完成

### 9.1 平台登记送达（已发货）

| 字段 | 必填 | 说明 |
|------|:----:|------|
| 送达时间 | 是 | |
| 送达说明 | 否 | 文本 |

- 登记后写入物流节点「已送达/到货」。
- **不自动** 变为已完成（草稿：买家确认收货后 → 已完成）。

### 9.2 买家确认收货（C 端）

```text
订单：已发货（已登记送达可选）
    ↓
【C 端】买家点击「确认收货」
    ↓
订单状态 → 已完成
    ↓
计入会员累计消费（§11）
```

| 规则 | 说明 |
|------|------|
| 完成时点 | 以 **买家确认收货** 为准 |
| 运营代确认 | 若业务需要「平台代确认」，单独立项并记操作日志 |

---

## 10. 关闭与删除

### 10.1 关闭订单

| 项 | 定稿 |
|----|------|
| 适用状态 | **待支付、待发货、已发货**（未至已完成） |
| 不适用 | 已完成、已关闭、已删除 |
| 支付后关闭 | 若已支付待发货/已发货关闭，须走 **退款/售后流程**（本期仅记关闭原因，退款对接另册） |
| 库存 | 待发货关闭且已支付：须 **回滚库存**（与支付扣减对称） |
| 待支付关闭 | **自动超时** 或运营关闭：未扣库存，**无需** 回滚 |

### 10.2 删除订单

| 项 | 定稿 |
|----|------|
| 前置状态 | **仅已关闭** |
| 结果状态 | **已删除** |
| 列表 | 默认不可见；在「已删除」页签可查 |
| 数据 | **逻辑删除**；不物理清除，供审计 |

```text
点击删除（已关闭订单）
    → 二次确认
    → 状态变为已删除
```

### 10.3 未完成订单（删店/删商户 · 定稿）

供 **店铺管理**、**商户管理** 调用的统一口径：

| 属于「未完成」 | 不属于「未完成」 |
|----------------|----------------|
| 待支付、待发货、已发货 | 已完成、已关闭、已删除 |

> 删店/删商户前须 **无未完成订单**；与店铺 §11.2、关联分析 §7.2 一致。

---

## 11. 会员累计消费统计（与会员管理对齐）

| 项 | 定稿 |
|----|------|
| 累计消费次数 | 状态 = **已完成** 的订单 **笔数**（一单计 1 笔） |
| 累计消费金额 | 上述订单 **实付金额** 合计 |
| 更新时机 | 订单变为 **已完成** 时计入；**已关闭/已删除** 不计入 |
| 会员列表展示 | 与会员管理 §6.5 一致；**以本模块统计服务为准** |

---

## 12. 下单与库存（C 端 · 协作规则）

### 12.1 下单前置（商品/店铺）

须满足《商品管理》第 11 节：**出售中、店铺开业、分类显示、库存>0**；会员 **已注册且启用**。

### 12.2 库存扣减

```text
待支付 ──支付成功──► 待发货
    同时：扣减商品库存（商品模块）
    失败：支付不成功，订单保持待支付或关闭
```

| 规则 | 说明 |
|------|------|
| 超卖防护 | 下单/支付时校验库存；与商品技术方案一致 |
| 关闭回滚 | 已支付订单 **关闭** 时 **回滚** 对应数量（§10.1） |

---

## 13. 业务规则汇总

| 编号 | 规则 |
|------|------|
| **O1** | 订单归属 **店铺**；展示 **会员** 信息；全平台列表可查 |
| **O2** | 订单编号 **全平台唯一** |
| **O3** | 状态：**待支付、待发货、已发货、已完成、已关闭、已删除** |
| **O4** | 支付成功：待支付→待发货，**扣库存** |
| **O5** | **待发货** 须 **整单一次发货** → **已发货**；**不支持** 部分发货与拆单 |
| **O6** | **已发货** 可多次更新物流 |
| **O7** | **买家确认收货**→**已完成**；平台送达登记 **不替代** 完成 |
| **O8** | **待支付** 超过 **支付超时时间** 未支付成功 → **系统自动关闭**（已关闭，未支付超时） |
| **O9** | **仅已关闭** 可删除为 **已删除** |
| **O10** | **未完成订单** = 待支付+待发货+已发货 |
| **O11** | 累计消费仅统计 **已完成** 订单 |
| **O12** | 会员管理内订单 **只读**，写操作仅本模块 |
| **O13** | 商户/店铺/商品状态变更 **不自动** 改已有订单状态（停业仅禁 **新** 下单） |
| **O14** | 详情含 **物流节点时间轴** |
| **O15** | 物流配送与商家配送 **字段不同**（§7.2） |
| **O16** | 列表高级检索 **不少于** 草稿 §3 所列字段 |

---

## 14. 页面与交互要点

| 场景 | 要求 |
|------|------|
| 待发货 | 突出「去发货」 |
| 发货 | 配送方式切换时 **显隐** 物流/配送员字段；展示 **整单商品** |
| 待支付 | C 端展示剩余支付时间（可选）；超时后展示已关闭 |
| 关闭/删除 | 二次确认；运营手工关闭建议填原因 |
| 物流时间轴 | 时间倒序展示 |
| 脱敏 | 列表手机号脱敏 |

---

## 15. 与关联模块协作流程

```text
【C 端】选店 → 加购 → 下单 → 支付
    ↓
【平台】订单管理：待发货 → 发货 → 已发货 → 买家确认收货 → 已完成
    ↓
【平台】会员管理：累计消费更新；会员订单只读查询
    ↓
【删店】须无 O10 未完成订单 + 无阻塞商品
```

---

## 16. 草稿对照与修订说明

| 草稿条目 | 本文档处理 |
|----------|------------|
| 列表字段、状态页签、检索 | §5 |
| 查看详情、物流节点 | §6 |
| 去发货、配送字段 | §7（整单发货；草稿拆单 **不做**） |
| 待支付自动关闭 | §3.4、O8 |
| 更新物流 | §8 |
| 商品到货 + 买家确认收货→已完成 | §9 |
| 已关闭删除→已删除 | §10 |
| 异常返回、技术栈 | **不纳入** |
| 补充待支付 | §3（C 端与原型） |
| 已取消/无效 | 并入 **已关闭** §3.3 |
| 会员/删店/库存/统计 | §10～§12、O10/O11 |
| 原型批量/标记/代客下单 | §14 非本期 |

---

## 17. 非本期范围

| 项 | 说明 |
|----|------|
| **分批发货 / 自动拆单** | 草稿有描述；**本期不做** |
| 商家端订单列表与发货 | 平台代运营；或二期 |
| Excel 批量发货、批量打印小票/配送单 | 原型有 |
| 订单标记/标签 | 原型有 |
| 代客下单 | 原型有 |
| 支付渠道对接、退款原路退回 | 另册 |
| 售后/退货换货 | 另册 |
| 多 SKU 规格矩阵 | 商品 P16 非本期 |
| 发票 | 另册 |

---

*文档版本：v1.0.1（定稿）· 关联《订单管理技术方案.md》v1.0、《订单管理测试用例.md》v1.0、《会员管理功能需求.md》v1.0、《商品管理功能需求.md》v1.3.3、《店铺管理功能需求.md》v1.3.2、《商户管理功能需求.md》v1.3.1、《关联需求分析.md》v1.2 · 草稿《订单管理功能需求-草稿.md》保持不变。*
