FROM CACHE - jp_header

Shopifyの顧客に対して2つ以上の住所が登録されている状態で住所が空欄になるケースについて

WL1
Shopify Partner
2 0 0

Shopifyの顧客に対して2つ以上の住所が登録されている状態で、
customerUpdate(2021-10版)のGraphQLにて住所を更新しようとすると、
以下2パターンの事象が見られます。

 

A:住所がすべて削除される

pasted-2022.08.08-17.21.07 (1).png

(ケース)

住所A(デフォルト住所)
住所B

★住所Bのidに対して住所Aの内容で更新

Shopifyの住所がすべて削除される

 

B:重複エラーになる

(ケース)

住所A(デフォルト住所)
住所B

★住所Aのidに対して住所Bの内容で更新

重複エラーになる

 

どちらも重複エラーになるか、指定した住所だけ残る形で住所が更新されてほしいのですが、

住所がすべて削除されるパターンはAPIの仕様でしょうか?

2件の返信2

Qcoltd
Shopify Partner
1051 431 418

https://community.shopify.com/c/shopify-apis-and-sdks/graphql-admin-api-updating-customer-addresses-...

 

海外のコミュニティに同様の投稿がありました。

また、私も実際に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}"
      }      
    ]
  }
}

 

ご参考まで。

(キュー田辺)

株式会社Q (キュー)
グラフィックデザイン、アパレル事業、Web制作など色々やっている渋谷区代々木の会社です。ShopifyでのECサイトの運営・開発も行なっています。
私たちについて: https://web.q-co.jp/ テックブログ: https://techlab.q-co.jp/
WL1
Shopify Partner
2 0 0

情報をいただきありがとうございました!

参考にさせていただきます!