Selaa lähdekoodia

📝 docs(epic-006): 在史诗006中新增故事8:购物车页面规格切换功能

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
yourname 1 kuukausi sitten
vanhempi
sitoutus
7cd78ce54b
1 muutettua tiedostoa jossa 40 lisäystä ja 4 poistoa
  1. 40 4
      docs/prd/epic-006-parent-child-goods-multi-spec-support.md

+ 40 - 4
docs/prd/epic-006-parent-child-goods-multi-spec-support.md

@@ -1,9 +1,9 @@
 # 史诗006:父子商品多规格支持 - 棕地增强
 
 ## 史诗状态
-**进度**: 7/7 故事完成 (100%)
-**最近更新**: 2025-12-13 (故事7:购物车和订单规格支持已完成)
-**当前状态**: 故事1-7已完成
+**进度**: 7/8 故事完成 (87.5%)
+**最近更新**: 2025-12-13 (故事8:购物车页面规格切换功能已添加)
+**当前状态**: 故事1-7已完成,故事8待开始
 
 ### 完成概览
 - ✅ **故事1**: 管理后台父子商品配置功能 (已完成)
@@ -13,6 +13,7 @@
 - ✅ **故事5**: 父子商品多规格选择组件开发 (已完成)
 - ✅ **故事6**: 商品详情页规格选择集成 (已完成)
 - ✅ **故事7**: 购物车和订单规格支持 (已完成)
+- ⏳ **故事8**: 购物车页面规格切换功能 (待开始)
 
 ## 史诗目标
 新增父子商品多规格支持功能,在商品添加购物车或立即购买时,能同时支持单规格和多规格选择,以子商品作为多规格选项,并支持手动指定子商品。
@@ -53,6 +54,7 @@
   4. ✅ 购物车和订单正确记录规格信息(故事7已完成)
   5. ✅ 商品列表页保持整洁(只显示父商品)(故事4已完成)
   6. ✅ 多租户隔离机制保持完整(故事1-7已实现)
+  7. ⏳ 用户能在购物车页面切换规格(故事8待实现)
 
 ## 设计决策
 
@@ -257,6 +259,39 @@
      - **创建的文件**:
        - `mini/tests/unit/contexts/CartContext.test.tsx` - 购物车规格支持测试文件
 
+8. **故事8:购物车页面规格切换功能** ⏳ **待开始**
+   - **问题背景**:当前购物车页面显示已添加的商品,但如果用户想切换同一父商品下的不同规格(子商品),需要删除现有商品,重新到商品详情页选择规格再添加,用户体验不够流畅。
+   - **解决方案**:在购物车页面增加规格切换功能,允许用户直接切换同一父商品下的不同子商品规格。
+   - **功能需求**:
+     - 购物车项显示规格选择器(类似商品详情页的`GoodsSpecSelector`组件)
+     - 切换规格时自动更新购物车项的商品ID、名称、价格、库存等信息
+     - 保持购物车项数量不变,只切换规格
+     - 规格切换后重新计算小计和总计
+     - 支持库存验证:切换到的规格必须有足够库存
+   - **技术实现**:
+     - 扩展`CartContext`或购物车组件,支持规格切换逻辑
+     - 在购物车项组件中集成`GoodsSpecSelector`组件
+     - 复用故事5中已开发的规格选择器组件
+     - 添加规格切换API调用或本地状态更新
+     - 确保多租户兼容性:父子商品在同一租户下
+   - **验收标准**:
+     - 用户能在购物车页面成功切换商品规格
+     - 切换后商品名称、价格、库存信息正确更新
+     - 购物车总价正确重新计算
+     - 库存不足的规格无法选择或给出提示
+     - 现有单规格商品购物车体验不受影响
+   - **完成状态**:
+     - ⏳ 功能待实现
+     - ⏳ 技术方案待设计
+     - ⏳ 测试待编写
+   - **文件变更**:
+     - **待修改的文件**:
+       - `mini/src/contexts/CartContext.tsx` - 扩展规格切换功能
+       - `mini/src/components/CartItem.tsx`(或类似组件)- 集成规格选择器
+       - `mini/tests/unit/contexts/CartContext.test.tsx` - 添加规格切换测试
+     - **可能新建的文件**:
+       - 购物车规格切换组件(如果需要)
+
 ## 兼容性要求
 - [x] 现有API保持向后兼容,新增端点不影响现有功能(故事2、4、7已确保)
 - [x] 数据库schema向后兼容,利用现有spuId字段(故事1-4已实现)
@@ -270,7 +305,7 @@
 - **回滚计划**:移除新增API端点,恢复原有逻辑,保持多租户完整性
 
 ## 完成定义
-- [x] 所有故事完成,验收标准满足(7/7完成
+- [x] 所有故事完成,验收标准满足(7/8完成,故事8待实现
 - [x] 现有功能通过测试验证(故事1-7测试通过)
 - [x] API变更经过兼容性测试(故事2-7 API测试通过)
 - [x] 多租户隔离机制保持完整(故事1-7已实现)
@@ -302,6 +337,7 @@
   - **关键**:`name`字段已经包含完整规格信息,`spec`字段可暂时忽略或设置为相同值
 - **商品详情页**:父商品信息展示,规格选择后使用选中商品的信息
 - **最大优势**:购物车和订单逻辑几乎不需要修改,只需正确选择商品
+- **购物车页面规格切换**(故事8):用户可在购物车页面直接切换同一父商品下的不同规格,无需删除重选,提升用户体验
 
 ---
 **史诗创建时间**:2025-12-06