我无法使用Shopify的Graphql API创建结帐
我实际上是从Shopify's Checkout Guide的此页面复制示例,并将其粘贴到我试图创建结帐的商店中安装的Shopify的GraphiQL App中。
这是我的突变,我唯一更改的是variantId
,因此它与我的商店中的匹配:
mutation {
checkoutCreate(input: {
lineItems: [{ variantId: "gid://shopify/ProductVariant/46037988422", quantity: 1 }]
}) {
checkout {
id
webUrl
lineItems(first: 5) {
edges {
node {
title
quantity
}
}
}
}
}
}
这是我从Shopify获得的答复:
{
"errors": [
{
"message": "Field 'checkoutCreate' doesn't exist on type 'Mutation'",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"mutation",
"checkoutCreate"
],
"extensions": {
"code": "undefinedField",
"typeName": "Mutation",
"fieldName": "checkoutCreate"
}
}
据Shopify称,很奇怪的是checkoutCreate
显然是一个突变。 See the link to the page here
然后我注意到,该页面上的突变是不同的。因此,我正在尝试该版本,而没有这样的variable
:
mutation checkoutCreate(input: {
lineItems: [{ variantId: "gid://shopify/ProductVariant/46037988422", quantity: 1 }]
}) {
checkout {
id
}
checkoutUserErrors {
code
field
message
}
}
现在我回来的错误是:
{
"errors": [
{
"message": "Parse error on \"input\" (INPUT) at [1, 25]",
"locations": [
{
"line": 1,
"column": 25
}
]
}
]
}
最后,我尝试使用一个变量使用该版本,但也失败了:
mutation checkoutCreate($input: CheckoutCreateInput!) {
checkoutCreate(input: $input) {
checkout {
id
}
checkoutUserErrors {
code
field
message
}
}
}
{
"input": {
lineItems: [{ variantId: "gid://shopify/ProductVariant/46037988422", quantity: 1 }]
}
}
这里的错误是:
{
"errors": [
{
"message": "Parse error on \"input\" (STRING) at [15, 3]",
"locations": [
{
"line": 15,
"column": 3
}
]
}
]
}
最重要的是,Shopify在其GraphiQL应用程序中具有交互式文档。并且它没有将checkoutCreate列为可用的变体。请看以下屏幕截图:https://nimb.ws/af4iHx
答案 0 :(得分:0)
我相信您的输入将被解析为JSON,因此在测试时,请尝试在突变变量的嵌套属性周围加上引号。
{
"input": {
"lineItems": [{ "variantId": "gid://shopify/ProductVariant/46037988422",
"quantity": 1 }]
}
}
答案 1 :(得分:0)
完成结帐的突变仅适用于销售渠道。这些应用必须是公开的。因此,如果您要创建私人应用程序,则可能无法正常工作。
https://shopify.dev/tutorials/create-a-checkout-with-storefront-api https://shopify.dev/tutorials/authenticate-a-public-app-with-oauth#turn-an-app-into-a-sales-channel