用途:将 Salla 遗留 HTML/Twig 片段迁移为纯 JavaScript。Salla 已停用服务端解析 {{namespace.key}} 的后端转换器,salla_snippets 现仅接受纯 JS,需在客户端用 salla.config.get(...) 解析。本技能只做转换,不部署,也不调用 salla_snippets 工具。
适用与移交:内容含 HTML 标签(script、style、div、link 等)或 {{namespace.key}} 令牌时使用。已是合法 JS 则无需迁移,直接进入 salla-snippets 第 2 步。转换完成后交回 salla-snippets 第 2 步创建/更新,并运行其每次写入即校验的循环。
参数模型:{{app.<key>}} → salla.config.get('app.<key>', ''),新旧系统一致,按该 App Setting 自身的 Public 标记做每应用作用域。customer.* 禁止使用,没有别名或机械重命名,但其底层数据多数在 user.* 下有真实替代,应按含义查找而非按名称替换。store.domain 禁止使用,无替代路径,不可臆造。user.* 指下单的购物者,与旧模板系统中指店主的含义完全不同,分支前需先调用 salla.config.isGuest()。store.contacts.* 真实有效但受商户条件限制,需用 '' 回退并在使用前做存在性检查。salla.config.get(...) 必须带 '' 第二参数。
步骤:确认是遗留内容;用 references/migration-guide.md 的 HTML→JS 元素表拆分并转换结构;按含义重写每个令牌并在 device-mode.md 的 Store context & language 目录中查找;把调用 salla.config.get 或写 DOM 的代码包进 salla.onReady(() => { ... }),product::/cart:: 的 salla.event.on(...) 监听器保持在顶层;确认每个 app.<key> 对应的 App Setting 已标记 Public;最后用 node --check 等确认代码可解析,移交 salla-snippets 第 2 步。
限制:不负责部署,不调用 MCP 工具;无对应目录字段的数据应视为客户端不可用,不得近似替换或臆造;输出中不得残留裸 {{...}} 令牌及 customer.*、store.domain 引用。