Shopify Admin API

批量 mutation 失败行怎么用 __lineNumber 定位

现象#

五千行的批量改价任务完成后,结果文件里大多数行成功,少数行只有 errors,找不到对应输入的第几条,只能按 SKU 人工比对。

原因#

  • 输出每行带的 __lineNumber 是从 0 开始的输入行号,不是商品 ID
  • 失败行结构是 data 为 null 加 errors 数组,与成功行的 data 结构完全不同
  • 输入文件在提交前被重新排序,行号与业务表里的顺序对不上
  • 只看操作级 status 就宣布成功,COMPLETED 并不代表每一行都写入成功

处理步骤#

  1. 按行读取结果文件,用 __lineNumber 回查输入文件中的同一行
  2. 筛出 data 为 null 的行,收集 errors[].message 与 path 字段
  3. 输入文件保持不可变,另存一份行号到业务主键的映射表
  4. 统计失败率,超过阈值先修数据再重跑,不要整批覆盖
  5. 只把失败行重新组成 JSONL 重提,避免成功行被二次写入

验收标准#

任取一条失败记录都能在输入文件中定位到唯一一行,失败数与统计一致,重跑后该行 data 非空。

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