ShopXO VR票务插件 — 基于ShopXO生态的演唱会票务解决方案(Plan B)
 
 
 
 
Go to file
Council bdb4eb55e7 council(draft): SecurityEngineer - add Round 1 plan for AdminGoodsSaveHandle security audit
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 09:45:33 +08:00
.worktrees docs: v2.2 - Q4 resolved: $vr- prefix spec namespace isolation 2026-04-14 17:57:32 +08:00
council-output council(finalize): FrontendDev - Complete Q1 editor research + final recommendation 2026-04-15 20:54:18 +08:00
docs docs: 修正 docs/14 + 新增 PHASE2_PLAN.md 2026-04-20 05:24:26 +08:00
reviews council(security): SecurityEngineer - add missing VenueList methods + security audit 2026-04-16 08:53:41 +08:00
shopxo feat(Phase 2): 完成票务商品前端展示层 2026-04-20 05:22:07 +08:00
.gitignore fix: 修复 vr_ticket 插件文件被 gitignore 忽略的问题 2026-04-19 15:54:03 +08:00
ARCHITECTURE.md docs: v2.2 - Q4 resolved: $vr- prefix spec namespace isolation 2026-04-14 17:57:32 +08:00
MEMORY.md docs: 追加 vr-shopxo-plugin Phase 0/1 状态记录 2026-04-15 08:47:21 +08:00
README.md docs: add EXPERIENCES.md - 16 critical lessons from refactoring session 2026-04-17 00:43:34 +08:00
plan.md council(draft): SecurityEngineer - add Round 1 plan for AdminGoodsSaveHandle security audit 2026-04-20 09:45:33 +08:00
plugin.json feat: plugin scaffold + initial directories 2026-04-13 15:52:38 +08:00

README.md

VR票务插件 for ShopXO

基于 ShopXO 生态的 VR 演唱会票务解决方案Plan B


核心原则

怎么快怎么来。怎么方便怎么来。尽可能少改动,少引入复杂度。但完全允许修改 ShopXO 核心代码。

  • 我们是自己部署 ShopXO核心代码完全可以改
  • 改动的优先级:改核心 < 用 Hook < 引入新复杂度
  • 改核心文件时,写清楚「升级 ShopXO 后需重新应用的位置」

⚠️ 踩坑经验(接手本插件前必读)

本插件经历了一整夜重构调试,发现了大量反直觉的坑。任何 agent 或开发者接手前,请先阅读这份经验文档,避免重蹈覆辙。

📋 docs/EXPERIENCES.md — ShopXO 插件踩坑经验全记录16条核心教训

最关键的3条

  1. {{:ModuleInclude('public/footer')}} 缺失 → 页面无限加载(不是后端死循环)
  2. Vue 3 [[ ]] 插值禁止用于 <textarea>(导致浏览器卡死)
  3. 字段名不能猜,必须查源码(已有人踩过)

核心能力

能力 实现方式
场次管理 ShopXO spec = 场次(无需独立表)
商品详情页定制 Goods.php 1 行 + 自定义模板
选座 UI 自定义 Vue 组件Fork shopxo-uniapp
观演人收集 插件钩子,下单时写入 vr_tickets
QR 电子票 支付成功后钩子生成AES 加密
微信小程序 shopxo-uniapp 已支持HBuilderX 一键发行
B 端核销 Fork realstore/check/check.vue,完整参考
会员/积分/优惠券 全部复用 ShopXO 内置能力

快速开始

# 1. 克隆本仓库
git clone http://xmhome.ow-my.com:3000/sileya-ai/vr-shopxo-plugin.git

# 2. 上传插件到 ShopXO
cp -r vr_ticket /path/to/shopxo/app/plugins/

# 3. 数据库迁移Phase 1
mysql -u root -p < database/migrations/001_vr_seat_templates.sql
mysql -u root -p < database/migrations/002_vr_tickets.sql
mysql -u root -p < database/migrations/003_vr_verifiers.sql
mysql -u root -p < database/migrations/004_vr_verifications.sql

# 4. 后台安装
# 管理后台 → 应用中心 → 插件管理 → 安装 VR票务插件

# 5. 修改 Goods.phpPhase 2
# 在 ShopXO 源码 app/index/controller/Goods.php 的 Index() 方法中:
# 在 return MyView(); 之前加入 ticket 类型判断(见 docs/GOODS_PHP_MODIFICATION.md

# 6. shopxo-uniapp 改造
# HBuilderX 导入 shopxo-uniapp
# 添加 pages/ticket-buy/ 和 pages/ticket-verify/
# 配置 manifest.json 的 AppID
# 发行 → 微信小程序

官方文档(开发前必查)

资源 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
shopxo-uniapp Gitee https://gitee.com/zongzhige/shopxo-uniapp

技术调研文档

关键发现2026-04-14/15

  • ShopXO 内置 CustomView Ace 编辑器(全代码自定义页面)
  • 商品详情页 30+ 插件钩子
  • shopxo-uniapp 已支持微信小程序,条件编译已配置
  • ShopXO 内置 phpqrcode QR 码生成库
  • realstore/check/check.vueB 端核销页最佳参考
  • site_type=3(虚拟商品)可绕过地址选择弹出
  • ShopXO 完全支持修改核心代码(自己部署原则)
  • 推荐:改 Goods.php 1 行,比 Hook 方案更干净(符合核心原则)

项目状态

Phase 1 完成:商品详情页座位图 + 观演人表单 🔜 Phase 2 进行中:后台管理(场馆/座位模板/电子票/核销员)

  • 场馆 CRUD + Vue3 编辑器
  • 🔜 后台管理添加商品 Hook快速选择场馆信息

仓库地址

http://xmhome.ow-my.com:3000/sileya-ai/vr-shopxo-plugin