Liquid、JavaScriptなどに関する質問
Shopifyの顧客に対して2つ以上の住所が登録されている状態で、
customerUpdate(2021-10版)のGraphQLにて住所を更新しようとすると、
以下2パターンの事象が見られます。
A:住所がすべて削除される
(ケース)
住所A(デフォルト住所)
住所B
↓
★住所Bのidに対して住所Aの内容で更新
↓
Shopifyの住所がすべて削除される
B:重複エラーになる
(ケース)
住所A(デフォルト住所)
住所B
↓
★住所Aのidに対して住所Bの内容で更新
↓
重複エラーになる
どちらも重複エラーになるか、指定した住所だけ残る形で住所が更新されてほしいのですが、
住所がすべて削除されるパターンはAPIの仕様でしょうか?
海外のコミュニティに同様の投稿がありました。
また、私も実際にGraphQLを叩いてみて確認してみました。
質問者さまが言及されている挙動は仕様のようですね。
もし、ケースAを実行しよとするなら下記のようにする必要があるようです。
{
"input": {
"id": "gid://shopify/Customer/xxxxxxxxxxxxxxx",
"addresses": [
{
"id": {住所AのID},
"country": "{住所Bの国}",
"zip": "{住所Bの郵便番号}",
"province": "{住所Bの都道府県}",
"city": "{住所Bの市町区村}",
"address1": "{住所Bの住所1}",
"address2": "{住所Bの住所2}"
},
{
"id": {住所BのID}
}
]
}
}
ケースBの場合であれば、下記になりそうです。(こちらは検証していないです。)
{
"input": {
"id": "gid://shopify/Customer/xxxxxxxxxxxxxxx",
"addresses": [
{
"id": {住所AのID}
},
{
"id": {住所BのID},
"country": "{住所Aの国}",
"zip": "{住所Aの郵便番号}",
"province": "{住所Aの都道府県}",
"city": "{住所Aの市町区村}",
"address1": "{住所Aの住所1}",
"address2": "{住所Aの住所2}"
}
]
}
}
ご参考まで。
(キュー田辺)
情報をいただきありがとうございました!
参考にさせていただきます!
Shopify アカデミーの学習パスと認定スキルバッジExpanding Your Shopify Business Internationallyを活用して、国際的にビジネ...
By Shopify Feb 7, 2025Shopify アカデミーの学習パスB2B on Shopify:立ち上げとカスタマイズで卸売販売に進出しましょう。これら3つの無料コースは、ShopifyストアでB2B機能...
By Shopify Jan 31, 2025サポートの選択肢が増えていく中、最適となる選択の判断が難しくなっているかと存じます。今回は問題の解決に最適となるサポートの選択方法を、紹介させて頂きます。 選択肢のご紹介...
By Mirai Oct 6, 2024