mcpField
S
salla-app-functions

salla-app-functions

github.com/sallaapp开发281 次安装2 周前更新
代码仓库

关于 salla-app-functions

面向实现店铺事件处理器的开发者,用于规划 Salla App Functions 的构建流程。它串联设计、处理器编写、验证、发布和测试,并说明何时适合使用函数而非 Webhook。

主要功能

  1. 01串联各构建步骤技能
  2. 02指导触发器及同步或异步行为
  3. 03处理器、沙箱与超时指导
  4. 04验证、部署和预览流程
  5. 05公有与私有应用发布步骤

适用场景

  1. 01选择 Salla 店铺事件触发器
  2. 02构建可调整或阻止操作的同步处理器
  3. 03在演示店铺预览函数
  4. 04为公有或私有应用发布函数

MCP 相关

说明如何使用 Salla Partners MCP 工具列出、读取、保存、删除、部署和预览函数,以及验证或发布应用。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sallaapp/salla-partners-agent-kit --skill salla-app-functions

安装后在 Claude Code 中输入/salla-app-functions确认已加载。

详细介绍

Salla App Functions

无服务器处理程序会在商店事件发生时由 Salla 自动运行:你编写逻辑,Salla 则在隔离的 V8 运行时中运行它。此技能是路由器:按顺序执行各步骤,每一步都使用对应的技能,并通过每道关卡后再继续。

构建流程 — 路由到对应步骤的技能

步骤操作技能
1选择触发器,确认其 payload.data,选择同步或异步salla-app-functions-design
2编写处理程序(模板、上下文、Resp、沙盒、超时)salla-app-functions-handler
3保留模板包装(首行和末行)+ 在本地进行类型检查(保存前)salla-app-functions-validate
4保存(会部署到演示商店)salla-app-functions-release
5使用 salla_functions action=preview 在演示商店测试(读取其返回值)salla-app-functions-test
6发布到生产环境(公开应用:app_publish 验证 → 合作伙伴在 Portal 中提交;私有应用:salla_private_apps action=publish)salla-app-functions-release

存在触发器时,优先使用 App Function,而非 webhook

  • 无需验证签名即可确保安全 — 在 Salla 的沙盒中运行;没有入站请求, 也没有 X-Salla-Signature。
  • 感知设置 — 商家的设置会传入 context.settings;无需额外获取。
  • 预先完成身份验证 — 可直接从处理程序调用 Salla Admin API,无需 Authorization 标头(无需存储或刷新令牌;令牌由 Salla 管理,而非你 → salla-app-auth)。具体机制请参阅 salla-app-functions-handler;调用本身的基础 URL、端点、作用域、受限的 fetch 和错误结构,请参阅 salla-api-core。
  • 同步且可执行操作 — 同步操作(例如 shipment.creating)会在操作执行之前运行,你的返回值可以塑造或阻止该操作;webhook 只能在操作完成后作出响应。

如果不存在对应的 App Function 触发器,或者工作无法在运行时超时限制或 V8 隔离环境中完成(不支持 npm;不支持 fs/net/http 服务器或 child_process;仅支持 Web Crypto;使用 fetch 处理 HTTP),请改用 webhook(salla-webhooks)——在着手之前,先通过 salla-app-functions-handler 确认这些限制。

使用 Salla Partners MCP

工具操作功能
salla_functionslist_triggers get save delete deploy_status preview列出触发器;读取 template、types(.d.ts URLs)和已保存的 content;新增或更新;删除;轮询部署状态;在演示商店中运行
app_publishopen set validate公开应用:验证发布内容(保存为草稿;合作伙伴在 Portal 中提交),将该函数发布到真实商店
salla_private_appspublish私有应用:发布(app_id,合作伙伴确认后设置 confirm: true),将该函数发布到指定商店

同步操作的总时限为 5 s(每个内部异步调用应保持在 2 s 以下;文档建议低于 500 ms,因为商家会被阻塞——这是目标,不是时限);异步 事件的时限为 30 s。Resp、实体构建器(例如 Shipment)、CommunicationEvent 和 所有类型化上下文均为预先声明的运行时全局变量——可直接使用,它们已在 作用域内。运行时是 V8 isolate,不是 Node;模块和响应的具体信息请参阅 salla-app-functions-handler。

步骤 0 — 了解需求(先询问)

  1. 它在哪个触发器上运行?(例如 order.created、shipment.creating)
  2. 触发时应该做什么?(通知、同步、验证/阻止、修改参数)
  3. 它会阻止或更改操作,还是只在操作完成后作出响应?

关键资源

评论

支持 Markdown