一句话定位:一套「ThinkPHP 8 + Vue3 + uni-app」的国产私域商城系统,V6 把底层做成了「多应用 + 插件」的组装式架构,后台还自带代码生成器和插件生成器,明显是冲着二次开发与项目交付去的。协议是 MIT,可商用可闭源;但 README 里同时写着「开源版不支持升级、无售后服务」,一键云编译这类卖点又依赖官方云服务,选型前要先把这条线划清楚。
项值
仓库地址https://gitee.com/niushop-team/niushop
项目定位私域商城 / 新零售系统,多应用 + 插件化,面向二次开发
官网 / 演示https://www.niushop.com ;后台演示 v6.site.niucloud.com/admin(admin / 123456)
开源协议MIT(仓库根 LICENSE、README、Gitee 项目信息一致)
当前版本最新标签 v6.5.5;upgrade.md 已在记录 v6.5.6 的商城插件更新
后端技术栈ThinkPHP 8.0.3 / PHP 8.0+ / MySQL 8 / Redis / Workerman 4.1 / 多应用
管理端技术栈Vue 3.2 + TypeScript 4.9 + Vite 4 + Element Plus 2.7 + Pinia 2 + Tailwind
移动端技术栈uni-app(Vue3 + TypeScript)+ uview,出 H5 / 微信 / 支付宝 / 抖音小程序 / App
前台另有工程web/:Nuxt 3(SPA 模式,basePath /web/)
社区热度Gitee 14.7K Star / 1.3K Fork / 913 Watch / 599 Open Issues / 6 PR(2026-11-10 查询)
代码规模498 次提交;语言构成 PHP 41.4%、Vue 33.0%、JS 18.8%、TS 3.1%
维护方杭州牛之云科技有限公司(NIUSHOP / NIUCLOUD),版权标注 2015–2025
文档日期2026-11-10

1. 项目是什么

它不是一个「单商户商城源码」,而是一套「商城 + 插件框架」的底座。仓库里放着四份东西:ThinkPHP 8 后端、Vue3 管理端、uni-app 移动端、Nuxt3 的 PC 前台,另有安装模块、代码生成器、插件生成器与一套文档入口。

V6 与 V5 最大的差别在组织方式:从「一个商城应用」变成「多应用聚合 + 多插件组合」。官方 README 举的例子很直白——一个旅游项目既要商城、又要旅游产品销售、还要会员与客服,传统做法是找几套源码拼,V6 的做法是在一套系统里装几个应用/插件,再 DIY 装修出来。

概念落点说明
多应用niucloud/app/adminapi、app/api、app/install后台接口、前台接口、安装程序分开,各自路由与中间件
插件niucloud/addon/(当前只有 shop)每个插件自带后台菜单、接口、数据表、前端页面
内核niucloud/core/支付、短信、上传、海报、打印、模板、字典等可复用能力
云服务.env 的 [NIUCLOUD] 节点一键云安装、云编译、云发布依赖官方云账号
DIY 装修后台装修 + 移动端组件页面用组件拼,改版不发版
多语言app/lang、前端 i18n接口返回、校验提示、页面文案都走语言包

三点需要先明确:

  • V6 是一次大重构,与 V5 的代码不兼容。网上大量「NIUSHOP 二开教程」还是 V5 的,照抄会处处对不上。
  • 开源版是「能用 + 能改」,不是「能升级 + 有人管」。README 的「开源使用须知」第 1 条原话是:免费商用、保留版权即可,开源版不支持升级,无售后服务。
  • 插件生态目前很薄。仓库里 addon 目录只有 shop 一个插件,官方讲的是「生态会越来越丰富」,实际可选的要到 NIUCLOUD 服务市场看。

2. 核心特性

特性说明对使用者的价值
多应用 + 插件组合商城、会员、客服等能力可按需装,插件可共存一个项目里同时跑多种业务,不用部署多套系统
代码生成器按数据表一键生成后台 PHP 业务代码与对应 Vue 页面常规 CRUD 模块的开发时间从小时级压到分钟级
插件生成器生成插件骨架、菜单、路由、安装脚本二开团队做交付时能统一目录结构与规范
前后端分离后端只出 RESTful 接口,三端各自独立构建前端可替换、可独立发版,接口可给第三方复用
多端覆盖H5、微信/支付宝/抖音/百度等小程序、App一套 uni-app 代码铺开,运营侧只维护一份逻辑
DIY 装修后台可视化拖拽,移动端按组件渲染首页、活动页改版不需要开发介入
内置基础中台权限、站点设置、计划任务、素材、会员、支付、短信、消息、文章不用从零搭地基,直接写业务
队列与定时任务Workerman + redis-queue + crontab 组件订单超时、消息推送、统计任务不阻塞请求
多云存储阿里云 OSS、腾讯云 COS、七牛、华为云 OBS图片视频不占应用服务器磁盘
多支付渠道微信、支付宝,基于 yansongda/pay 与 easywechat收款方式齐全,退款走统一支付层
一键云编译 / 云发布官方云服务代编译小程序并上传免搭构建环境(需云账号,开源版是否可用要确认)
在线升级后台一键升级文件官方宣传点,但开源版明确写「不支持升级」,见第 7 节

