Shopify API 节点:AdminAPI 与 StoreFrontAPI 查询

Shopify API Node: AdminAPI vs StoreFrontAPI Queries

我正在尝试向 shopify 的管理员发出 graphql 请求 api。我使用的是官方的 shopify-api-node 库。

我的查询如下

      const response = await shopify.graphql({
      `order(id:"gid://shopify/Order/3138432598213") {
        currentCartDiscountAmountSet {
          shopMoney {
            amount
            currencyCode
          }
        }
      }`
    });

响应是

根据我的理解,这应该 return 一个具有数据字段和扩展字段的对象(我对查询成本感兴趣)。

我得到的响应只是包含订单。

这是因为我在查询店面 API 吗?我很困惑,因为我想查询管理员 api。根据 shopify 文档,storefront API 下的订单没有字段 currentCartDiscountAmountSet,而 admin API 下的订单有此字段。我通过字段 currentCartDiscountAmountSet 获得了正确的订单,因此我假设我正在查询管理员 api。但话又说回来,我没有得到数据和扩展?

我的问题是:

  1. 使用shopify-api-node时,如何指定是查询admin还是storefrontAPI?

  2. 为什么我的回复中没有数据和扩展?真的是因为我在查询店面 api 吗?如果是,那为什么我能成功获取到currentCartDiscountAmountSet?

首先 shopify-api-node 仅支持 GraphQL Admin API,不支持 Storefront API。

其次,店面 API 无法直接访问订单对象。您可以通过店面 api 获得客户订单,但为此您需要用户名和密码来为该用户创建令牌,以便请求他的订单,或者简单地说,您不会使用 nodejs 或更准确地说,当您只能使用 Admin API 时,工作量太大了。 (API 文档在这方面确实令人困惑)

所以这回答了你的第一个问题,你不能指定你是针对店面还是管理员 api,你被这个包的管理员 api 困住了。

关于你的第二个问题,我假设你传递了错误的 ID 或其他东西。你是用 id: "gid://shopify/Order/YOUR_ORDER_ID" 正确地传递它还是只用 id: "YOUR_ORDER_ID" 传递它,因为第二个是错误的。可能还有另一个问题,但在不知道流程的完整扩展的情况下,您需要自行调试。

这是一张带有示例请求的图片,returns 您想要什么。所以请求没问题,你现在的流程还有其他问题。