【发布时间】:2017-10-14 15:19:09
【问题描述】:
我正在使用 Shopify 店面 API 来查询产品列表并将所选商品添加到购物车。
我可以使用 API 列出所有产品,并返回找到的产品的 variantID
这是返回产品的 GraphQL 查询
{
shop {
name
products(first: 1, query:"title=configurable-handmade-concrete-ball") {
edges {
cursor
node {
id
title
handle
variants(first:1) {
edges {
node {
id
title
}
}
}
}
}
}
}
}
结果
{
"data": {
"shop": {
"name": "VonageTest",
"products": {
"edges": [
{
"cursor": "eyJvZmZzZXQiOjF9",
"node": {
"id": "Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzEwNTU2MjYxNTE4",
"title": "Configurable Handmade Concrete Ball",
"handle": "configurable-handmade-concrete-ball",
"variants": {
"edges": [
{
"node": {
"id": "Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0VmFyaWFudC80MDIwOTc1NjQzMA==",
"title": "Default Title"
}
}
]
}
}
}
]
}
}
}
}
为了将商品添加到购物车,您可以发出包含以下内容的 POST 请求
https://{store_name}.myshopify.com/cart/{variant_id}
使用 graphQL 响应中的 variant_id 执行此调用会返回 404。但如果您从页面获取 variant_id,则可以检查 xml 页面并在此处使用该 variant_id 这显示了这是如何完成的 https://help.shopify.com/themes/customization/cart/use-permalinks-to-preload-cart
那么为什么店面 API 中的 variant_id 与页面上的 variant_id 不同?
【问题讨论】: