VR票务插件 for ShopXO
基于 ShopXO 生态的 VR 演唱会票务解决方案(Plan B)
仓库:http://xmhome.ow-my.com:3000/sileya-ai/vr-shopxo-plugin
⚡ 核心原则
怎么快怎么来。怎么方便怎么来。尽可能少改动,少引入复杂度。但完全允许修改 ShopXO 核心代码。
- 我们是自己部署 ShopXO,核心代码完全可以改
- 改动的优先级:改核心 < 用 Hook < 引入新复杂度
- 改核心文件时,写清楚「升级 ShopXO 后需重新应用的位置」
📚 文档索引
🔴 必读
🔧 实现参考
📖 调研存档
🗂️ 历史存档(已过时,仅供参考)
| 文档 |
说明 |
docs/ALIGNMENT.md |
早期规划对齐记录 |
docs/SPEC_DESIGN_DECISION.md |
早期设计决策 |
docs/ROUND2_ANALYSIS.md |
第二轮分析 |
docs/VR_PLUGIN_REFACTOR_BRIEFING.md |
重构简报 |
docs/PHASE2_RESEARCH_ARCHIVE.md |
Phase 2 调研存档 |
docs/PHASE2_DEVELOPMENT_LOG.md |
Phase 2 旧版开发日志 |
🗺️ vr_goods_config JSON 结构(v3.0 最新)
完整规格见 docs/VR_GOODS_CONFIG_SPEC.md
{
"version": 3.0,
"template_id": 4,
"selected_rooms": ["room_id_xxx"],
"selected_sections": { "room_id_xxx": ["A", "B"] },
"sessions": [{ "start": "15:00", "end": "16:59" }],
"template_snapshot": {
"venue": { "name": "...", "address": "...", "location": {}, "images": [] },
"rooms": [{ "id": "...", "name": "...", "map": [...], "sections": [...], "seats": {...} }]
}
}
| 字段 |
说明 |
version |
协议版本(当前 3.0) |
template_id |
发布/编辑时读取最新 vr_seat_templates 的依据 |
selected_rooms |
用户选择:启用了哪些演播 |
selected_sections |
用户选择:key=房间ID,value=该房间选中的分区字符数组 |
sessions |
用户管理的场次列表 |
template_snapshot |
发布时从 vr_seat_templates 读取并存储的快照(含 venue + rooms) |
🏗️ 项目状态
| 阶段 |
状态 |
说明 |
| Phase 1 |
✅ 完成 |
商品详情页座位图 + 观演人表单 + 模板渲染 |
| Phase 2 |
🔜 进行中 |
Issue #13:vr_goods_config v3.0 落地 |
| Phase 3 |
❌ 未开始 |
核销 API + 后台 4 控制器联调 |
Phase 2 当前工作:Issue #13 — vr_goods_config v3.0 落地实现
⚠️ 踩坑经验(接手前必读)
完整列表见 docs/EXPERIENCES.md
- ThinkTemplate
{include file="..."} 在 Linux 下因 view_depr=/ 导致路径拼接错误 → 改用 PHP ModuleInclude()
- Vue 3
[[ ]] 插值禁止用于 <textarea> → 浏览器卡死
- 字段名不能猜,必须查源码
- ShopXO
MyView() 加载插件模板时 view_path 被覆盖 → 影响 ModuleInclude 解析
🚀 快速开始
# 1. 克隆
git clone http://xmhome.ow-my.com:3000/sileya-ai/vr-shopxo-plugin.git
# 2. 上传插件
cp -r vr_ticket /path/to/shopxo/app/plugins/
# 3. 数据库迁移
mysql -u root -p < app/plugins/vr_ticket/install.sql
# 4. 修改 Goods.php(让 ShopXO 加载票务详情页)
# 详见 docs/GOODS_PHP_MODIFICATION.md
# 5. 后台安装
# 管理后台 → 应用中心 → 插件管理 → 安装 VR票务插件
官方文档