HigoShop 产品说明文档
B2B2C 多商家短视频直播种草阶梯拼团电商系统 —— 基于 NiuCloud 多站点 SaaS 框架的业务应用插件, 覆盖平台运营、商家经营、门店收银与会员消费全链路。
1产品简介
HigoShop 是运行在 NiuCloud 多站点 SaaS 框架之上的一套完整电商业务应用,面向「平台—商家—会员」三层角色, 把 多商户经营(B2B2C)、内容电商(直播 / 短视频 / 种草社区)、社交裂变(阶梯拼团 / 分销)、 线下门店收银(专业收银台) 四件事整合在同一套系统里。
148 张数据表
higo_* / higo_shop_* 前缀,覆盖商品、交易、营销、内容、财务、物流、收银全域。
200 个服务类
按 core / admin / api / seller / cashier 五套分层,跨端逻辑复用。
约 1300 条路由
四个后端端口独立鉴权,管理端 698 / 移动端 386 / 商家端 197 / 收银台 47。
400+ 前端页面
管理后台 258(Vue3)+ 移动端 142(uni-app)+ 商家端 + 收银台。
1.1 典型使用场景
平台方
招商入驻、类目管控、抽佣与结算、内容与资金审核、全盘数据看板。
商家
建店装修、上架商品、做营销活动、开直播、处理订单与售后、对账提现。
门店店员
用收银台完成线下开单收款,含交接班流程与打印机 / 钱箱 / 扫码枪对接。
会员 / 分销商
逛商城、看直播种草、下单、分享赚佣金、积分兑换。
1.2 一句话能力清单
多商户入驻 · 商品 SPU/SKU 全链路 · 拼团(含阶梯拼团)· 秒杀 · 限时折扣 · 满减 · 优惠券 · 新人专享 · 积分商城 · 卡密购物额度 · 直播带货 · 短视频 · 种草社区 · 分销三级分佣 · 店铺装修 DIY · 电子面单 · 同城/门店配送 · 专业收银台(POS + 交接班)· 平台结算抽佣 · 全站数据看板。
2系统架构
2.1 四端四端口
HigoShop 采用「四个前端 + 四个后端端口」架构,每个端口拥有独立的路由文件、中间件与鉴权体系。
┌──────────────────────────────────────────────────────────────────┐
│ NiuCloud 框架内核 │
│ 站点 / 会员 / 支付 / 上传 / 消息 / 权限 / 多语言 / 计划任务 │
└──────────────────────────────────────────────────────────────────┘
↑ ↑ ↑ ↑
/adminapi /sellerapi /api /cashierapi
│ │ │ │
平台管理后台 商家工作台 移动端商城 门店收银台
Vue3 + Vite Nuxt3 + Vue3 uni-app Vue3 + Electron
258 页面 197 路由 142 页面 47 路由
| 端口 | 路由前缀 | 前端工程 | 技术栈 | 鉴权中间件 | 说明 |
|---|---|---|---|---|---|
| 管理端 | /adminapi/higo_shop/* | admin/ | Vue 3 + Vite + Element Plus + TS | AdminCheckToken + AdminCheckRole + AdminLog | 平台运营后台,698 条路由 |
| 商家端 | /sellerapi/higo_shop/seller/* | seller/ | Nuxt 3 + Vue 3 + Element Plus + ECharts | SellerAuth | 商家 PC 工作台,197 条路由,开启 complete_match |
| 移动端 | /api/higo_shop/* | uni-app/ | uni-app(H5 / 微信小程序 / App) | ApiChannel + ApiCheckToken + ApiLog | C 端商城,386 条路由,分免登录 / 需登录两组 |
| 收银台 | /cashierapi/* | cashier/ | Vue 3 + Vite + Electron | CashierAuth | 门店 POS,47 条路由 |
· 移动端路由被刻意拆成三组:强制登录组(
ApiCheckToken, true)、免登录组(ApiCheckToken, false)、腾讯云直播回调组(仅 ApiChannel)。· 免登录接口必须保留
ApiCheckToken,只把第二参数改为 false —— 站点解析(site_id)与渠道校验都写在该中间件里,去掉后 site_id 恒为 0,所有按站点读取的配置都会静默回落到默认值。· 商家端整组开启
complete_match => true,避免 ThinkPHP 前缀匹配把 order/stat、order/export 之类的长路由吞成订单列表。
2.2 后端分层
site_id;业务规则全部下沉到 app/service;跨端复用逻辑放 service/core。2.3 双目录同步
插件源码存在双目录(真源码 + 框架镜像),两边必须同步修改:
| 端 | 真源码 | 镜像目录 |
|---|---|---|
| 管理后台 | admin/src/addon/higo_shop/ | niucloud/addon/higo_shop/admin/ |
| 移动端 | mp-higo-shop/src/addon/higo_shop/ | niucloud/addon/higo_shop/uni-app/ |
| 收银台 | cashier/src/ | niucloud/public/cashier/ |
| 商家端 | seller/app/pages/ | niucloud/public/seller/ |
3角色与权限模型
| 角色 | 入口 | 身份来源 | 主要能力 |
|---|---|---|---|
| 平台管理员 | 管理后台 /admin | 框架管理员账号 + 角色菜单 | 全部配置、审核、资金、数据 |
| 商家主账号 | 商家端 /seller | higo_shop_user(可独立登录) | 本店商品 / 订单 / 营销 / 财务 / 装修 |
| 商家子账号 | 商家端 | higo_shop_user + higo_shop_role | 按角色菜单授权 |
| 收银员(店员) | 收银台 | higo_shop_cashier_clerk(含 PIN 快捷登录) | 开单收款、挂单取单、退款、交班;受权限点约束 |
| 会员 | 移动端 | 框架 member | 购物、内容互动、分销 |
| 分销商 | 移动端 | higo_distribution | 推广、团队、佣金、提现 |
权限点示例(收银台):order.create / order.refund / shift.start / shift.end /
member.view / goods.stock 等;店长(主账号或 role=1)恒拥有全部权限。
4平台管理后台
后台菜单树(源:app/dict/menu/site.php):
5商家工作台
| 模块 | 能力 |
|---|---|
| 概况 | 经营概览、销售趋势、商品榜 |
| 商品 | 列表 / 新增 / 编辑 / 上下架 / 删除 / 初始化字典 / 类目树 / 品牌 / 标签;直营模式:从平台商品库选品销售、单独设价、取消直营 |
| 类目 | 已通过类目、平台类目申请与进度查询 |
| 订单 | 列表 / 详情 / 发货 / 批量发货 / 取消 / 状态统计 / 导出 / 物流公司 |
| 售后 | 列表 / 详情 / 同意 / 拒绝 / 确认收货 / 统计 |
| 店铺 | 店铺信息 / 设置 / Logo / Banner / 品牌 / 店铺装修 DIY(模板、组件、发布) / 详情页模板 |
| 营销 | 优惠券(含批量发放、领取记录、作废)、限时折扣、秒杀、拼团、阶梯拼团、卡密开关 |
| 内容 | 短视频、直播、客服聊天 |
| 财务 | 店铺钱包 / 流水 / 提现申请 / 提现配置 / 收款账户 / 撤销 / 结算记录 / 银行卡;直营结算与直营收益提现 |
| 团队 | 阶梯团队、佣金、结算 |
| 物流 | 运费模板(支持按行政地区指定) |
| 收银台 | 概览 / 商品 / 会员 / 开单 / 挂单 / 收款记录 / 退款 / 班次与交接 / 店员与角色 / POS 机(只读) |
| 统计 | 经营概览、销售统计、商品统计(含商品榜)、订单统计 |
| 客服 | 会话列表 / 消息 / 发送 / 在线状态 / 未读 / 已读 / 清空 |
6移动端商城
6.1 商品与交易
- 商品:列表 / 详情 / SKU / 分类树 / 推荐 / 收藏 / 取消收藏 / 浏览记录 / 评价 / 组件数据(装修用)
- 购物车:列表 / 数量 / 加购 / 改数量 / 删除 / 清空
- 下单:
order_create/calculate结算试算 → 优惠券 / 自提点 / 同城配送选择 →order_create/create创建订单 - 订单:列表 / 详情 / 状态 / 数量 / 取消 / 确认收货 / 删除 / 物流 / 交易配置
- 售后:申请 / 列表 / 详情 / 取消 / 退款原因 / 退货发货 / 编辑 / 关闭 / 统计
- 发票:配置 / 列表 / 详情 / 申请开票
- 评价:发表、我的评价、商品公开评价
6.2 营销玩法
| 玩法 | 说明 |
|---|---|
| 拼团 | 活动列表 / 商品 / 开团参团 / 团详情 / 我的拼团订单 |
| 阶梯拼团 | 成团人数阶梯对应阶梯价,人越多价越低 |
| 秒杀 | 场次、时间段、当前场次、商品列表与详情 |
| 限时折扣 | 商品折扣信息、订单级折扣 |
| 满减 | 商品满减、订单满减 |
| 优惠券 | 领券中心 / 领取 / 我的券 / 可用券 / 券详情 / 二维码 |
| 新人专享 | 新人价、新人专享商品、配置 |
| 商品排行 | 榜单配置、榜单商品、装修组件 |
| 积分商城 | 积分信息、兑换列表/详情、积分订单计算与创建 |
| 卡密 / 购物额度 | 卡密查询、激活、我的额度、四额度统计(运费 / 消费 / 提货 / 购物)、抵扣明细、订单抵扣试算 |
6.3 内容与社交
直播
列表 / 详情 / 分类 / 创建 / 开播 / 结束 / 更新 / 删除 / 推流地址重新签发;实时消息(进入、离开、点赞、评论、送礼)、在线人数、消息历史、礼物列表;腾讯云推流 / 录制回调(免登录)。
短视频
列表 / 详情 / 上下滑动 / 评论 / 点赞 / 收藏 / 分享 / 关注 / 发布 / 我的 / 可见性 / 删除。
种草(Sow)
列表 / 详情 / 点赞 / 评论 / 发布 / 我的 / 删除 / 分类。
发现(Find)
动态 / 详情 / 发布 / 点赞 / 评论 / 关注 / 粉丝 / 用户主页 / 商品关联动态 / 举报。
文章
列表 / 详情 / 分类 / 树 / 热门 / 推荐 / 帮助 / 公告 / 评论。
IM 客服
会话、历史、发送、已读、删除、清空、绑定、浏览商品、订单列表(GatewayWorker WebSocket)。
6.4 会员中心与分销
信息 / 资料更新 / 收藏 / 足迹 / 关注(店铺与用户)/ 粉丝 / 统计 / 账户 / 地址 / 银行卡 / 钱包(充值、明细、历史提现记录)/ 积分 / 签到(配置、签到、记录、排行)/ 评价 / 投诉 / 反馈 / 通知(系统、物流、聊天、未读、已读、清空)。
分销:配置 / 等级 / 我的分销信息 / 申请成为分销商 / 邀请码绑定上级 / 团队 / 分销订单 / 佣金明细 /
提现(走框架 member_cash_out,账户类型 commission)/ 提现记录。
money/withdraw 路由保留仅用于给旧版客户端返回明确文案,控制器已硬拒绝。真实提现统一走框架通道。6.5 移动端商家管理
以会员 token 鉴权的轻量商家入口:工作台概览 / 商家入口判定 / 店铺信息与编辑 / 商品管理(列表、详情、上下架、改库存、删除、新增、编辑)/ 订单(列表、详情、发货、批量发货、改物流、取消、状态计数、物流公司)/ 售后处理 / 财务钱包与提现 / 佣金与结算 / 营销优惠券全套。
7收银台(v2.3.0)
专业门店收银,分为 Web 版与 Electron 桌面版双形态。
7.1 标准作业流程
- 确认身份:门店 / 终端 / 收银员 / 权限(POS 机心跳上报在线状态)
- 上一班交接:
GET cashier/shift/handover一次拉全 —— 当前班次、上一班班次号与交班人、应有金额、收款构成、上一班未结挂单数 - 备用金清点:按面额数张数(100/50/20/10/5/1/0.5/0.1),系统自动合计
- 开店自检:打印机 / 钱箱 / 扫码枪 / 支付方式,可实测(每一步都可以跳过,不阻断收银)
- 确认开班:
POST cashier/shift/start;已有未交班班次则走「接管」模式,不重复开班 - 收银:扫码或商品墙选品 → 多规格必须弹选择器(三入口:商品墙点击、扫码命中多 SKU、购物车行改规格)→ 会员绑定 → 开单(
is_hold=1挂单)/ 收款 → 支付结果轮询或确认 - 交班:
POST cashier/shift/end,按面额清点实交现金,系统计算长款 / 短款 / 账实相符,需双人复核
7.2 关键能力
挂单全流程
挂单 / 取单 / 回挂 / 作废,交接班时告知接班人未结挂单数。
支付与退款
开单、收款、支付结果轮询、支付查询、关闭支付;退款与退款结果轮询兜底。
会员
手机号 / 会员卡号 / 会员 ID 检索,订单会员绑定与解绑。
硬件
钱箱开箱、打印任务推送 / 拉取 / 确认(适配 Web 端无法直连打印机)。
班次
当前班次、接班概览、开班、交班、班次列表与详情对账。
权限
店长 / 店员两级,权限点可配,店长恒拥有全部权限。
8核心业务流程
8.1 商家入驻
8.2 下单与支付
trade_type 分流,确认方法必须幂等。8.3 售后退款
- 平台可介入退款、审核、批量处理;
- 退款会同步失效分销佣金(已入账的从会员账户扣回,余额不足按余额扣并记日志,不阻断退款);
- 本地通道退款不得在
refund()里提前把refund_status置为 DONE(会导致refund_money恒为 0),应只写refund_no交给confirmRefund()。
8.4 结算与分佣
| 链路 | 说明 |
|---|---|
| 平台抽佣 | 管理端配置抽佣比例 / 阶梯佣金 / 类目佣金 |
| 店铺结算 | 商家提交结算申请 → 平台审核(通过 / 拒绝 / 批量)→ 打入店铺钱包 |
| 直营结算 | 商家销售平台直营商品,单独计算与结算,支持批量结算 |
| 分销佣金 | 结算节点可配(支付后 / 订单完成)+ 冻结期;订单级幂等;退款失效;到期自动入账到框架会员账户 member.commission |
| 提现 | 统一走框架会员提现(CoreMemberCashOutService,account_type=commission),最低金额 / 手续费率 / 提现方式读系统【会员提现设置】 |
status=1,按 pay_time 取 paid_money − refund_money)。9数据模型
148 张表,按业务域分组(前缀 higo_ / higo_shop_):
| 业务域 | 主要表 |
|---|---|
| 商品 | higo_goods、higo_goods_sku、higo_goods_spec、higo_goods_spec_value、higo_goods_attr、higo_goods_category、higo_goods_evaluate、higo_goods_label(_group/_ref)、higo_goods_visit、higo_goods_rank、higo_brand |
| 交易 | higo_order、higo_order_goods、higo_order_log、higo_cart、higo_refund、higo_refund_log、higo_invoice、higo_payment |
| 营销 | higo_coupon(_member)、higo_discount(_goods)、higo_seckill(_goods)、higo_pintuan(_goods/_order/_team)、higo_groups(_order)、higo_ladder_groups(_member/_order/_price)、higo_shop_manjian、higo_shop_newcomer_member_records |
| 卡密 | higo_cardkey_batch、higo_cardkey、higo_cardkey_member_quota、higo_cardkey_order_deduct |
| 内容 | higo_live(_category/_replay)、higo_video(_comment/_like/_live/_vod)、higo_find* |
| 直播互动 | higo_shop_live_comment、_follow、_gift、_like、_message |
| 商户 | higo_shop、higo_shop_category(_apply)、higo_shop_address、higo_shop_service、higo_shop_user(_role)、higo_shop_role(_menu)、higo_shop_decoration(_template)、higo_shop_supplier |
| 会员 | higo_shop_member(_level/_log)、higo_shop_collect、higo_shop_follow、higo_shop_member_sign、higo_shop_member_withdraw(_account)、higo_address |
| 分销 | higo_distribution、_apply、_level、_member、_order |
| 财务 | higo_shop_wallet(_log)、higo_shop_settlement(_apply)、higo_shop_commission_tier/_category/_detail、higo_direct_sale_settlement、higo_direct_sale_withdraw、higo_shop_bank_card |
| 物流 | higo_shipping_template(_detail)、higo_delivery_company、higo_delivery_electronic(_sheet)、higo_delivery_local、higo_delivery_store、higo_delivery_staff |
| 收银台 | higo_shop_cashier_order(_goods)、_pay(_log)、_shift、_clerk、_pos、_hardware、_print_task、_login_log |
| 内容 / 客服 | higo_article(_category/_comment)、higo_shop_chat、higo_shop_notice_config、higo_shop_notice_wechat_template、higo_shop_notice_weapp_template、higo_shop_member_notice |
| 其它 | higo_config、higo_complaint、higo_feedback、higo_huifu_*(汇付)、higo_seller_* |
site_id 站点隔离、status 状态、软删 delete_time、时间统一 int 秒级 create_time / update_time。10技术栈与环境
| 层 | 技术 |
|---|---|
| 服务端 | PHP >= 8.0,ThinkPHP 8.0.3,think-orm 3.0.14,NiuCloud 内核 |
| 实时通信 | GatewayWorker(WebSocket,配置见 app/config.php 的 websocket,注册地址 127.0.0.1:1238,服务端口 8282) |
| 管理后台 | Vue 3 + Vite + TypeScript + Element Plus |
| 商家端 | Nuxt 3 + Vue 3 + Element Plus + ECharts + WindiCSS |
| 移动端 | uni-app(Vue 3,编译到微信小程序 / H5 / App) |
| 收银台 | Vue 3 + Vite + Element Plus + Pinia,Electron 桌面壳 |
| 数据库 | MySQL 5.7+ / MariaDB(默认表前缀 hi_,代码内禁止写死,须读 config('database.connections.mysql.prefix')) |
11安装与部署
11.1 安装
- 将插件目录放入
niucloud/addon/higo_shop/; - 后台「应用管理」安装 HigoShop,自动执行
sql/install.sql(148 张表); - 执行菜单同步:
php think menu:refresh -a higo_shop(菜单源app/dict/menu/site.php); - 按需配置:平台配置(入驻、抽佣、结算、直营)、直播配置(推流 / 播放域名、鉴权密钥,保存入库,前端通过
/api/higo_shop/getLiveConfigInfo动态读取)、IM 配置、消息通知模板。
11.2 构建前端端口
# 管理后台 cd admin && npm run build # 商家端(必须用构建脚本,内部会处理 index.html entry 替换) cd seller && bash build.sh --publish # 收银台 Web 版 cd cashier && npm run build # 收银台 Electron 桌面版 cd cashier && npm run electron:build # 移动端(微信小程序) cd mp-higo-shop && ./node_modules/.bin/uni build -p mp-weixin
niucloud/public/seller/index.html 里的 entry.* 引用替换为新产物中的同名文件,并复制为 200.html / 404.html,否则 SPA 路由会 404。11.3 升级
- 升级脚本目录:
app/upgrade/v<去点版本>/(如v220); upgrade.sql里表名写裸表名(框架自动补前缀),禁止写CREATE TABLE IF NOT EXISTS(框架的正则会把IF当成表名);- 新增字段放
Upgrade.php,执行前先SHOW COLUMNS判断; install.sql必须覆盖所有升级脚本产生的变更,保证全新安装与升级后结构一致。
11.4 测试数据
管理端「系统工具 → 测试数据」可一键导入 / 清空全站演示数据(生成器 .workbuddy/scripts/gen_testdata.php,数据文件 sql/testdata-fullsite-v220.sql)。
12版本记录(节选)
| 版本 | 要点 |
|---|---|
| v2.2.0 | 收银台重构为独立端口(/cashierapi);POS 机、店员(含登录账号密码与 PIN)、硬件配置(打印机 / 钱箱 / 扫码枪 / 客显 / 电子秤);商家端新增收银台入口开关与免密跳转 |
| v2.2.1 | 资金口径与框架统一:分销佣金入框架会员账户、提现走框架通道 |
| v2.2.2 | 统计卡片统一(StatKpiCard)、订单列表重构、平台侧收银台订单只读对账、订单状态角标计数 |
| v2.2.3 | 营销中心新增卡密 / 购物额度(批次生成、冻结解冻、额度抵扣、四额度统计、导出) |
| v2.2.4 | 商家端 PC 全面重构(--sk-* 设计系统)、店铺装修优先级(已发布装修 > 商家模板 > 平台默认)、时尚 / 科技两套模板 |
| v2.3.0 | 收银台优化:登录后强制接班向导(身份确认 / 上一班交接 / 备用金按面额清点 / 开店自检 / 开班)、班次对账页重构、多规格必须弹选择器(三入口)、全局 UI 升级(深蓝渐变顶栏 + 极光扫光 + 网格遮罩) |
13开发者约定(速查)
| 主题 | 约定 |
|---|---|
| 响应格式 | 四端统一 { code, msg, data };code=1 成功,code=0 业务失败,401 登录失效(收银台)。注意:框架 success($msg, $data) 与插件服务层 success($data, $msg) 参数顺序相反,插件控制器层已兼容两种写法 |
| 站点隔离 | 控制器内用 $this->request->site_id / shop_id,不要自行解析 header |
| 路由 | 更具体的路径必须注册在裸路径之前(order/info 在 order 之前);商家端已用 complete_match 兜底 |
| 分页 | pageQuery() 返回分页对象,行数据在 data.data;limit 有硬上限 120 |
| 时间 | 数据库 int 秒级,前端统一用 formatDate(),禁止 new Date(v * 1000) |
| 布尔 | 禁止字符串比较('true' === $v 恒 false),统一 isTruthy() |
| 金额 | 前端传来的价格类字段不可信,一律以后端库值为准 |
| 类型 | PHP 8 strict_types 下,float / int 形参必须显式 floatval() / intval(),?? 0 挡不住 "0.00" |
| 模型 | 禁止同一字段同时声明 $json 与 $type(会先解成 stdClass 再 json_decode,触发 TypeError) |
| 异常 | PHP 8 未定义属性抛 Error,catch (\Exception) 抓不到,要用 \Throwable |
| 表单 | Element Plus 表单统一 size="large",抽屉底部按钮左对齐,图片 / 视频字段一律用上传组件 |
| 配色 | 涨红跌绿(中国大陆习惯) |
14附录:主要文件路径
| 用途 | 路径 |
|---|---|
| 应用元信息 | niucloud/addon/higo_shop/info.json |
| 全局配置 | niucloud/addon/higo_shop/app/config.php |
| 建表脚本 | niucloud/addon/higo_shop/sql/install.sql |
| 菜单字典 | niucloud/addon/higo_shop/app/dict/menu/site.php |
| 移动端路由 | niucloud/addon/higo_shop/app/api/route/route.php |
| 商家端路由 | niucloud/addon/higo_shop/app/sellerapi/route/route.php |
| 收银台路由 | niucloud/addon/higo_shop/app/cashierapi/route/route.php |
| 管理端路由 | niucloud/addon/higo_shop/app/adminapi/route/{route,settlement,finance}.php |
| DIY 组件字典 | niucloud/addon/higo_shop/app/dict/diy/ |