fulfillments/update 里拿不到运单号和状态怎么办
现象#
订阅 fulfillments/update 后,payload 里 shipment_status 为 null、tracking_numbers 是空数组,只有 status 是 success,前端拿不到物流轨迹。
原因#
- 发货与回填运单是两个动作,先建 fulfillment 再补 tracking,第二条事件才带运单号
- 部分发货时 line_items 只含本次发出的行,按订单全量行数校验会误判缺字段
- shipment_status 要等承运商回传才有值,刚发货时本来就是 null
- fulfillment 的行 id 与订单行 id 不是同一套编号,直接相等比较匹配不上
处理步骤#
- 先判断
status,为success时再读tracking_numbers - 运单号为空不要报错,等同名 fulfillment 的下一条 update 事件覆盖
- 按
order_id回查订单行,用 SKU 匹配,别把 fulfillment 行 id 当订单行 id - 需要完整轨迹时用
order_id调 Admin API 读 fulfillment 的 shipment_status - 在测试店先发货再补运单,确认收到两条事件且第二条带运单号
验收标准#
补运单后收到第二条 fulfillments/update,tracking_numbers 非空、shipment_status 有值且订单物流页一致。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。