每日整理真实提问 356 个问题 · 726 个回答 需要系统性的技术文档?看 Shopify 技术百科 1000 篇 → 400-873-8117
已解决 提问于 2 个月前

写接口返回 422,错误信息在 userErrors 里

2 个回答 3,214 次浏览 Admin API 与 GraphQL 最后活跃 2 个月前
100

调 productCreate 返回 200,但商品没建出来,返回体里 data.productCreate.product 是 null。

泽
阿泽提问者
前端工程师 · Hydrogen / Storefront API
2 个月前提问 · 已收到 2 个回答

2 个回答

已采纳 · 提问者确认解决
73

先把判断放在前面:GraphQL 的业务错误不体现在 HTTP 状态码上,200 只代表请求被处理,真正的失败在 userErrors 数组里。

1处理顺序

  1. 永远先检查 userErrors,长度大于 0 就是失败。
  2. 读 field 和 message,field 会精确指到哪个输入字段有问题。
  3. 常见原因是必填字段为空、handle 重复、选项值数量与变体不匹配。
  4. 把 userErrors 原样打进日志,不要只记 HTTP 状态码。
  5. 批量写入时逐条判断,不要用整体 200 判断全部成功。
验收:创建成功的商品能在后台查到,userErrors 为空数组。
风 风格技术团队 回答于 2 个月前
5

这是 GraphQL 最容易踩的坑:很多团队把 200 当成功,结果数据静默丢失,等对账时才发现少了一半商品。

陈 陈工 · Shopify 认证开发者 · 2 个月前

你的处理方式是什么?

写下你实际验证过的步骤,比「我也有这个问题」有用得多。当前版本为静态展示,提交后会由团队整理并回复。

描述你遇到的现象、店铺环境(主题 / 套餐 / 应用)、已经试过哪些操作……
我要单独提问 工作日 10 分钟内回复,可直接加微信 fenggejishu