如何在Shopify React应用中使用REST API库创建订单履行?
Shopify REST API 创建订单履行的正确操作方式
- 核心:创建订单履行的正确端点是Fulfillment接口,但必须基于
FulfillmentOrder来操作,不是直接调用Order的接口。
步骤1:获取目标订单的FulfillmentOrder ID
先调用订单的FulfillmentOrder列表接口,拿到可操作的履行订单ID:
GET /admin/api/{api_version}/orders/{order_id}/fulfillment_orders.json
返回结果里找状态为open的fulfillment_order,取它的id——只有这种状态的FulfillmentOrder才能创建履行。
步骤2:发送创建履行的请求
用POST请求到Fulfillment端点,请求体必须关联上面拿到的FulfillmentOrder ID:
POST /admin/api/{api_version}/fulfillments.json
请求体示例(履行全部商品):
{ "fulfillment": { "fulfillment_order_id": 123456789, "tracking_info": { "number": "TRACK123", "company": "顺丰" } } }
如果只履行部分商品,需要指定行项目:
{ "fulfillment": { "fulfillment_order_id": 123456789, "tracking_info": { "number": "TRACK123", "company": "顺丰" }, "line_items_by_fulfillment_order": [ { "fulfillment_order_id": 123456789, "fulfillment_order_line_items": [ { "id": 987654321, "quantity": 1 } ] } ] } }
常见失败原因排查
- 选错了FulfillmentOrder:有些订单可能拆分了多个FulfillmentOrder,必须选状态为
open的那个 - API权限不够:确保你的API密钥拥有
write_fulfillments权限 - 订单状态不允许:订单必须是
paid状态,且未完成全部履行 - 字段格式错误:比如跟踪信息的字段如果传了就不能留空,不需要跟踪的话可以直接去掉
tracking_info对象
内容的提问来源于stack exchange,提问作者Monish Prakasan
相关产品推荐
相关产品推荐

