Shopify Functions

shopify app function run 传 JSON 报错

现象#

把线上日志里的 input 存成 input.json,执行 shopify app function run -i input.json 报 JSON 解析失败;改成手写一段简化 JSON 却能跑通。

原因#

  • 日志里的 input 外层还包着 payload,直接喂给 CLI 多了一层结构
  • 从 Dev Dashboard 复制的内容被截断或带省略号,JSON 本身已不完整
  • Windows 下用 echo 拼管道会带上 CRLF 与 BOM,解析器读到不可见字符
  • 忘记加 -e run 时 CLI 调用错导出函数,报的是另一类错误

处理步骤#

  1. 只取日志中 input 对象本体,另存为 UTF-8 无 BOM 的 input.json
  2. 执行 shopify app function run -i input.json -j -e run
  3. 把结果重定向到 out.json,检查 operations 是否符合预期结构
  4. 构造边界数据时复制真实 input 只改数量与属性,保持字段名不变
  5. CI 里固定用 -i 传文件,不要依赖标准输入管道

验收标准#

命令退出码为 0,out.json 中的 operations 与线上日志的 output 一致;同一 fixture 在 CI 可重复跑出相同结果。

本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。