検索してあまりヒットしなかったので、備忘録として残しておきます。
InventoryLevelConnectionオブジェクトのquantitiesの引数で、namesを指定するのですが、複数形になっている場合の指定方法がよくわからなかったのです。
namesは、Inventory Statusとして定義されているので、そのstatus名を指定します。
Inventory Statusについては、以下を参照して下さい。
つまり、以下のInventory Statusを指定できます。
incoming
available
committed
reserved
damaged
safety_stock
quality_control
この、複数のInventory Statusを指定するときは、GraphQLとして以下のように書きます。
inventoryLevels(first:10){
edges{
node{
location{
id
name
}
quantities(names: [
"available",
"incoming",
"committed",
"damaged",
"on_hand",
"quality_control",
"reserved",
"safety_stock"
]){
name
quantity
}
}
}
}
ええ、まんま、"["と"]"の間に、文字列として指定します。
ここ、ENUMになってくれないかな〜。
以下のように、返ってきます。
この、ロケーション(倉庫とか)ごとに在庫状態と在庫数を取得します。
"inventoryLevels": {
"edges": [
{
"node": {
"location": {
"id": "gid://shopify/Location/11111111111",
"name": "QuickStartStore"
},
"quantities": [
{
"name": "available",
"quantity": 10
},
{
"name": "incoming",
"quantity": 3
},
{
"name": "committed",
"quantity": 1
},
{
"name": "damaged",
"quantity": 1
},
{
"name": "on_hand",
"quantity": 2
},
{
"name": "quality_control",
"quantity": 0
},
{
"name": "reserved",
"quantity": 0
},
{
"name": "safety_stock",
"quantity": 0
}
]
}
}
]
},
引数で、一つのパラメータに対して複数設定できる場合の、参考にして下さい。