开发者指南
ShopFaaS 主题开发、应用扩展与开源贡献指南。
ShopFaaS 提供两种扩展方式:主题开发自定义店铺前台外观,应用扩展为店铺添加新功能。两者都不需要修改核心代码,可独立分发与销售。
开发者分类
谁可以开发
任何店长都是开发者。ShopFaaS 不设独立开发者角色:
- 店长默认拥有应用开发全部权限
- 店长可在「设置 → 应用 → 开发」创建并管理应用
- 店长可授权店员部分开发权限
应用归属
应用归属店铺而非个人:
- 店长在店铺内创建并管理应用
- 应用可分享到应用市场供其他店铺安装
- 应用可选择免费或付费分发
隔离与安全
应用扩展采用强隔离机制,确保店铺数据安全:
| 层 | 机制 | 说明 |
|---|---|---|
| 运行时 | 独立 Worker 子线程 | 应用代码独立运行,资源配额限制 |
| 权限声明 | plugin.json 显式声明 | 安装时店长可审查所需权限 |
| 数据访问 | 原子 API + 事件钩子 | 应用不能直接操作数据库,只能调用受控 API |
| 前端 UI | Web Worker 沙箱 | 应用 UI 运行在沙箱,不影响主页面 |
| 数据存储 | 元对象 API | 应用不允许自建数据库表,使用平台元对象存储 |
开发流程
主题开发
- 创建主题目录(
templates/+assets/+locales/+config/+layouts/+sections/+snippets/) - 编写 Liquid 模板
- 在本地店铺安装测试
- 打包为
.zip,提交到主题市场审核
应用扩展开发
- 使用
@shopfaas/plugin-devkit初始化项目 - 编写
plugin.json声明权限与 Webhook - 实现 Action / Webhook handler
- 本地开发测试(HotReload + 调试)
- 打包发布到应用市场(需通过自动化扫描 + 人工审核)
开发工具
| 工具 | 用途 |
|---|---|
@shopfaas/plugin-devkit | 应用扩展开发 CLI(init/dev/test/pack/publish) |
@shopfaas/plugin-runtime | 应用扩展运行时(类型、API、上下文) |
@shopfaas/plugin-bridge | 应用扩展前端 UI 桥接 |
分发与盈利
| 方式 | 主题 | 应用扩展 |
|---|---|---|
| 免费分发 | 支持 | 支持 |
| 付费销售 | 支持 | 支持 |
| 仅店铺自用 | 支持 | 支持 |
| 分享到市场 | 需审核 | 需审核 |
详见 应用市场。