用途:在 Salla 店面购物者浏览器中运行行为。通过 Salla Partners MCP 的 salla_snippets 工具注入 JS 片段,响应店面事件,实现分析追踪、数据同步、自动化触发或内容个性化。需先连接 MCP 服务器并取得 app_id。
主要能力与流程:
- 发现:确认要处理的店面事件(如 cart::item.added、cart::updated、product::price.updated,Twilight 事件使用 :: 命名空间)及事件触发后的行为。
- 旧内容检测:若片段含 HTML 标签或 {{namespace.key}} Twig 令牌,属旧服务端模板内容,须先交由 salla-snippets-migration 转为纯 JS。
- 模式选择:Device Mode 在浏览器运行(tracker.js + Twilight SDK),适合分析、个性化、营销归因;Cloud Mode 在服务端 App Functions 运行,适合自动化、数据同步、可靠后端投递。
- 脚手架(Device Mode):以纯 JavaScript 编写片段体,使用 salla、salla.onReady、salla.event、salla.config.get(...);监听器在模块顶层注册;用 salla.config.get("app.<key>") 读取标记 public:true 的应用设置。
- 注入:用 salla_snippets action=create,参数含 app_id、name、place("before")、tag("body")、content(纯 JS);先 action=list 去重,避免重复渲染;update 需整体重发,不是部分补丁。
验证:create/update 成功仅代表部署,需闭环校验——先做 JS 解析检查(如 node --check)、禁止参数检查(customer.*、store.domain 已废弃/移除)、配置键检查(须为 public:true),再用浏览器 DevTools 实测加载标记、事件与配置值,修复后重新更新直至四项通过。发布前移除调试日志,避免泄露密钥/PII。
UI 合规:若片段渲染可见 UI,应使用 Salla 原生 <salla-*> 组件与 Storefront JS SDK,继承主题变量与 RTL/多语言,并在已安装的演示店实测截图。Cloud Mode 则作为 App Function 按 salla-app-functions 技能实现,此处不重复其模板。
限制:片段须为纯 JS,HTML/Twig 无法部署;customer.* 与 store.domain 禁止使用,无机械替代;缺失设置或未公开的键在店面读取为 undefined;具体事件目录、载荷形状与 SDK 方法目录见参考资料,本文未提供的不作推断。