用途:这是构建 Salla App Function 的第三步,用于在触发器的默认 template 内编写 handler 逻辑。先用 salla_functions action=get(带 app_id、trigger)获取 template 与类型,逐字复制 template,代码全部写在函数体内,保留首尾行不变。
主要能力与用法:handler 读取 context.payload.data,可访问 context.merchant、context.payload、context.settings(可选)。必须返回符合 Response 契约的对象,含 success(必填)、data、error、status、message。可用普通对象或 Resp 构建器:Resp.success().setData({})、Resp.error().setMessage(...).setStatus(...);部分触发器提供实体构建器(如 Shipment.success().setShipmentNumber(id))。同步动作中 success:true 使操作继续并合并 data,success:false 拒绝操作并向商家显示错误;异步事件返回值仅记录日志。
限制:运行在受限 V8 isolate,非完整 Node.js,无 npm 与外部库,不支持 fs、net、http/https 服务器、child_process 等核心模块,crypto 仅 Web Crypto,出站请求只能用 fetch()。同步预算约 5 秒、异步约 30 秒,同步目标 <500ms。写或改任何属性访问前,必须先获取并核对 types 中的 .d.ts 字段名,不得猜测。每次 fetch 用 AbortController 限时,校验 res.ok 与响应结构,只返回所需字段;settings 由商家控制需校验与转义,不得记录密钥。具体认证、作用域与端点细节暂未提供。