3. 技术架构

整体结构:单体 ThinkPHP 8 多应用 + 三个独立前端工程 + Workerman 常驻进程。没有微服务、没有服务注册,典型「一台 4C8G 能撑中型私域商城」的形态。

层技术说明
框架ThinkPHP 8.0.3topthink/framework v8.0.3、think-orm v3.0.14、think-multi-app v1.0.16
运行时PHP 8.0+入口 public/index.php 里硬判断版本低于 80000 直接退出
数据库MySQL 8.env 中 CHARSET = utf8mb4,表前缀由安装时填写
缓存 / 队列Redis + Workermanworkerman/workerman v4.1.15、workerman/redis-queue v1.2.0、workerman/crontab v1.0.6
依赖注入php-di 7.0.1服务与插件通过容器装配
鉴权firebase/php-jwt 5.5.1后台 token 默认 7 天、前台 30 天
支付yansongda/pay ^3.7 + easywechat 6.7.0微信生态用 easywechat,聚合支付用 yansongda
表格 / 图像phpspreadsheet 1.28、grafika、kkook/poster导出 Excel、图片处理、生成分享海报
验证码fastknife/ajcaptcha 1.2.1行为验证码(滑块/旋转)
管理端Vue 3.2.45 + TS 4.9.5 + Vite 4.1 + Element Plus 2.7Pinia 2.0.30、vue-router 4.1.6、Tailwind 3.2、ECharts 5.4、Vditor 编辑器
移动端uni-app 3.0(2023-07 版)+ Vue3 + TS自带 publish.cjs,构建后直接对接小程序上传
PC 前台Nuxt 3.4.1ssr: false,basePath /web/,Element Plus + WindiCSS

后端分层(niucloud/):

目录职责
app/adminapi后台接口:登录、权限、菜单、各业务模块
app/api前台接口:商品、下单、支付、会员、装修数据
app/install安装向导的后端逻辑,配合 public/install.php
app/service业务服务层,插件也往里注册服务
app/model数据模型,按业务域拆分
app/dict字典与枚举,状态值、类型常量集中管理
app/command命令行:插件装卸、菜单刷新、队列、定时、Workerman、改密
app/job / app/listener / app/event.php队列任务与事件监听
app/validate参数校验,提示文案走多语言
app/upgrade版本升级脚本
core/内核:base、dict、loader、pay、sms、upload、oauth、poster、printer、template、util、job、exception
addon/插件目录,当前只有 shop
config/console.php命令行注册表,能看出系统全部后台任务

config/console.php 里注册的命令基本就是运维清单:

命令作用
addon:install / addon:uninstall插件安装与卸载
menu:refresh刷新后台菜单缓存
queue:work / queue:listen / queue:restart队列消费
cron:schedule计划任务调度
workerman长连接服务的启动、停止、重启
reset:password重置管理员密码(忘记密码时的救命命令)
refresh:area刷新省市区数据

几个关键取舍:

  • 插件化而不是微服务:所有插件跑在同一个 PHP 进程里,部署简单、调试直接;代价是插件之间没有隔离,一个插件写出慢查询会拖垮整站。
  • ThinkPHP 8 + PHP 8:官方称是「国内首例 TP8 + PHP8 + MySQL8」的商城,技术栈确实新;但这也意味着老服务器(PHP 7.4)直接出局。
  • 前端三个工程:管理端、移动端、PC 前台分开构建,互不干扰;代价是三个 node_modules、三套构建配置,CI 要分开跑。
  • Workerman 承担队列与定时:不额外依赖 Supervisor 跑多个 PHP 脚本,但需要把 Workerman 进程本身守护好。

4. 目录结构

