一句话定位:国内最常被拿来做「私域商城」的一套 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.4composer.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图片、视频可托管到对象存储
分布式 IDsnowflake订单号等业务主键
管理端Vue 3.5 + Element Plus 2.9 + Pinia 2 + vue-router 4Vite 5 构建,vxe-table 4 做大数据表格,wangEditor 5 做富文本,form-create 做动态表单
移动端uni-app + Vue 3 + Pinia + vue-i18n 9CLI 模式 + 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/thinkThinkPHP 命令行入口
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.0gitee.com/ZhongBangKeJi/CRMEB
官网产品介绍、购买、案例www.crmeb.com
文档中心部署、开发、API、运维手册doc.crmeb.com
后台演示demo / crmeb.comv8.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 数、模块与驱动数量均以该日为准。部分子目录细节因接口限流未能逐一核对,落地前请以仓库实际内容为准。

标签: 商城, php, crmeb

添加新评论