主题
05 购物车
版本:v3.0
所属端:前台商城
文档状态:已交付
1. 概述
1.1 背景与目标
购物车是购物流程的核心中转站。用户在浏览商品过程中,将感兴趣的商品加入购物车统一管理,在合适的时机集中结算。购物车需要解决"暂存→管理→结算"三个环节的体验问题。
本模块的设计目标:
- 提供便捷的商品暂存能力,支持多规格商品
- 支持数量调整、选中/取消、删除等管理操作
- 实时计算选中商品的合计金额,给用户明确的价格预期
- 对失效商品(下架/无库存)给予清晰标识,避免结算时出错
1.2 目标用户
| 角色 | 使用场景 |
|---|---|
| 会员 | 管理自己的购物车(加购、调整、结算) |
| 游客 | 不可访问购物车,操作时引导登录 |
购物车为会员专属功能,必须登录后使用。
1.3 功能范围
| 功能模块 | 说明 | 优先级 |
|---|---|---|
| 加入购物车 | 从商品详情页加购,支持多规格 | P0 |
| 购物车列表 | 展示全部购物车商品 | P0 |
| 数量调整 | 增减购买数量 | P0 |
| 删除商品 | 移除购物车中的商品 | P0 |
| 选中/全选 | 选择参与结算的商品 | P0 |
| 金额计算 | 实时计算选中商品合计 | P0 |
| 失效商品处理 | 标识不可购买的商品 | P0 |
| 去结算 | 跳转确认订单页 | P0 |
| 清空购物车 | 一键移除全部商品 | P1 |
2. 功能详细设计
2.1 加入购物车
业务规则
| 编号 | 规则描述 |
|---|---|
| BR-CART-01 | 同一商品(含相同规格)重复加购时,数量累加而非新增记录 |
| BR-CART-02 | 不同规格的同款商品作为独立购物车项 |
| BR-CART-03 | 加购时校验商品状态:已下架或库存为0时拒绝加购并提示 |
| BR-CART-04 | 加购数量不得超过当前库存 |
| BR-CART-05 | 加购成功后购物车角标数量+1,给予成功提示 |
交互说明
| 用户操作 | 系统反馈 |
|---|---|
| 商品详情页点击"加入购物车" | 校验通过后加入成功,提示"已加入购物车" |
| 游客点击加购 | 引导至登录页,登录后自动完成加购 |
| 加购失败(库存不足) | 提示"库存不足(剩余X件)" |
| 加购失败(商品下架) | 提示"商品已下架" |
2.2 购物车列表
页面结构
购物车页面分为三个区域:
- 商品列表区:每项包含选中复选框、商品图片、商品名称+规格属性、单价、数量调整器、小计金额、删除按钮
- 失效商品区:已下架或无库存的商品,置灰展示,标记"失效"标签,不可选中
- 底部操作栏:全选复选框、已选数量、合计金额、去结算按钮
业务规则
| 编号 | 规则描述 |
|---|---|
| BR-CART-10 | 购物车列表按加入时间倒序展示 |
| BR-CART-11 | 商品已下架或库存为0时,标记为"失效",置灰展示,不可选中 |
| BR-CART-12 | 库存不足(但大于0)时,数量自动调整为最大可用库存,给予提示 |
| BR-CART-13 | 购物车为空时,展示空态页面,引导用户去逛逛 |
交互说明
| 用户操作 | 系统反馈 |
|---|---|
| 点击商品图片/名称 | 跳转商品详情页 |
| 调整数量(+/-) | 实时更新小计和合计金额 |
| 点击删除 | 二次确认后移除该商品 |
| 选中/取消选中 | 实时重算合计金额 |
| 全选 | 选中所有有效商品(失效商品不参与) |
| 去结算 | 携带选中商品跳转确认订单页(至少选中1件) |
边界与异常
| 场景 | 处理方式 |
|---|---|
| 购物车为空 | 展示"购物车空空如也,去逛逛吧"+ 跳转首页按钮 |
| 未选中任何商品点击结算 | 结算按钮置灰不可点击 |
| 数量输入超出范围 | 限制最小1,最大为当前库存 |
| 删除确认 | 弹出"确定删除该商品吗?"确认弹窗 |
2.3 金额计算
业务规则
| 编号 | 规则描述 |
|---|---|
| BR-CART-20 | 单件小计 = 商品单价 × 购买数量 |
| BR-CART-21 | 合计金额 = 所有选中商品的小计之和 |
| BR-CART-22 | 修改数量、选中/取消选中时实时重算 |
| BR-CART-23 | 失效商品不计入合计 |
| BR-CART-24 | 金额精度保留两位小数 |
2.4 清空购物车
业务规则
| 编号 | 规则描述 |
|---|---|
| BR-CART-30 | 一键移除购物车中全部商品 |
| BR-CART-31 | 操作前需二次确认 |
3. 接口能力
| 能力名称 | 说明 | 是否需登录 |
|---|---|---|
| 购物车列表 | 返回当前会员全部购物车商品,含库存状态和规格信息 | 是 |
| 加入购物车 | 指定商品、规格、数量加入 | 是 |
| 修改数量 | 调整某购物车项的购买数量 | 是 |
| 删除商品 | 移除指定的购物车项(支持批量) | 是 |
| 选中/取消选中 | 切换商品的结算选中状态 | 是 |
| 清空购物车 | 移除全部购物车商品 | 是 |
4. 核心数据实体
| 实体 | 业务含义 | 关键属性 |
|---|---|---|
| 购物车项 | 会员购物车中的一条记录 | 关联商品、关联SKU、购买数量、加入时价格、商品图片、商品名称、规格属性、所属会员 |
实体关系:一个会员拥有多条购物车项;每条购物车项关联一个商品和一个SKU(多规格时)。
5. 验收标准
| 编号 | 验收条件 |
|---|---|
| AC-CART-01 | 商品详情页可成功加入购物车,购物车角标更新 |
| AC-CART-02 | 同一商品相同规格重复加购时数量累加 |
| AC-CART-03 | 购物车列表正确展示所有商品(图片、名称、规格、价格、数量) |
| AC-CART-04 | 修改数量后小计和合计金额实时更新 |
| AC-CART-05 | 删除商品后列表刷新,合计重算 |
| AC-CART-06 | 选中/取消选中后合计金额正确 |
| AC-CART-07 | 全选功能正常,仅选中有效商品 |
| AC-CART-08 | 失效商品置灰展示,不可选中,不计入合计 |
| AC-CART-09 | 去结算正确携带选中商品跳转 |
| AC-CART-10 | 空购物车展示空态页面 |
| AC-CART-11 | 游客访问购物车时引导登录 |
| AC-CART-12 | 库存不足时数量自动调整并提示 |