# VR票务插件 — 项目总览 ## 项目背景 大头的朋友有 VR 演唱会项目,需要一个小程序来实现票务销售: - 在线选座、购买电子票 - QR 码核销入场 - 会员积分、优惠券 - 部署简单,后期能用 AI 改代码 目标平台:**微信小程序**。 --- ## 为什么选 ShopXO(Plan B) ShopXO 是轻量 PHP 商城系统(MIT 协议),具备: - ✅ 内置会员体系(充值/积分/优惠券) - ✅ 微信支付集成 - ✅ shopxo-uniapp 支持微信小程序(已配置条件编译) - ✅ 虚拟商品模式(order_model=3,适合票务) - ✅ 插件机制(可扩展票务逻辑) - ✅ 虚拟主机即可部署,无需 Docker 对比自建 Go + Supabase(vr-ticket-mp 主线),ShopXO 方案**复用程度高、开发成本低**,适合电商需求优先、票务需求为辅的场景。 **触发条件**:电商需求比重超过票务需求,或 vr-ticket-mp 维护成本过高时启用此方案。 --- ## 今天调研的关键突破 1. **CustomView Ace 编辑器**:ShopXO 内置全代码自定义页面编辑器,HTML/CSS/JS 三栏,实时预览 2. **商品详情页 30+ 钩子**:`plugins_view_goods_detail_base_sku_top` 是票务选座 UI 最佳注入点 3. **商品详情页按类型替换模板**:修改 `Goods.php Index()` 加 1 行判断即可 4. **shopxo-uniapp 支持微信小程序**:条件编译已配置,HBuilderX 一键发行 5. **核销机制现成可用**:`realstore/check/check.vue` 是 B 端核销页最佳参考 6. **QR 码生成内置**:`\base\Qrcode` 类 + phpqrcode 库,URL 即用 --- ## 官方文档(开发前必查) | 资源 | URL | |---|---| | 官方文档首页 | https://doc.shopxo.net/ | | **插件开发文档** | https://doc.shopxo.net/article/3.html | | **开发文档索引** | https://doc.shopxo.net/article/4.html | | uniapp 打包教程 | https://doc.shopxo.net/article/1/293727233598554112.html | | 功能清单 | https://doc.shopxo.net/article/1/260684202096197632.html | | 完整官方文档索引 | [docs/OFFICIAL_DOCS.md](docs/OFFICIAL_DOCS.md) | ## 文档目录 | 文档 | 内容 | |---|---| | [00_OVERVIEW.md](00_OVERVIEW.md) | 项目总览(本文档) | | [01_SHOPXO_TECHNICAL_RESEARCH.md](01_SHOPXO_TECHNICAL_RESEARCH.md) | ShopXO 技术能力完整调研 | | [02_FRONTEND_CUSTOMIZATION.md](02_FRONTEND_CUSTOMIZATION.md) | shopxo-uniapp 编译与自定义 | | [03_VERIFICATION_SYSTEM.md](03_VERIFICATION_SYSTEM.md) | 核销系统设计 | | [04_IMPLEMENTATION_ROADMAP.md](04_IMPLEMENTATION_ROADMAP.md) | 实施路线图与 Agent 分工 | | [../ARCHITECTURE.md](../ARCHITECTURE.md) | 核心架构设计 | --- ## 关键文件路径(源码位置) ShopXO 源码克隆自 `https://gitee.com/zongzhige/shopxo`,位于: ``` /Users/bigemon/.openclaw/workspace/council-research/shopxo-eval/.worktrees/shopxo-evaluator/shopxo-src/ ``` shopxo-uniapp 克隆自 `https://gitee.com/zongzhige/shopxo-uniapp`,位于: ``` /Users/bigemon/.openclaw/workspace/council-research/shopxo-eval/.worktrees/shopxo-evaluator/shopxo-uniapp-src/ ```