购物车 — 功能需求说明(C 端)
本文档在《购物车功能需求-草稿》基础上整理,并关联 《关联需求分析.md》 v1.6、平台侧 《商品管理功能需求》 v1.3.3、《商品审核功能需求》** v1.0、《商品分类功能需求》** v1.5、《店铺管理功能需求》** v1.3.6、《会员管理功能需求》** v1.1、《订单管理功能需求》** v1.0.1 及 C 端兄弟模块 《商品详情内页功能需求》 v1.0、《我的服务功能需求》** v1.1、《商城首页功能需求》** v1.0.2、《搜索页功能需求》** v1.0、《店铺主页功能需求》** v1.0 做边界与流程对齐。
范围:C 端(消费者 APP / 用户商城)· 购物车 的已加购商品列表、勾选、改数量、移除、失效提醒与 同店合并结算 入口;不涉及 确认订单、支付、履约及数据库/接口设计。
说明: 本模块 维护当前会员购物车行 并 读取 商品/店铺实时档案;不维护 商品发品、订单履约。
v1.0: 首版定稿;对齐草稿 §1~§8;补全按店分组、加购来源、四条件校验时机、与确认订单边界。
1. 模块定位
1.1 业务目标
为 已登录的 C 端买家会员 提供 待购商品暂存与合并下单前整理 能力,使其能够:
- 查看已加入购物车的商品,按 店铺 分组浏览;
- 勾选 待结算商品、增减数量、移出 购物车;
- 批量清理 缺货、已下架等 失效 商品;
- 对 同一店铺 内已选商品 合并结算,进入 确认订单(另册);
- 接收 库存/下架 等失效提醒,并可 进入商品详情 查看。
不包含(本期或与它模块分工):
| 能力 |
说明 |
| 商品详情展示、规格选择、首次加购 |
见 《商品详情内页功能需求》 §7 |
| 确认订单、地址选择、运费、支付 |
见 确认订单、《订单管理功能需求》 |
| 订单列表、售后、评价 |
见 我的订单 等模块 |
| 全站搜索、分类浏览、店铺主页 |
兄弟模块 只读跳转 来源,不在此 执行 |
| 平台/商家维护商品、店态 |
见 商品管理、店铺管理 |
| 跨店铺合并为一笔订单结算 |
草稿 明确不支持(§5) |
1.2 在业务链中的位置
【浏览层】首页 / 分类 / 搜索 / 店铺主页 ──► 商品详情
↓
【加购】详情「加入购物车」(须登录 + 四条件,见 §10)
↓
【本模块】购物车 · 勾选 · 改数量 · 同店结算
↓
【交易层】确认订单 → 支付 → 订单履约(平台订单管理)
【用户链】须 **已登录且启用** 会员;访客 **不可** 使用本模块(加购在详情引导登录)
| 关联模块 |
关系 |
边界说明 |
| 商品详情 v1.0 |
上游写入 |
加购写入本模块;细则 去重、累加 见 §6.3 |
| 确认订单(待建设) |
下游 |
本模块 仅跳转 并携带 单店已选行 |
| 订单管理 v1.0.1 |
下游 |
下单后生成订单;购物车行 移除或扣减 策略在确认订单/下单成功时处理(另册) |
| 我的服务 v1.1 |
间接 |
结算页 选用收货地址;地址维护 不在 本模块 |
| 商品管理/审核 |
商品态/库存/价格 |
列表 读实时;非出售中/零库存 标失效 |
| 店铺管理 v1.3.6 |
店态 |
停业店商品 可展示;结算拦截 |
| 商品分类 v1.5 |
可购第 3 条 |
分类隐藏 → 结算时 不可购 |
| 会员管理 v1.1 |
用户链 |
禁用会员 不可 使用购物车 |
| 关联需求分析 v1.6 §11 |
四条件 |
加购与 去结算 均须校验(§10) |
1.3 与《关联需求分析》的对应
| 关联分析要点 |
本模块 |
| C 端浏览与下单分离 |
购物车 可含 停业/缺货/下架行(展示层);结算 按四条件拦截 |
| 店铺停业 S-P3 |
行 可保留展示;去结算 提示停业 |
| 商品状态变更 |
商家/平台下架 不自动删 购物车行;本模块 标失效 并可清理 |
| 库存 |
加购/改数量/结算前 校验实时库存 |
| 不支持跨店合单 |
草稿 §5;仅同店 合并结算 |
| 订单 O-P4 |
支付成功扣库存;购物车 不预扣 库存 |
1.4 使用端与角色
| 端 |
角色 |
能力 |
| C 端 |
已登录且启用的会员 |
本模块全部能力 |
| C 端 |
访客 |
不可进入;详情加购 引导登录 |
| C 端 |
已禁用会员 |
不可 使用(无法登录) |
| 平台/商家端 |
管理员/商家 |
不操作 本页面;在各自模块维护商品/店铺 |
2. 关联需求分析
2.1 与 C 端《商品详情内页功能需求》
| 项 |
定稿 |
| 加购入口 |
仅 详情页「加入购物车」写入(本期);列表 无 快捷加购 |
| 加购前置 |
须 登录;多规格须 选完规格;通过 四条件 方可写入(GD3、§11) |
| 加购后 |
成功提示;默认停留详情;用户 可 进入购物车 Tab/页 |
| 购物车行字段 |
商品、所选规格、数量 与详情选择 一致 |
| 同商品同规格 |
合并为一行,数量 累加(去重规则见 §6.3) |
| 失效进详情 |
缺货/下架提醒 可点击 进入 该商品详情(草稿 §7、§8) |
2.2 与平台《商品管理》/《商品审核》
| 项 |
定稿 |
| 可展示行 |
购物车 可保留 历史加购行;实时 读商品状态与库存 |
| 出售中 |
有库存且满足四条件 → 可勾选结算 |
| 已下架 |
标 「已下架」;不可 勾选结算;可 批量清理(草稿 §4、§8) |
| 非出售中(待审/未上架/审核失败) |
视同 不可购;标 失效 或 已下架 类文案;不可 结算 |
| 单价 |
展示 当前售价;进入/刷新列表时 读最新;若变价 以最新为准(可选提示「价格已更新」) |
| 规格 |
展示 加购时规格文案;多规格商品 一行对应一组规格 |
2.3 与平台《店铺管理功能需求》
| 项 |
定稿 |
| 分组 |
列表按 店铺名称 分组(草稿隐含) |
| 开业 |
该店已选商品 可 尝试结算(仍须商品侧四条件) |
| 停业 |
该店商品 仍展示;去结算 拦截,提示 店铺已停业 |
| 已删店 |
该店行 标失效 或 整组不可结算;建议 可批量清理 |
| 店名/头像 |
实时 读档;刷新列表更新 |
2.4 与平台《商品分类功能需求》
| 项 |
定稿 |
| 可购第 3 条 |
商品所属 平台分类(一、二级)均显示 方可结算 |
| 分类被隐藏后 |
购物车行 仍可展示;去结算 提示 商品不可购买 |
2.5 与 C 端《我的服务功能需求》
| 项 |
定稿 |
| 登录态 |
与 我的服务 一致:须 有效 Token |
| 收货地址 |
不在 购物车维护;确认订单 页选用 地址簿(MS-A 系列) |
2.6 与《订单管理功能需求》
| 项 |
定稿 |
| 结算产物 |
本模块 去结算 → 确认订单 → 提交生成 待支付 订单 |
| 订单范围 |
单店铺 一次结算对应 一笔 订单(草稿 §5;与订单「单店」一致) |
| 支付超时/关单 |
不影响 购物车其它未结算行 |
| 平台履约 |
不在 本模块 |
3. 页面与入口
3.1 页面清单
| 页面 |
说明 |
| A. 购物车列表 |
按店铺分组的商品行 + 勾选 + 数量 + 底栏结算 |
本期仅一页;无 购物车二级页、无 店内搜索。
3.2 入口
| 入口 |
行为 |
| 底部 Tab / 导航「购物车」 |
进入 A. 列表(须登录) |
| 商品详情加购成功 |
可选跳转购物车(非强制) |
| 其它链入 |
带登录态进入 A. 列表 |
未登录: 进入购物车 → 引导登录 → 成功后 可回跳 购物车(以前台为准)。
4. 访问控制
| 编号 |
规则 |
| CT0 |
使用本模块 须 已登录 且会员 启用 |
| CT1 |
购物车数据 仅归属当前会员;不可 查看他人购物车 |
| CT2 |
访客 不可 加载列表(详情加购时已引导登录) |
5. 购物车列表展示
对齐草稿 §1。
5.1 分组与排序
| 项 |
定稿 |
| 分组 |
按店铺 分组;组头展示 店铺名称(可 点击进店 至 店铺主页,可选) |
| 组内排序 |
最近加购/最近更新在前 或 加购时间倒序(以前台定稿为准) |
| 店铺间排序 |
最近有更新的店铺组在前(建议) |
5.2 商品行展示字段
| 字段 |
说明 |
| 店铺名称 |
组头展示;行内 可不重复 |
| 商品主图 |
读商品 当前主图 |
| 商品名称 |
读 当前名称 |
| 商品规格 |
加购时所选规格 文案(统一规格可为「默认」) |
| 数量 |
当前购物车数量 |
| 单价 |
当前售价(见 §2.2) |
| 小计 |
单价 × 数量(可选行内展示) |
| 失效标签 |
见 §8(缺货 / 已下架 / 店铺停业等 可选组合展示) |
5.3 空态
| 情形 |
行为 |
| 购物车无任何行 |
「购物车是空的」(或等价);可 引导 首页/分类 |
| 某店组内全失效且已清理 |
该 店组消失 |
6. 勾选、数量与加购合并
6.1 商品勾选
对齐草稿 §2。
| 项 |
定稿 |
| 行勾选 |
每条 可独立勾选/取消 |
| 店铺全选 |
可选 支持 店铺组内全选/取消 |
| 全局全选 |
可选;若实现,不改变 「仅同店结算」规则 |
| 失效行 |
不可勾选 或勾选后 去结算时拦截(建议:不可勾选 并置灰) |
| 默认勾选 |
新加购行 默认勾选 或 默认不勾选(以前台定稿为准) |
6.2 增减数量
对齐草稿 §3。
用户点击「+ / -」或输入数量
→ 校验:数量 ≥ 1
→ 校验:数量 ≤ 当前规格 **实时库存**
→ 超过 → 提示「库存不足」,**不** 超过库存上限
→ 数量为 0 或点删除 → 见 §7(移出行)
→ 成功 → 更新行数量与小计
| 编号 |
规则 |
| CT-Q1 |
数量 最小为 1(在本模块改数量时) |
| CT-Q2 |
数量 不得超过 当前规格 库存 |
| CT-Q3 |
改数量时 重新校验 商品出售中、店态等;不满足则 标失效 |
6.3 同商品同规格合并(加购去重)
| 项 |
定稿 |
| 维度 |
同一会员 + 同一商品 + 同一规格 → 一行 |
| 再次加购 |
数量 累加;不超过 库存上限 |
| 超过库存 |
加购或累加 阻断,提示 库存不足 |
| 不同规格 |
不同行 |
7. 管理购物车(移出与批量清理)
对齐草稿 §4。
7.1 移出购物车
| 操作 |
行为 |
| 单条删除 |
左滑/删除按钮 → 移出 该行 |
| 勾选后删除 |
勾选 一个或多个 行 → 删除选中 → 移出 |
| 确认 |
建议 二次确认(以前台为准) |
7.2 批量清理失效商品
| 操作 |
行为 |
| 入口 |
「清理失效商品」 或等价按钮 |
| 范围 |
缺货、已下架、非出售中 等 不可购 行(§8) |
| 交互 |
执行前 可 展示将清理数量;确认后 批量移出 |
| 部分勾选 |
支持 仅清理失效行;不影响 有效行勾选态(草稿「取消个别勾选」) |
8. 库存校验与失效提醒
对齐草稿 §6~§8。
8.1 校验时机
| 时机 |
行为 |
| 进入/刷新 购物车 |
自动 校验各行 实时库存 与商品/店态 |
| 改数量 |
校验库存上限 |
| 点击去结算 |
再次校验 已选行 四条件(§10) |
8.2 缺货商品
| 项 |
定稿 |
| 判定 |
商品 出售中 但 当前规格库存 = 0 |
| 展示 |
行标 「缺货」 或等价标签 |
| 勾选 |
不可勾选(建议) |
| 点击 |
可进入商品详情(草稿 §7) |
| 清理 |
纳入 批量清理失效 |
8.3 下架/不可售商品
| 项 |
定稿 |
| 判定 |
商品 非出售中(含 已下架) |
| 展示 |
行标 「已下架」 或 「商品不可购买」 |
| 勾选 |
不可勾选 |
| 点击 |
可进入商品详情(草稿 §8) |
| 清理 |
纳入 批量清理失效 |
8.4 其它失效(补充)
| 情形 |
列表行为 |
结算 |
| 店铺 停业 |
可展示;可选标「店铺休息中」 |
拦截,提示停业 |
| 店铺 已删 |
标失效或整组不可用 |
不可 |
| 分类 不可见 |
可展示 |
拦截,提示不可购 |
| 商品 已删 |
行 移除 或标失效待清理 |
不可 |
9. 合并结算(同店)
对齐草稿 §5。
9.1 规则
| 编号 |
规则 |
| CT-S1 |
不支持 跨店铺商品 合并为一笔 订单结算 |
| CT-S2 |
仅支持 同一店铺 内 已勾选 商品 合并结算 |
| CT-S3 |
底栏 合计 与 去结算 针对 当前操作店铺 或 当前勾选且同店 的商品(以前台 UX 为准,不得 跨店合单) |
| CT-S4 |
若勾选 spanning 多店 → 去结算 阻断,提示 请选择同一店铺的商品结算 或 按店分别结算 |
9.2 流程
用户勾选某店内一个或多个 **有效** 商品
→ 点击「去结算」
→ 校验 §10 四条件(逐行或整批)
→ 不通过 → 提示具体原因(下架/停业/库存/分类)
→ 通过 → 进入 **确认订单页**
携带:shopId、商品行(规格、数量、价格快照策略见确认订单专册)
9.3 与确认订单边界
| 项 |
定稿 |
| 本模块 |
选店、选品、数量、跳转 |
| 确认订单 |
收货地址、运费、应付总额、提交订单、支付 |
| 返回 |
确认订单 返回 购物车 保留 未提交行(除非下单成功清除,见订单专册) |
10. 与下单、会员的协作(四条件)
须 同时满足 《关联需求分析》§11 四条件方可 写入购物车(加购时) 与 去结算:
| # |
条件 |
加购时 |
去结算时 |
不满足提示方向 |
| 1 |
商品 = 出售中 |
✓ |
✓ |
商品已下架 / 不可购买 |
| 2 |
店铺 = 开业 |
✓ |
✓ |
店铺已停业 |
| 3 |
平台分类(一、二级)均显示 |
✓ |
✓ |
商品不可购买 |
| 4 |
所选规格 库存 > 0 |
✓ |
✓ |
库存不足 / 缺货 |
| 场景 |
行为 |
| 加购后商品下架 |
行 保留;标失效;不可结算 |
| 加购后库存变 0 |
标 缺货;不可结算 |
| 加购后店停业 |
行 保留;去结算 拦截 |
| 会员禁用 |
不可 进购物车 |
| 购物车 不扣库存 |
仅 校验;支付成功 后扣减(订单 O-P4) |
11. 页面流程总览
【入口】Tab 购物车 / 详情加购后跳转(须登录)
→ A. 购物车列表(按店分组)
├── 勾选 / 改数量
├── 删除 / 批量清理失效
├── 缺货·下架行 → 点击进商品详情
└── 同店已选 → 去结算 → 确认订单(另册)
【并行写入】
商品详情 · 加入购物车 → 合并行 / 累加数量 → 本列表可见
12. 异常与加载
草稿 §9「code、msg、data」不在本文定义。
| 情形 |
行为 |
| 列表加载失败 |
错误提示 + 重试 |
| 改数量/删除失败 |
Toast 原因;不改变 或 回滚 至原值 |
| 去结算校验失败 |
明确提示;不跳转 确认订单 |
| Token 失效 |
引导重新登录 |
13. 业务规则汇总
| 编号 |
规则 |
| CT0 |
须 登录且启用 会员 |
| CT1 |
仅 当前会员 数据 |
| CT2 |
列表按 店铺 分组 |
| CT3 |
行展示:主图、名称、规格、数量、单价 |
| CT4 |
支持 勾选 |
| CT5 |
支持 增减数量(≥1,≤库存) |
| CT6 |
支持 移出 与 批量清理失效 |
| CT7 |
不支持跨店 合并结算 |
| CT8 |
自动/去结算前 校验库存与可购态 |
| CT9 |
缺货/下架 提醒 且 可进详情 |
| CT10 |
加购 仅在详情;同规格 合并累加 |
14. 非本期范围
| 项 |
说明 |
| 列表/搜索页 快捷加购 |
进 详情 再加购 |
| 跨店 一键结算多单 |
草稿 不支持 |
| 购物车 优惠券、满减、凑单 |
草稿 未要求 |
| 购物车 商品推荐、常买 |
草稿 未要求 |
| 失效商品 自动删除(无用户操作) |
默认 标失效;批量清理 由用户触发 |
| 商家端查看会员购物车 |
无 |
| 购物车 服务端搜索/分类 Tab |
无 |
| 确认订单、支付 完整交互 |
另册 |
15. 草稿对照与修订说明
| 草稿条目 |
本文档处理 |
| §1 商品列表字段 |
§5.2 |
| §2 勾选 |
§6.1 |
| §3 增减数量 |
§6.2 |
| §4 管理:移出、批量清理、取消勾选 |
§7 |
| §5 不支持跨店合并结算 |
§9 |
| §6 库存校验 |
§8.1 |
| §7 缺货提醒进详情 |
§8.2 |
| §8 下架提醒进详情 |
§8.3 |
| §9 异常 code/msg/data |
§12 不纳入 |
| §10 技术栈 |
不纳入 |
| 未写:登录、按店分组、加购来源、四条件、确认订单边界 |
§1、§2、§4、§9、§10 补充 |
16. 修订记录
| 版本 |
说明 |
| v1.0 |
首版定稿:列表、勾选、改量、移出、失效提醒、同店结算;关联详情/订单/店铺/商品/会员与关联需求分析 |
文档版本:v1.0(定稿)· 关联《购物车功能需求-草稿.md》、《关联需求分析.md》v1.6、《商品详情内页功能需求.md》v1.0、《店铺管理功能需求.md》v1.3.6、《订单管理功能需求.md》v1.0.1、《会员管理功能需求.md》v1.1 · 草稿保持不变。