You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shopify API创建发货单问题:单地址正常,多地址报错

Shopify多地点分拆发货API报错「None of the items are stocked at the new location」问题分析与解决

问题场景

  • 单地点创建发货单时,调用Shopify 2022-04版本API可正常执行
  • 同一订单需从两个不同地点创建第二份发货单时,触发错误:None of the items are stocked at the new location
  • 已确认前提条件:
    • 指定的location_id对应地点库存充足
    • fulfillment_order_id与目标履行订单匹配
    • 单地点场景下使用相同的line_items参数可正常完成发货

API请求信息:
请求URL:

https://<shop-name>.myshopify.com/admin/api/2022-04/orders/<order_id>/fulfillments.json

请求体:

{"fulfillment":{"location_id":99999999041,"tracking_number":"https://tracking.com/5678","tracking_urls":["https://tracking.com/5678"],"notify_customer":true, "line_items_by_fulfillment_order":[{ "fulfillment_order_id":9999999999053,"fulfillment_order_line_items": [{"id":99999999990725,"quantity":1},{"id":99999999993493,"quantity":1},{"id":9999999997957,"quantity":1}] }] }}

报错原因

Shopify默认会为订单生成对应初始发货地点的履行订单(Fulfillment Order),所有商品的库存分配默认绑定在该初始地点的履行订单下。当直接用API尝试为第二个地点创建发货单时,系统仍会校验原履行订单绑定的库存地点,导致误判新地点无对应库存。

而在后台手动创建另一个地点的发货单后,Shopify会自动拆分履行订单,生成对应新地点的独立履行订单,并将指定商品的库存分配关联到该新地点,此时API调用就能正确匹配到新地点的库存。

解决方案

方案1(已验证有效)

先在Shopify后台为目标订单创建一份对应第二个地点的手动发货单(无需完成发货,创建即可),之后再用原API请求创建第二份发货单即可正常执行。

方案2(纯API自动化方案)

通过Shopify API先拆分履行订单,生成对应新地点的独立fulfillment_order_id,再用新ID调用发货接口:

  1. 调用拆分履行订单接口:
    POST /admin/api/2022-04/fulfillment_orders/{原fulfillment_order_id}/split.json
    
    请求体示例(指定目标地点和要拆分的商品):
    {
      "split": {
        "location_id": 99999999041,
        "line_items": [
          {"id": 99999999990725, "quantity": 1},
          {"id": 99999999993493, "quantity": 1},
          {"id": 9999999997957, "quantity": 1}
        ]
      }
    }
    
  2. 从接口返回结果中获取新生成的fulfillment_order_id
  3. 将原发货请求中的fulfillment_order_id替换为新ID,重新调用发货接口即可

内容的提问来源于stack exchange,提问作者Kawa222-UK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 17:27:30