Shopify Admin API

履约 mutation 报 invalid id 怎么排查

现象#

调用 fulfillmentCreateV2 标记发货,userErrors 返回 invalid id;改成取订单里的第一条 fulfillment order 后,又报 has an unfulfillable status = closed。

原因#

  • 传订单 GID 给 fulfillmentOrderId 会直接报 invalid id
  • 订单取消过履约后会生成新的 fulfillment order,旧的那条已经变成 closed
  • 履约单被分配给其他 fulfillment service,当前应用没有写入权限
  • 行项目用了 OrderLineItem 的 GID,而不是 fulfillmentOrderLineItems 的 id

处理步骤#

  1. 查订单的 fulfillmentOrders(reverse: true),按创建时间倒序取最新的履约单
  2. 取最新一条 status 为 OPEN 的履约单,再查它的 supportedActions 是否允许创建履约
  3. 用它的 id 作为 fulfillmentOrderId,行项目用 fulfillmentOrderLineItems[].id
  4. 数量不超过该行的 remainingQuantity,部分发货只传本次要发的数量
  5. 成功后回查履约单状态,全发应为 CLOSED,部分发货仍为 OPEN

验收标准#

mutation 返回 fulfillment.id 且 userErrors 为空,订单时间线出现发货记录,履约单状态与发出数量一致。

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