路径用途
admin/管理端 Vue3 工程,npm run dev 本地起,npm run build 出产物
niucloud/后端 ThinkPHP 8 工程(PHP 41.4% 的主体)
niucloud/app/应用层:adminapi、api、install、service、model、command 等
niucloud/core/内核抽象层:支付、短信、上传、海报、模板、字典、工具
niucloud/addon/插件目录,随仓库只带 shop
niucloud/config/配置:数据库、缓存、控制台命令、路由等
niucloud/public/Web 根目录:index.php、install.php、静态资源
niucloud/.example.env环境变量模板,装完要复制成 .env
niucloud/composer.json依赖清单(注意:仍是 ThinkPHP 骨架原样,见第 11 节)
niucloud/think命令行入口
niucloud/install.lock安装完成标记,缺失时访问会跳安装向导
uni-app/移动端工程,含 publish.cjs 发布脚本
web/PC 前台 Nuxt3 工程,env/ 下分 dev 与 product
upgrade.md版本更新日志,当前记录到商城插件 v6.5.6
LICENSEMIT 全文
README.md项目介绍、技术选型、演示地址、开源使用须知
.htaccess / nginx.htaccessApache 与 Nginx 伪静态参考

一个细节值得注意:后端的 niucloud/README.md 不是 NIUSHOP 的文档,而是 ThinkPHP 框架自带的那份(里面还写着「PHP7.2+,兼容 PHP8.1」)。说明这个后端目录就是在 ThinkPHP 骨架工程上直接改的,骨架自带的文件没有清理干净。

5. 快速上手

路线 A:向导安装(官方推荐姿势)

git clone https://gitee.com/niushop-team/niushop.git
cd niushop/niucloud
composer install
cp .example.env .env

编辑 .env,至少填这几项:

APP_DEBUG = false
[APP]
AUTH_KEY = 随机长字符串
PRODUCT_KEY = 你的产品标识
[DATABASE]
HOSTNAME = 127.0.0.1
DATABASE = niushop
USERNAME = 数据库账号
PASSWORD = 数据库密码
HOSTPORT = 3306
PREFIX = ns_

浏览器访问 http://你的域名/install.php,按向导填数据库、管理员账号,装完会生成 install.lock。之后再访问就走正常入口。

路线 B:本地开发(后端 + 管理端)

cd niucloud
php think run --host 127.0.0.1 --port 8011

另一个终端:

cd admin
npm install
npm run dev

路线 C:移动端与 PC 前台

cd uni-app
npm install
npm run dev:h5
npm run build:mp-weixin
cd web
npm install
npm run dev

移动端编译完用微信开发者工具导入,记得改 manifest.json 里的小程序 appid,并在小程序后台配好 request 合法域名。

路线 D:生产环境的常驻进程

cd niucloud
php think queue:listen
php think cron:schedule
php think workerman start

三条都用 Supervisor 守护。注意 .example.env 里 [QUEUE] state = false 是默认关闭状态,部署时如果没打开,队列不会跑,表现是「订单超时不关、消息不发」,而且不报错。

Nginx 伪静态

location / {
    if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php?s=/$1 last;
    }
}

站点根目录指向 niucloud/public。如果要把管理端、移动端 H5 放在同一域名下,按官方文档分 admin、wap、web 三个子目录,并在 .env 里配 ADMIN_DOMAIN、WAP_DOMAIN、WEB_DOMAIN。

环境要求

  • PHP 8.0 以上,扩展至少要有 json、curl、bcmath、mbstring、zip;
  • MySQL 8,字符集 utf8mb4;
  • Redis(队列与缓存都走它);
  • 部署 Workerman 时要解除 proc_open、pcntl_* 等被面板默认禁用的函数;
  • Node 建议 16 或 18:管理端用 Vite 4,移动端依赖是 2023 年的 uni-app 版本,Node 20+ 上装依赖容易报错。

6. 功能模块清单

管理后台

模块主要能力
商品商品、规格、分类、品牌、参数、评价、库存
订单订单列表、发货、改价、备注、退款、售后
营销优惠券、满减、限时折扣、拼团、秒杀等(随插件)
会员会员列表、等级、分组、余额、积分、提现
财务支付流水、退款记录、对账
装修首页/专题页 DIY,组件拖拽,多端预览
内容文章、公告、帮助中心
渠道微信公众号、小程序、H5、App 配置
系统站点设置、权限角色、管理员、计划任务、素材中心、短信、支付、存储、多语言
工具代码生成器、插件生成器、菜单管理、缓存清理、升级

移动端 / PC 前台

模块主要能力
首页DIY 组件渲染,轮播、导航、商品组、活动位
商品列表、搜索、详情、规格选择、评价
购物车 / 下单多选、优惠券、积分抵扣、地址、支付
会员中心订单、售后、收藏、足迹、优惠券、余额、积分
分销 / 邀请推广码、团队、佣金(随插件启用)
客服会话与消息

