在shopify buy js sdk中生成店面ID时出错

时间:2019-01-21 16:53:13

标签: shopify shopify-app shopify-javascript-buy-sdk

我对Shopify上的文档非常困惑。我想使用他们的Javascript购买SDK。要遵循他们的简单产品提取示例,在文档中说,“在检索产品或馆藏之前,您需要查询店面ID。获得产品ID或馆藏ID后,您可以使用SDK提取产品或馆藏。”

因此,使用Shopify Graphiql应用程序并从示例中获取店面ID,请求看起来像这样。

{
  shop {
    productByHandle(handle: "my-own-product-handle") {
      id
    }
  }
}

期望的返回ID有点像 "id": "Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzczNDE0OTkzOTk="的某种编码值。但是我得到的ID就像一个URL。这是我得到的回报。

{
  "data": {
    "shop": {
      "productByHandle": {
        "id": "gid://shopify/Product/1349634097238"
      }
    }
  },
  "extensions": {
    "cost": {
      "requestedQueryCost": 2,
      "actualQueryCost": 2,
      "throttleStatus": {
        "maximumAvailable": 1000,
        "currentlyAvailable": 998,
        "restoreRate": 50
      }
    }
  }
}

当我使用此URL进行请求时,如JS SDK示例所示

// Fetch a single product by ID
const productId = 'gid://shopify/Product/13496340972223';

client.product.fetch(productId).then((product) => {
  // Do something with the product
  console.log(product);
});

我在控制台中收到错误,提示 ID类型为变量ID!被提供了无效的值。

我无法弄清缺少点的地方。

请帮助!

谢谢。

1 个答案:

答案 0 :(得分:1)

认为我已经破解了它。...或者至少找到了解决方法。我觉得这应该更清楚了,这让我觉得我错了...。无论如何,这就是我发现的情况。

在使用Shopify graphiQl应用程序时,您可以要求输入ID。 (就像上面显示的一样)。获取结果并将其编码为base64。 https://www.base64encode.org/

这将为您提供结果-'Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzEzNDk2MzQwOTcyMjIz'。

将其保留在productId变量中,您应该得到一个响应。