用途:在演示商店中运行已保存的 Salla App Function,验证其行为后再发布,无需使用 Portal。
主要能力:salla_functions action=preview 会在服务端针对演示商店调用函数并原样返回响应(http_status + response)。save 和 deploy_status 也会返回一个预览 URL,但该 URL 需要认证、客户端无法调用,因此应使用 action=preview 来运行函数。
使用方式:
- 等待部署。save 返回一个部署任务,部署完成前函数不可运行。可轮询 salla_functions action=deploy_status(job 为 action=save 返回的值),status 为 COMPLETED 表示就绪,FAILED 则查看 failure_reason 并修复;也可直接调用 action=preview,未就绪时会返回“still deploying … retry in ~30s”。
- 收集表单输入(真实 ID)。preview 需要触发器的表单字段,应先通过 salla_functions 确认确切字段名,不要假设是 order_id / shipment_id。store_id 始终必填,为已安装的演示商店,可用 salla_apps action=demo_stores 列出并选择已连接的商店;资源 ID(order_id、shipment_id 等)必须是真实记录,因为 preview 会针对真实数据运行真实函数,需用该商店的访问令牌通过 Salla Admin API 获取或创建。令牌处理见 salla-app-auth,Webhook 签名验证与幂等性见 salla-webhooks。
- 调用示例(占位符需替换为真实 ID):salla_functions action=preview,app_id=2133776579,trigger=shipment.created,store_id=660806774,payload={ shipment_id: 12312 }(表单字段,不含 store_id)。
适用场景:发布前在演示商店验证函数,覆盖正常路径、边界情况(空/空字段)和错误情况(API 失败、超时)。检查返回响应中的执行状态、响应数据、执行时间、console.log() 输出及错误。更改在发布前保留在沙箱中。
限制与安全:商店访问令牌是实时商户凭据,应保存在内存中并限定于所属演示商店;使用含合成记录的演示商店,测试后恢复更改的配置。常见错误包括仍在部署或部署失败、缺少必填表单字段、store_id 缺失、应用未安装或未激活、获取资源 ID 时返回 401/403(令牌或权限范围问题)。