一句话定位:国内最常被拿来做「私域商城」的一套 PHP 开源系统,v8.0 把后台换成了 ThinkPHP 8 + Vue3,前端用 uni-app 一套代码铺 H5、小程序和 App;协议是宽松的 Apache-2.0,可以闭源商用。代价是运行环境不轻(PHP 8.2+、MySQL 8、Redis、Supervisor 三件套常驻进程),而且「开源版」只是获客入口,赚钱的是官网上的标准版、多商户版和各种行业版本。
| 项 | 值 |
|---|---|
| 仓库地址 | https://gitee.com/ZhongBangKeJi/CRMEB |
| 项目定位 | 私域电商 / 商城系统,含管理后台、H5、微信小程序、App |
| 官网 / 演示 | https://www.crmeb.com ;后台演示 v8.crmeb.net/admin(demo / crmeb.com) |
| 开源协议 | Apache-2.0(LICENSE、composer.json、Gitee 项目信息三处一致) |
| 默认分支 | v8.0(分支名即大版本,不是 master) |
| 当前版本 | CRMEB-KY v8.0.0,backend/.version 中 version_code 为 800 |
| 后端技术栈 | ThinkPHP 8 / PHP 8.2~8.4 / MySQL 8.0(表前缀 eb_)/ Redis / think-queue / Workerman |
| 管理端技术栈 | Vue 3.5 + Element Plus 2.9 + Pinia 2 + Vite 5 + vxe-table 4 + ECharts 5 |
| 移动端技术栈 | uni-app(CLI + Vite 5)+ Vue 3 + Pinia,一套代码出 H5 / 小程序 / App |
| 社区热度 | Gitee 17,761 Star / 5,554 Fork / 1,687 Watch / 184 Open Issues(2026-11-10 查询) |
| 维护方 | 众邦科技(西安众邦网络科技有限公司),仓库创建于 2018-08-22,最近推送 2026-11-09 |
| 部署形态 | 源码直装 / Docker Compose(run.sh 封装)/ 官方商业版安装包 |
| 文档日期 | 2026-11-10 |
1. 项目是什么
它是一套「商品—订单—支付—售后—会员—营销」全链路的私域商城系统,不是只有一个商品列表的脚手架。仓库里装着四份东西:一个 ThinkPHP 8 后端、一个 Vue3 管理端、一个 uni-app 移动端、外加一套 Docker 编排和文档。
它和 ShopXO、Mall4j 这类项目的差别主要在组织方式上。CRMEB 从 v5 起就在讲「中台化」,v8 把这件事做得更彻底:
| 概念 | 落点 | 说明 |
|---|---|---|
| 商品中台 | 商品 / SKU / 规格 / 分类 / 品牌 / 运费模板 | 单规格、多规格、卡密、虚拟商品都走同一套模型 |
| 交易模式 | 交易模式注册中心 | 普通购买、预售、拼团、砍价、秒杀共用下单链路,靠模式插件扩展 |
| 订单中台 | 订单主表 + 订单商品 + 支付单 | 拆单、改价、退款、核销都能在主流程上挂载 |
| 售后退款中台 | 售后单 + 退款流水 | 仅退款、退货退款、部分退款统一入口 |
| 用户与资产 | 用户、余额、积分、优惠券、等级 | 私域运营的底层账本 |
| 模块化 | 内置 22 个模块、30 个驱动 | 后台「扩展管理」可视化装卸,新装默认只启用 7 模块、15 驱动 |
| 多应用 | adminapi / api / outapi | 后台接口、前台接口、对外接口三套入口分开 |
需要先想清楚三点:
- 开源的是「社区版」,不是全部产品线。官网同时卖标准版、多商户版、多门店版、知识付费版、SaaS 云商城等,社区版属于功能最基础的那一档,具体差什么见第 8 节。
- 它不是「装完就能卖货」。支付要自己配商户号,短信、对象存储、物流查询、地图都要自己申请第三方账号,开箱只有一套空库结构。
- v8.0 是 2026 年的大版本,把 PHP 下限拉到 8.2、后台从 Vue2 升到 Vue3,还塞进了 AI Agent 与 MCP 服务。新东西多,落地前务必自己在测试机跑一遍,别直接拿演示站的效果当交付标准。
2. 核心特性
| 特性 | 说明 | 对使用者的价值 |
|---|---|---|
| 三端一套后端 | 管理端、H5、小程序、App 全部打同一组 /api/** 接口 | 改一次业务逻辑,四端同时生效,不用维护多套服务 |
| 多应用分层 | adminapi、api、outapi 三个应用各自独立路由与中间件 | 后台与前台权限边界清晰,对外接口可以单独限流、单独鉴权 |
| 中台化交易 | 交易模式注册中心 + 订单中台 + 售后中台 | 想加一种新玩法(如抽奖购、定金购),按注册中心规范写模式即可,不动主流程 |
| 模块化装卸 | 22 模块、30 驱动,后台可视化启用/停用 | 不需要的功能直接关掉,减少菜单噪音与攻击面 |
| 私域运营闭环 | 会员等级、积分、余额、优惠券、签到、分销、拼团、砍价、秒杀 | 拉新—转化—复购的常见手段基本都内置,不必逐个买插件 |
| 多端装修 | 管理端可视化页面装修,移动端按 JSON 渲染 | 运营改首页、改活动页不用发版 |
| 支付与退款 | 微信支付、支付宝、余额支付,退款走售后单 | 国内主流收款方式齐全,退款有单据可查 |
| 队列与定时任务 | think-queue + php think timer | 订单超时关闭、优惠券到期、消息推送靠后台任务跑,不阻塞请求 |
| 长连接 | Workerman,默认端口 40001 | 客服消息、订单提醒可以走 WebSocket 而不是轮询 |
| Docker 编排 | docker-compose.yml + run.sh | 一条命令拉起 Nginx、PHP、MySQL、Redis、队列与 WS |
| AI 原生(v8 新增) | AI Agent 模块、MCP 服务 POST /api/mcp、.crmeb/ 规则目录 | 官方宣称适配主流 AI 编码工具,可让 AI 读项目规范改代码(需自行验证) |
3. 技术架构
整体结构:单体 ThinkPHP 8 应用 + 两个独立前端工程 + 若干常驻进程。没有微服务、没有注册中心,属于「一台 4C8G 云服务器能撑起一个中型私域商城」的经典形态。
| 层 | 技术 | 说明 |
|---|---|---|
| 框架 | ThinkPHP 8 | 多应用模式,入口在 backend/public/index.php |
| 运行时 | PHP 8.2 ~ 8.4 | composer.json 约束为 8.2 起、8.5 以下;README 推荐 8.4 |
| 数据库 | MySQL 8.0 / InnoDB / utf8mb4 | 表前缀 eb_,需要支持 JSON 字段与窗口函数 |
| 缓存与队列 | Redis + think-queue | 缓存、session、队列都走 Redis,生产环境必装 |
| 长连接 | Workerman | 独立进程,默认监听 40001 |
| 定时任务 | php think timer | 常驻进程,靠 Supervisor 守护 |
| 微信生态 | easywechat ^6.20 | 公众号、小程序、开放平台统一封装 |
| 鉴权 | firebase/php-jwt ^5.0 | 接口 token 用 JWT |
| 表格导出 | phpspreadsheet ^1.29 | 订单、用户、财务报表导出 |
| 支付 | alipaysdk/easysdk ^2.2 | 支付宝 EasySDK,微信支付走 easywechat |
| 存储 | aliyun-oss / 七牛 SDK | 图片、视频可托管到对象存储 |
| 分布式 ID | snowflake | 订单号等业务主键 |
| 管理端 | Vue 3.5 + Element Plus 2.9 + Pinia 2 + vue-router 4 | Vite 5 构建,vxe-table 4 做大数据表格,wangEditor 5 做富文本,form-create 做动态表单 |
| 移动端 | uni-app + Vue 3 + Pinia + vue-i18n 9 | CLI 模式 + Vite 5,可出 H5、微信小程序、App |
后端目录分工(backend/):
| 目录 | 职责 |
|---|---|
app/adminapi | 管理后台接口,登录、权限、菜单、各业务 CRUD |
app/api | 前台接口,商品、购物车、下单、支付、个人中心 |
app/outapi | 对外开放接口,给外部系统或第三方调用 |
crmeb/ | 框架级封装:基础控制器、服务层、异常、响应、工具类 |
modules/ | 业务模块,每个模块自带路由、模型、服务、迁移 |
driver/ | 驱动层,支付、短信、短信模板、物流、存储等可替换实现 |
config/ | 配置项,数据库、缓存、队列、支付、上传都在这里 |
route/ | 路由定义,按应用拆分 |
public/ | Web 根目录,index.php 与静态资源 |
upgrade/ | 版本升级脚本与数据迁移 |
几个关键取舍:
- ThinkPHP 8 而不是 Laravel:国内 PHP 团队上手快、文档中文、部署简单;代价是生态与国际化程度不如 Laravel,遇到冷门需求基本只能自己写。
- uni-app 一套代码铺多端:省人力,但小程序与 App 的原生能力差异要靠条件编译兜,复杂交互仍然要为单端写特例。
- 模块化 + 驱动化:好处是装卸方便、二次开发边界清楚;坏处是新手容易在「模块里再套模块」,调试链路变长。
- 常驻进程三个:队列、定时任务、WebSocket 都要 Supervisor 看着,这是它比「纯 FPM 项目」重的地方,也是很多新手部署失败的原因。
4. 目录结构
| 路径 | 用途 |
|---|---|
backend/ | 后端工程根目录,ThinkPHP 8 应用 |
backend/app/ | 三个应用:adminapi、api、outapi |
backend/crmeb/ | 框架封装层,服务基类、响应封装、异常处理、助手函数 |
backend/modules/ | 业务模块目录,模块化装卸的核心 |
backend/driver/ | 驱动目录,支付、短信、物流、存储等可插拔实现 |
backend/config/ | 全局配置:数据库、Redis、队列、支付、上传 |
backend/route/ | 路由文件,按应用分目录 |
backend/public/ | Web 入口与静态资源,Nginx 的 root 指向这里 |
backend/upgrade/ | 升级脚本与 SQL 变更 |
backend/.env.example | 环境变量模板,装完必须复制成 .env 并改密码 |
backend/.version | 版本标识:CRMEB-KY v8.0.0、version_code 800 |
backend/composer.json | 依赖清单与 PHP 版本约束 |
backend/think | ThinkPHP 命令行入口 |
frontend/admin/ | 管理端 Vue3 工程 |
frontend/uni-app/ | 移动端 uni-app 工程 |
help/docs/ | 中文文档:项目说明、功能、架构、模块与驱动、数据库设计、开发指南、部署、运维、API |
help/images/ | 文档配图 |
docker/ | Nginx、PHP、队列 worker 脚本等镜像配置 |
docker-compose.yml / run.sh | 一键编排与常用命令封装 |
.crmeb/ | AI 协作目录:agents、rules、scopes、skills 等规范文件 |
AGENTS.md / CLAUDE.md / llms.txt | 给 AI 编码工具读的项目说明,v8 新增 |
scripts/check-doc-facts.mjs | 文档事实校验脚本,官方用来防止文档与代码脱节 |
CONTRIBUTING.md | 贡献指南 |
一个细节:仓库根目录同时放了 AGENTS.md、CLAUDE.md、llms.txt 和 .crmeb/ 一整套 AI 规范文件,这在国产 PHP 项目里很少见,说明 v8 确实把「让 AI 参与开发」当成了产品卖点,而不是随口提一句。
5. 快速上手
路线 A:Docker 一把梭(推荐先跑通)
cp .env.example .env
# 编辑 .env,至少改数据库密码、Redis 密码、APP_KEY
./run.sh start
./run.sh ps
./run.sh logs默认端口:Nginx 8011、MySQL 33061、Redis 63791、WebSocket 40001。起来后访问 http://服务器IP:8011/admin 进后台。
路线 B:源码直装
cd backend
composer install
cp .env.example .env
# 编辑 .env 填数据库、Redis、APP_KEY
php think run --host 127.0.0.1 --port 8011前台管理端另开一个终端:
cd frontend/admin
npm ci
npm run dev管理端开发端口 1619,/adminapi 代理到 8011。
路线 C:移动端
cd frontend/uni-app
npm install
npm run dev:h5
# 微信小程序换成
npm run dev:mp-weixin小程序产物用微信开发者工具导入,记得在 manifest.json 里换掉自己的 appid,并在小程序后台配置 request 合法域名。
路线 D:生产环境三个常驻进程
php think queue:listen --queue
php think timer start --d
php think workerman start --d三条都用 Supervisor 守护,缺一个就会出问题:没有队列,订单超时与消息推送不动;没有 timer,优惠券和统计任务不跑;没有 workerman,客服与实时提醒失效。
环境要求(容易漏的几条)
- PHP 扩展:bcmath、curl、mbstring、json、zip、simplexml、fileinfo、redis;
- 必须解除禁用函数:
proc_open、pcntl_signal、pcntl_signal_dispatch、pcntl_fork、pcntl_wait、pcntl_alarm,否则 workerman 起不来; - MySQL 必须是 8.0,字符集 utf8mb4,引擎 InnoDB;
- Node 18 以上,管理端与 uni-app 都用 Vite 5;
- Web 根目录指向
backend/public,伪静态要配 ThinkPHP 规则。
6. 功能模块清单
管理后台
| 模块 | 主要能力 |
|---|---|
| 商品 | 商品、SKU、规格、分类、品牌、标签、运费模板、评价 |
| 订单 | 订单列表、发货、改价、备注、拆单、核销、导出 |
| 售后 | 仅退款、退货退款、退款流水、售后原因 |
| 用户 | 用户列表、会员等级、分组、标签、余额与积分流水 |
| 营销 | 优惠券、拼团、砍价、秒杀、预售、满减、签到、积分商城 |
| 分销 | 分销等级、分销员、佣金结算、提现 |
| 内容 | 文章、页面装修、导航、公告 |
| 财务 | 账单、对账、提现审核、支付流水 |
| 统计 | 交易、商品、用户、渠道多维报表 |
| 客服 | 客服会话、消息、快捷回复 |
| 设置 | 支付、短信、存储、物流、地图、小程序、权限角色 |
| 扩展 | 模块与驱动管理、插件装卸、升级 |
移动端(H5 / 小程序 / App)
| 模块 | 主要能力 |
|---|---|
| 首页 | 可视化装修,轮播、导航、商品推荐、活动位 |
| 商品 | 列表、搜索、详情、规格选择、评价 |
| 购物车 | 多选、加减、失效商品处理 |
| 下单 | 地址、优惠券、积分抵扣、余额抵扣、支付 |
| 订单 | 待付款、待发货、待收货、待评价、售后 |
| 个人中心 | 资料、地址、收藏、足迹、优惠券、积分、余额 |
| 分销 | 推广码、团队、佣金、提现 |
| 客服 | 会话与消息推送 |
7. 版本与授权
| 项 | 实际情况 |
|---|---|
| 版本号 | CRMEB-KY v8.0.0,backend/.version 中 version_code=800 |
| 分支策略 | 默认分支就是 v8.0,大版本用分支名区分,历史版本仍在仓库内 |
| 许可证 | Apache-2.0,LICENSE 全文、composer.json 的 license 字段、Gitee 项目信息三处一致 |
| 版权方 | 众邦科技(西安众邦网络科技有限公司) |
| 更新节奏 | 2026-11-09 仍有推送,处于活跃维护期;184 个 open issue 说明使用量大、待处理也多 |
Apache-2.0 对使用者的意义要说清楚,因为这是它相对同类项目最大的优势:
- 可以免费商用、闭源二次开发、对外提供服务,不必开源你的修改;
- 需要保留版权声明与 NOTICE,修改过的文件要标注;
- 附带专利授权条款,比 MIT 多一层保护;
- 但协议只覆盖仓库里的代码,官网卖的商业版、插件、主题、素材是另外的授权,不能混为一谈。
换句话说:法律上你可以拿社区版做一个对外收费的商城 SaaS,只要不改掉版权声明。真正拦住你的是功能边界与运维成本,不是协议。
8. 商业模式说明
开源仓库本身免费,商业化的重心全在官网。社区版是漏斗口,付费产品是主营收。官网在售的产品线(2026-11 抓取):
| 产品 | 定位 | 说明 |
|---|---|---|
| 社区版(本文对象) | 单商户私域商城 | Apache-2.0,功能基础档,无官方技术支持 |
| 标准版 | 单商户商城增强 | 更多营销玩法、可视化装修、技术支持 |
| 多商户版 | 平台型商城 | 商户入驻、店铺结算、平台抽佣,有 PHP 与 Java 两套 |
| 私域会员(Pro) | 会员运营增强 | 会员体系、储值、精细化营销 |
| 多门店版 | 连锁零售 | 门店管理、到店核销、门店库存 |
| 多商户外贸版 | 跨境 | 多语言、多币种 |
| 知识付费 | 内容变现 | 课程、专栏、直播 |
| SaaS 云商城 | 托管服务 | 按年付费,不用自己运维 |
| 陀螺匠 OA | 企业管理 | 同一家公司的另一条产品线 |
除产品线外还有三个变现口:插件市场、主题广场、技术服务商体系(招商、定制、部署服务)。官网自我宣传的口径是「50 万+ 企业客户、40 万+ 开发者、900+ 技术服务商、12 年+ 行业经验」,这些数字属于官方宣传,没有第三方审计,看的时候打个折。
对使用者的实际影响:
- 社区版够不够用,取决于你要不要多商户、多门店、跨境这些能力;单店私域卖货,社区版基本能覆盖。
- 很多「高级玩法」在插件市场里单独收费,预算里要留出这部分。
- 官方技术支持只对付费版本开放,社区版遇到问题只能看文档、翻 issue、加群。
9. 生态与周边
| 项目 / 资源 | 作用 | 地址 |
|---|---|---|
| Gitee 主仓库 | 社区版源码,默认分支 v8.0 | gitee.com/ZhongBangKeJi/CRMEB |
| 官网 | 产品介绍、购买、案例 | www.crmeb.com |
| 文档中心 | 部署、开发、API、运维手册 | doc.crmeb.com |
| 后台演示 | demo / crmeb.com | v8.crmeb.net/admin |
| H5 演示 | 移动端效果预览 | v8.crmeb.net |
| 主题广场 | 付费与免费模板 | www.crmeb.com/theme |
| 插件市场 | 功能扩展 | www.crmeb.com/plugin |
| 仓库内文档 | help/docs/ 含架构、模块、数据库设计、运维、API | 随代码走,版本最匹配 |
| AI 协作规范 | .crmeb/、AGENTS.md、CLAUDE.md、llms.txt | 仓库根目录,v8 新增 |
生态上要提醒两点:一是 GitHub 侧没有找到可用的官方镜像,国内访问以 Gitee 为准;二是社区版的插件生态与商业版并不完全互通,买插件前先确认版本与产品线,别按官网截图直接下单。
10. 选型建议
适合你,如果:
- 做单商户私域商城,卖实物、虚拟卡密或到店核销,规模在几千到几十万用户;
- 团队会 PHP,能读 ThinkPHP,愿意在现成业务骨架上改;
- 需要一套「后台 + H5 + 小程序 + App」齐活的前端,不想自己从零搭;
- 看重协议宽松,可能要做闭源交付或对外的付费商城;
- 能接受 PHP 8.2+、MySQL 8、Redis 这套较新的运行环境。
不适合你,如果:
- 服务器还是 PHP 7.x 或 MySQL 5.7 的老环境,短期不打算升级;
- 运维只有一个人、不熟悉 Supervisor 和常驻进程,出问题排查成本高;
- 要做平台型多商户,又不准备买商业版——社区版没有入驻与分账;
- 需要强一致的资金账务、需要审计级对账,这套系统只能算「够用」;
- 想要轻量、无依赖、一台虚拟机就能跑的极简商城。
和同类怎么比:ShopXO 更轻、依赖更少、装完即用,适合中小商家快速上线;CRMEB 功能更全、营销玩法更多、前后端更现代,但部署与运维门槛明显更高。如果你要的是「开箱能卖」,ShopXO 更省心;如果你要的是「能长期做私域运营、能二次开发成自己的产品」,CRMEB 的底座更完整。
11. 风险与坑
- 仓库里躺着一对明文 app_id / app_key:
backend/.version里除了版本号,还有app_id与app_key字段,看起来是官方云端服务(升级、插件)的凭据。这类信息不该进公开仓库,如果你要用官方云服务,先确认这对凭据的用途与归属,别直接拿去用。 .env.example的默认值全是坑:APP_DEBUG = true、数据库crmeb / 123456、Redis 密码123456、CACHE_PREFIX与QUEUE_NAME是change_me。上线前必须逐项改掉,APP_DEBUG一定要设成 false,否则报错页会直接把路径、SQL、配置吐给访客。APP_KEY是占位符:模板里写的是app_key_REPLACE_WITH_RANDOM_HEX,不换会导致 JWT 签名可伪造。生成后用固定值保存,别每次部署重新随机,否则所有登录态失效。- 三个常驻进程是硬门槛:队列、timer、workerman 少一个就有一批功能静默失效,而且不会报错,只会「订单一直不关」「消息一直不发」。Supervisor 配好自动重启,并加监控。
- 必须解除 PHP 禁用函数:
proc_open、pcntl_*系列被宝塔等面板默认禁用,workerman 直接起不来。解除范围要按需最小化,别图省事把整张禁用表清空。 - PHP 8.2 是硬下限:
composer.json约束到 8.5 以下,老服务器上的 PHP 7.4 装不上依赖。PHP 8.2 以下的项目要共存时,得用多版本 PHP 分开跑。 - 默认只启用 7 个模块、15 个驱动:内置 22 模块 30 驱动,但新装并非全开。看似「功能少」,实际是要你去扩展管理里手动开;开之前先确认模块之间的依赖。
- v8.0 太新:2026 年才发布,AI Agent、MCP 这些能力还在快速迭代,社区踩坑记录少。生产环境建议先在测试机跑一到两周,别把演示站当稳定性证明。
- 184 个 open issue:issue 多不等于项目差,但意味着你遇到的问题大概率没人及时回。付费版有工单,社区版只能自助。
- 官网数字是宣传口径:「50 万+ 企业客户」「40 万+ 开发者」「12 年+」均来自官网,没有第三方来源,做技术选型时不要当客观指标。
- Apache-2.0 不等于全部免费:代码可商用,但商业版功能、插件、主题、素材各自有授权,混淆这一点会在采购时踩坑。
- AI / MCP 能力需要实测:README 宣传的 AI 对话、流式响应、多模型管理、Skill 管理、MCP 开放工具,属于新功能,实际效果与稳定性以你部署的版本为准,别据此做架构决策。
- 演示站账号是公开的:
demo / crmeb.com谁都能登,别在里面填任何真实数据,也别把演示站当成自己的测试环境。
12. 参考链接
| 名称 | 地址 |
|---|---|
| 代码仓库(Gitee) | https://gitee.com/ZhongBangKeJi/CRMEB |
| 官网 | https://www.crmeb.com |
| 文档中心 | https://doc.crmeb.com |
| 后台演示 | https://v8.crmeb.net/admin |
| H5 演示 | https://v8.crmeb.net |
| 主题广场 | https://www.crmeb.com/theme |
| 插件市场 | https://www.crmeb.com/plugin |
| Apache-2.0 协议全文 | https://www.apache.org/licenses/LICENSE-2.0 |
| ThinkPHP 8 文档 | https://doc.thinkphp.cn |
| uni-app 文档 | https://uniapp.dcloud.net.cn |
本文基于 2026-11-10 的 v8.0 分支源码(composer.json、.version、.env.example、目录结构、help/docs)、Gitee 项目数据与官网产品页整理;Star 数、issue 数、模块与驱动数量均以该日为准。部分子目录细节因接口限流未能逐一核对,落地前请以仓库实际内容为准。