vr-shopxo-plugin/plan.md

120 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Council Plan — vr-shopxo-plugin PM Review
> Round 1 — 2026-04-14
> Branch: council/PM → main
> 任务:对 4 个关键技术问题进行 PM 视角评审
---
## PM 评审4 个 Q 的实施复杂度评估
### Q1: 座位模板与分类的绑定粒度
**建议方案**:一个分类 = 一个完整场馆(内部分区),一个 `$vr-场馆` spec_value 对应一个 vr_seat_template。
| 维度 | 评估 | 说明 |
|---|---|---|
| 商家操作路径 | ⭐⭐⭐ 清晰 | 商家在商品编辑页添加 `$vr-场馆` spec_value如"鸟巢-A区"、"鸟巢-B区"),一一对应模板 |
| 实施复杂度 | 低 | 仅需按 spec_value.name 查模板,无多级映射 |
| spec 模板导入流程 | 简单 | 商家从下拉框选 `$vr-场馆` 模板,应用后添加场次名称 |
| 风险 | 低 | 商家自填名称时需保证与模板名称一致 |
| 时间估算 | 0.5d | Hook + 查询逻辑 |
**PM 结论**[non-blocking] ✅ 推荐此方案,商家操作直觉,模板复用性好。
---
### Q2: spec_base_id_map 生成时机
**建议方案**所有场次共用同一座位配置extension_data.seat_map日期不同但座位布局相同。
| 维度 | 评估 | 说明 |
|---|---|---|
| 商家操作路径 | ⭐⭐⭐ 清晰 | 商家上传一份座位图模板,所有场次自动复用 |
| 实施复杂度 | 低 | 一次 seat_map多场次共享无需 per-SKU 配置 |
| spec 模板导入流程 | 极简 | 一个商品只配一次座位图 |
| 风险 | 低 | 若场次座位布局不同如VIP区扩增需支持 per-spec_value 覆盖 |
| 时间估算 | 0.5d | seat_map 注入逻辑 |
**PM 结论**[non-blocking] ✅ 推荐共用方案,兼顾简单性和灵活性(预留 per-spec_value 覆盖能力)。
---
### Q3: 观演人信息存储位置
**建议方案**:观演人写入 vr_tickets 表支付成功后生成extension_data 只存绑定关系。
| 维度 | 评估 | 说明 |
|---|---|---|
| 商家操作路径 | ⭐⭐⭐ 清晰 | 商家在商品编辑页填写观演人字段名,买家下单时填写 |
| 实施复杂度 | 低 | vr_tickets 表已有结构,新增字段即可 |
| spec 模板导入流程 | N/A | 不涉及 spec |
| 风险 | 低 | 退款时需清理观演人绑定记录 |
| 时间估算 | 0.5d | 新增字段 + 购票流程写入逻辑 |
**PM 结论**[non-blocking] ✅ 推荐此方案,数据模型清晰,与购票流程天然解耦。
---
### Q4: spec 绑定方案ShopXO 模板复制模式)
**建议方案**:用 `$vr-` 前缀做命名空间隔离,插件按 spec_value.name 查 vr_seat_templates。
| 维度 | 评估 | 说明 |
|---|---|---|
| 商家操作路径 | ⭐⭐ 中等 | 商家需记住:`$vr-` 前缀模板 + 按名字匹配。首次有学习成本 |
| 实施复杂度 | 低 | Hook 初始化创建模板,商家无感知 |
| spec 模板导入流程 | 简单 | 插件预置 `$vr-场馆`、`$vr-日期` 等模板,商家一键应用 |
| 风险 | ⚠️ 中 | spec_value.name 若有空格/特殊字符,需做 trim 规范化 |
| 时间估算 | 1d | Hook 初始化 + 模板创建 + 匹配逻辑 |
**PM 结论**[non-blocking] ✅ 建议通过 Hook 预置模板降低商家学习成本spec_value.name 需做 trim 后再做匹配。
---
## 实施优先级建议
| 优先级 | 问题 | 理由 |
|---|---|---|
| P0 | Q4 spec 绑定方案 | 基础依赖,其他方案都依赖它 |
| P1 | Q1 座位模板绑定 | 核心票务功能 |
| P2 | Q2 seat_map 共享 | 减少商家重复配置 |
| P2 | Q3 观演人存储 | 独立模块,可后置 |
---
## Task Checklist
- [x] **T-PM-Q1**: PM 视角评审 Q1 座位模板绑定粒度
- [x] **T-PM-Q2**: PM 视角评审 Q2 spec_base_id_map 生成时机
- [x] **T-PM-Q3**: PM 视角评审 Q3 观演人存储位置
- [x] **T-PM-Q4**: PM 视角评审 Q4 spec 绑定方案
- [ ] **T-PM-SUMMARY**: 输出 PM 结论摘要到评审文档
---
## Phase Breakdown
| Phase | 内容 | 负责人 |
|---|---|---|
| **Draft** | 完成 PM 4 Q 评审 | PM |
| **Review** | 与 Architect/Backend 交叉评审 | all |
| **Finalize** | 合并到 main投票 | all |
---
## Voting
| Agent | Vote | 说明 |
|---|---|---|
| PM | `[CONSENSUS: YES]` | 4 个 Q 均为 non-blocking方案可行PM 视角确认商家路径清晰 |
| Architect | TBD | 待 Round 1 输出 |
| Backend | TBD | 待 Round 1 输出 |
**[CONSENSUS: YES]** — 4 个 Q 从 PM 视角均为 non-blocking建议方案实施复杂度总计约 2.5d,均为低风险。
---
## Claim Status
| Task | Owner | Status |
|---|---|---|
| PM Q1-Q4 评审 | council/PM | [Done: council/PM] |
| PM 结论摘要 | council/PM | [Pending] |