7. 版本与授权

项实际情况
版本号最新标签 v6.5.5;仓库共 16 个标签,跨 V4、V5、V6 三条线
版本标识没有 .version 文件,版本靠 Git 标签与 upgrade.md 判断
许可证MIT(仓库根 LICENSE 全文、README 末尾、Gitee 项目信息三处一致),版权方写的是 niucloud-admin,2023
版权方杭州牛之云科技有限公司,README 标注 Copyright 2015–2025
更新节奏最近提交在 2026 年,仍在活跃维护
开源范围README 明确「源码全部开源,包括前端、后端,无任何加密」
升级与售后README「开源使用须知」第 1 条:开源版不支持升级,无售后服务

MIT 的含义很直接:

  • 可以免费商用、闭源修改、对外交付,不必开源你的改动;
  • 只需保留版权声明与许可声明;
  • 没有 AGPL 那种「网络服务必须开源」的约束,也没有 Apache-2.0 的专利条款。

所以协议层面它是这几篇里最宽松的。真正的限制不在协议,而在开源版的功能边界、升级通道与技术支持:README 自己写得很清楚,开源版不提供升级与售后,想要这两样得走商业版。

另外有个细节容易踩:niucloud/composer.json 的 license 字段写的是 Apache-2.0,name 还是 topthink/think,README 也是 ThinkPHP 的。这是骨架文件没改,以仓库根目录的 LICENSE(MIT)为准,但做合规审查时会被问到,建议在交付文档里注明。

8. 商业模式说明

开源版是入口,营收靠企业版、私有云与服务市场。官网导航能看到的形态:

形态定位说明
开源版(本文对象)单商城 + 插件框架MIT,可商用,无升级无售后
企业版商业授权功能更全,含升级与技术支持
高校版教学场景面向院校教学与实训
私有云私有化交付部署在自己的服务器,含服务
服务市场(NIUCLOUD)插件与应用交易官方与第三方插件、模板在此分发
定制 / 二开服务项目交付官方与合作服务商承接

它的变现逻辑和 CRMEB 类似,但重心更偏「开发者工具」:代码生成器、插件生成器、云编译、云发布这些能力,本质是在降低二开与交付成本,让服务商用这套底座去接项目。对个人站长,这些功能价值有限;对做交付的小团队,这才是真正的卖点。

需要泼一盆冷水的地方:

  • 「一键云安装、云编译、云发布」依赖官方云账号(.env 里的 [NIUCLOUD] code / secret),不是装完就能离线用。私有化环境里这些按钮大概率不可用。
  • 开源版的「在线升级」与「不支持升级」是矛盾的。README 一边说内置在线升级,一边在须知里写开源版不支持升级。合理解释是:升级能力面向付费版本开放,开源版要么手动合并代码,要么放弃升级。以官方说明为准,别按宣传页做规划。
  • 插件要钱。仓库只带 shop,更多行业插件在服务市场单独售卖,预算里要留出来。

9. 生态与周边

项目 / 资源作用地址
Gitee 主仓库开源版全量源码(后端 + 三端前端)gitee.com/niushop-team/niushop
NIUSHOP 官网产品线、案例、购买www.niushop.com
NIUCLOUD 官网服务市场、云服务www.niucloud.com
使用手册安装、配置、运营doc.niucloud.com
二开手册插件开发、目录规范doc.niucloud.com
API 接口手册在线 API 文档api.niucloud.com/apidoc.html
论坛提问与经验niucloud.com/bbs
后台演示admin / 123456v6.site.niucloud.com/admin
H5 演示移动端效果v6.site.niucloud.com/wap/
宝塔安装文档面板部署步骤doc.niucloud.com(V6 安装章节)

生态上的空白要说清楚:没有 GitHub 官方镜像,没有 Docker 官方镜像,也没有 Helm / K8s 清单。仓库根目录只有 Apache 与 Nginx 的伪静态参考文件,部署方式就是「传代码 + 建库 + 跑向导」这一条路。

10. 选型建议

适合你,如果:

  • 你是做项目交付的团队,需要一套能快速改、能加插件、能重复用的商城底座;
  • 团队熟 ThinkPHP 与 Vue3,能读 TypeScript;
  • 需要多端(H5 + 多平台小程序 + App),又不想维护多套前端;
  • 看重 MIT 协议,可能要做闭源交付;
  • 服务器已经能跑 PHP 8 + MySQL 8 + Redis。

