我对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!被提供了无效的值。
我无法弄清缺少点的地方。
请帮助!
谢谢。
答案 0 :(得分:1)
认为我已经破解了它。...或者至少找到了解决方法。我觉得这应该更清楚了,这让我觉得我错了...。无论如何,这就是我发现的情况。
在使用Shopify graphiQl应用程序时,您可以要求输入ID。 (就像上面显示的一样)。获取结果并将其编码为base64。 https://www.base64encode.org/
这将为您提供结果-'Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzEzNDk2MzQwOTcyMjIz'。
将其保留在productId变量中,您应该得到一个响应。