我已经编写了第一个使用 GraphQL 的脚本(仍然是一个学习曲线)
目前我正在使用 GraphQL 进行 3 个调用,第一个是产品查找,第二个是价格更新,第三个是库存更新。
为了减少对终点的调用次数,我想合并价格更新和库存,但我的运气为 0,我不知道其格式是否错误。
这是我的 GraphQL 代码(我使用 Postman 来帮助确保架构在传递给 PHP 之前是正确的)
mutation productVariantUpdate($input: ProductVariantInput!) {
productVariantUpdate(input: $input) {
product {
id
}
productVariant {
id
price
}
userErrors {
field
message
}}
second: inventoryActivate($inventoryItemId: ID!, $locationId: ID!, $available: Int) {
inventoryActivate(inventoryItemId: $inventoryItemId, locationId: $locationId, available: $available) {
inventoryLevel {
id
available
}
userErrors {
field
message
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
变量:
{
"inventoryItemId": "gid://shopify/InventoryItem/XXXXXXXXXXX",
"locationId": "gid://shopify/Location/XXXXXXXXXX",
"available": 11 ,
"input": {
"id": "gid://shopify/ProductVariant/XXXXXXXXX",
"price": 55
}
}
Run Code Online (Sandbox Code Playgroud)
我不断收到错误:
{
"errors": [
{
"message": "Parse error on \"$\" (VAR_SIGN) at [29, 29]",
"locations": [
{
"line": 29,
"column": 29
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
got*_*to1 11
您执行此操作的方法是在 的根目录中指定所有参数mutation,就像您为 所做的那样ProductVariantInput:
mutation batchProductUpdates(
$input: ProductVariantInput!
$inventoryItemId: ID!
$locationId: ID!
$available: Int
) {
productVariantUpdate(input: $input) {
product { id }
productVariant { id price }
...
}
inventoryActivate(
inventoryItemId: $inventoryItemId
locationId: $locationId
available: $available
) {
inventoryLevel { id available }
...
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个示例,如果您要fetch在 中使用,它将如何工作JavaScript:
mutation batchProductUpdates(
$input: ProductVariantInput!
$inventoryItemId: ID!
$locationId: ID!
$available: Int
) {
productVariantUpdate(input: $input) {
product { id }
productVariant { id price }
...
}
inventoryActivate(
inventoryItemId: $inventoryItemId
locationId: $locationId
available: $available
) {
inventoryLevel { id available }
...
}
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
9394 次 |
| 最近记录: |