Shopify Webhooks

fulfillments/update 里拿不到运单号和状态怎么办

现象#

订阅 fulfillments/update 后,payload 里 shipment_status 为 null、tracking_numbers 是空数组,只有 status 是 success,前端拿不到物流轨迹。

原因#

  • 发货与回填运单是两个动作,先建 fulfillment 再补 tracking,第二条事件才带运单号
  • 部分发货时 line_items 只含本次发出的行,按订单全量行数校验会误判缺字段
  • shipment_status 要等承运商回传才有值,刚发货时本来就是 null
  • fulfillment 的行 id 与订单行 id 不是同一套编号,直接相等比较匹配不上

处理步骤#

  1. 先判断 status,为 success 时再读 tracking_numbers
  2. 运单号为空不要报错,等同名 fulfillment 的下一条 update 事件覆盖
  3. 按 order_id 回查订单行,用 SKU 匹配,别把 fulfillment 行 id 当订单行 id
  4. 需要完整轨迹时用 order_id 调 Admin API 读 fulfillment 的 shipment_status
  5. 在测试店先发货再补运单,确认收到两条事件且第二条带运单号

验收标准#

补运单后收到第二条 fulfillments/update,tracking_numbers 非空、shipment_status 有值且订单物流页一致。

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