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

Shopify自定义应用Admin REST API操作报400错误求助

Shopify Admin REST API 400 Bad Request 排查与解决(库存设置/订单标签更新)

核心问题定位

你遇到的POST设置库存、PUT更新订单标签均返回400的问题,大概率是请求格式不符合Shopify REST API的要求,以下是具体的修正方案和排查步骤:

一、正确的请求示例

Shopify Admin REST API要求所有修改类请求的参数必须包裹在对应资源的根节点下,这是最容易忽略的点:

1. 设置库存级别(POST /inventory_levels/set.json)

curl -X POST "https://你的店铺域名.myshopify.com/admin/api/2023-04/inventory_levels/set.json" \
-H "X-Shopify-Access-Token: 你的应用访问令牌" \
-H "Content-Type: application/json" \
-d '{
  "inventory_level": {
    "location_id": 你的仓库ID,
    "inventory_item_id": 你的库存商品ID,
    "available": 目标库存数量
  }
}'

2. 更新订单标签(PUT /orders/{order_id}.json)

curl -X PUT "https://你的店铺域名.myshopify.com/admin/api/2023-04/orders/你的订单ID.json" \
-H "X-Shopify-Access-Token: 你的应用访问令牌" \
-H "Content-Type: application/json" \
-d '{
  "order": {
    "tags": "标签1,标签2"
  }
}'

二、关键错误点修正

  1. Content-Type 必须为 application/json
    你尝试的application/x-ndjson是Shopify GraphQL批量操作的格式,不适用于REST API,会直接导致参数识别失败。

  2. 参数必须包裹在资源根节点内
    不能直接传递{"inventory_item_id": ...},必须嵌套在inventory_level对象中;订单标签同理,要放在order对象内。

  3. JSON格式合法性
    检查payload是否有语法错误(比如逗号遗漏、引号不匹配),可以用在线JSON校验工具确认格式正确。

三、进一步排查步骤

  • 查看响应体的详细错误信息:400错误通常会返回具体的参数错误提示,比如{"errors": {"inventory_level": {"available": "must be an integer"}}},这能快速定位问题。
  • 确认API版本一致性:确保请求URL中的API版本(2023-04)和你参考的文档版本完全一致。
  • 验证访问令牌权限:在Shopify后台进入你的自定义应用页面,确认write_inventory、write_orders权限已被授予且生效,同时检查令牌是否过期。
  • 启用API日志:在Shopify后台的「应用和销售渠道」→「开发应用」→「你的应用」→「API凭证」中开启API日志,查看请求的详细交互记录,排查是否有请求头或参数被意外篡改。

内容的提问来源于stack exchange,提问作者pulse6099

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 21:37:28