不适合你,如果:

  • 只想开个店、不打算写代码——用 SaaS 或更轻的开源商城更省事;
  • 依赖「一键升级」保持版本跟进,又不准备买商业授权;
  • 需要成熟的多商户分账、跨境多币种这类平台能力(要看商业版);
  • 运维能力薄弱:常驻进程 + 队列 + 多前端工程,出问题的面比单应用大;
  • 对插件生态有预期:当前开源仓库只有商城一个插件。

和同类怎么比:CRMEB 的功能面更宽、营销玩法更多、社区更大;NIUSHOP V6 的架构更「工程师友好」,插件化、代码生成器、多应用这套设计对二开更友好,但生态薄、插件少、社区响应慢。要「开箱即用的功能」,选 CRMEB;要「能长期改造的底座」,NIUSHOP 的结构更干净。

11. 风险与坑

  • 开源版不支持升级:这是 README 的原话,不是推测。意味着你拿到的是一份快照,后续官方修的安全问题、加的功能,要么手动 diff 合并,要么买商业版。上线前把这条写进项目风险清单。
  • 「内置在线升级」与上一条冲突:后台确实有升级入口,但开源版是否有可用的升级包,要以官方说明为准。别把它当成运维方案。
  • composer.json 还是 ThinkPHP 骨架:name 为 topthink/think、license 为 Apache-2.0、README 也是框架自带。跑 composer update 时容易把框架依赖整体升上去,插件兼容性没人保证。不要在生产环境直接 update。
  • .example.env 默认不安全:APP_DEBUG = true、Redis 密码为空、AUTH_KEY 与 PRODUCT_KEY 是占位符。上线前必须改,APP_DEBUG 一定要设 false,否则异常页会把路径与 SQL 打给访客。
  • 默认关闭队列:[QUEUE] state = false,不打开就不会有队列消费,表现是「功能看着正常,实际不执行」。
  • 前端依赖停留在 2023 年:uni-app 是 3.0.0-3080720230703001,管理端 Vite 4 + TS 4.9 + Vue 3.2。Node 20 及以上安装依赖大概率报错,建议固定 Node 16/18,并在 CI 里锁定版本。
  • 三个前端工程、三份依赖:admin、uni-app、web 各自 npm install,构建产物要分别对接,部署脚本要写清楚,否则很容易漏掉 PC 前台。
  • 599 个 open issue 与 6 个 PR:issue 数量说明用的人多,PR 极少说明社区贡献通道不畅,遇到问题主要靠官方群和文档自助。
  • install.php 的锁逻辑:入口 index.php 在缺少 install.lock 时会跳到 /install.php;而当前代码里 install.php 对安装锁的校验被注释掉了。装完之后建议直接删掉或限制访问安装入口,避免被重装。
  • 重装会覆盖数据:向导重装会重建数据表,生产环境务必在装完后移除安装入口,并做好数据库备份。
  • Workerman 需要放行函数:proc_open、pcntl_* 被宝塔等面板默认禁用,不解除就起不来。解除范围按需最小化。
  • 云编译依赖云账号:.env 的 [NIUCLOUD] 节点为空时,一键云编译、云发布这类功能不可用;私有化部署别把交付流程押在这些按钮上。
  • 演示站口令是公开的:admin / 123456,别在里面填真实数据,也别沿用这个口令上线。
  • V5 教程不适用 V6:网上大量二开文章基于 V5,目录结构、插件机制、前端技术栈都不一样,照抄会浪费大量时间。
  • MIT 也要保留版权:可以闭源交付,但 LICENSE 与版权声明不能删;客户做合规审查时会看。

12. 参考链接

名称地址
代码仓库(Gitee)https://gitee.com/niushop-team/niushop
NIUSHOP 官网https://www.niushop.com
NIUCLOUD 官网 / 服务市场https://www.niucloud.com
使用与二开手册https://doc.niucloud.com
API 接口手册https://api.niucloud.com/apidoc.html
论坛https://niucloud.com/bbs
后台演示https://v6.site.niucloud.com/admin
H5 演示https://v6.site.niucloud.com/wap/
MIT 协议全文https://opensource.org/license/mit
ThinkPHP 8 文档https://doc.thinkphp.cn
uni-app 文档https://uniapp.dcloud.net.cn
Nuxt 3 文档https://nuxt.com

本文基于 2026-11-10 的 master 分支源码(composer.json、.example.env、config/console.php、public/index.php、各前端 package.json、目录结构)、Gitee 项目页与官方 README 整理;Star 数、issue 数、标签版本均以该日为准。插件数量、开源版升级政策等以官方最新说明为准,落地前请在测试环境实测。

标签: 商城, php, niushop

添加新评论