我对 Shopify Storefront API 和 GraphQL 都是全新的。在过去的 3-4 个小时里,我一直在努力阅读文档并尝试查找和编写一个查询,无论如何,在我看来,这应该很简单。
简而言之,我有一个店面,其中包含某些带有自定义购买按钮的产品。每个购买按钮的 ID 对应于我实际 shopify 商店中的产品 ID,即 ../products/5854987878567
当页面加载时,我需要查询我的商店以获取更新的价格,然后在按钮文本中反映这些价格,以便人们准确了解他们花了多少钱。
为此,我提取了所有唯一的按钮 ID 并将它们推送到一个新的数组中,其想法是我可以使用 GraphQL 一次查询所有 ID 并获取一个不错的对象,然后我可以相应地解析和更新按钮。
经过几个小时的兜售,我离成功还差得远。
我一直在阅读Query Root 文档,似乎他们确实有products
连接,我认为它是查询商店中所有产品的入口点。
然而,在query
字段本身下,他们似乎拥有每个字段但 id。
available_for_sale
created_at
product_type
tag
title
updated_at
variants.price
vendor
是他们拥有的所有领域。自从我开始写这篇文章以来,我发现sortKey
了,但它因错误"Field 'sortKey' doesn't exist on type 'QueryRoot'"
叹息而失败。
这是我目前正在使用的查询。我不确定这个想法是否可行,因为如果我一次只能查询一个 id,那么每位访问者将需要数十次 API 调用。
$.ajax({
type : 'POST',
url : 'https://xxxxx.myshopify.com/api/2020-10/graphql.json',
headers: {
'X-Shopify-Storefront-Access-Token': 'xxxxx',
'Content-Type': 'application/graphql'
},
data: 'query products { sortKey(id: "5854987878567") }',
success: function(res) {
console.log(res)
},
error: function(status) {
console.log(status)
}
});
任何帮助,将不胜感激!