批量 mutation 失败行怎么用 __lineNumber 定位
现象#
五千行的批量改价任务完成后,结果文件里大多数行成功,少数行只有 errors,找不到对应输入的第几条,只能按 SKU 人工比对。
原因#
- 输出每行带的
__lineNumber是从 0 开始的输入行号,不是商品 ID - 失败行结构是 data 为 null 加 errors 数组,与成功行的 data 结构完全不同
- 输入文件在提交前被重新排序,行号与业务表里的顺序对不上
- 只看操作级 status 就宣布成功,COMPLETED 并不代表每一行都写入成功
处理步骤#
- 按行读取结果文件,用
__lineNumber回查输入文件中的同一行 - 筛出 data 为 null 的行,收集
errors[].message与 path 字段 - 输入文件保持不可变,另存一份行号到业务主键的映射表
- 统计失败率,超过阈值先修数据再重跑,不要整批覆盖
- 只把失败行重新组成
JSONL重提,避免成功行被二次写入
验收标准#
任取一条失败记录都能在输入文件中定位到唯一一行,失败数与统计一致,重跑后该行 data 非空。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。