Liquid、JavaScriptなどに関する質問
タイトルの通り、admin rest apiを利用して customer metafieldを更新したいです。
エンドポイント | https://{{ shop name }}/admin/api/2023-01/customers/{{ customer.id }}.json |
Webhookのバージョン | 2023-01 |
Admin APIアクセススコープ | write_customers、 read_customers |
const requestHeaders = { 'X-Shopify-Access-Token': accessToken, 'Content-Type': 'application/json', }; const Payload = { customer: { first_name, last_name, metafields: [ { key: metafieldKey_01, value: newValue, value_type: 'single_line_text_field', namespace: metafieldNamespace_01, }, { key: metafieldKey_02, value: newValue, value_type: 'single_line_text_field', namespace: metafieldNamespace_02, }, ], }, }; const updateCustomer = (payload) => { fetch(ApiUrl, { method: 'PUT', headers: requestHeaders, body: JSON.stringify(payload), }) .then((response) => response.json()) .then((data) => console.log(data)) .catch((error) => console.error(error, payload)); };
解決済! ベストソリューションを見る。
成功
最近解決したので、返信させていただきます。
メタフィールドを作成すると、ユーザー x メタフィールド ごとに固有のIDが生成されるので、それを一緒に送ると更新されました。
注意点は、メタフィールドの定義IDではなく、各ユーザーに紐づいたメタフィールドIDになります。
このIDを画面上で確認するのは難しいので、liquid などでユーザーのメタフィールドを表示させれて合わせてIDを出すとわかるかと思います。
{
id: ${number}
key: metafieldKey_02,
value: newValue,
value_type: 'single_line_text_field',
namespace: metafieldNamespace_02,
},
SIN_88 様
お世話になっております。
customerのメタフィールドの更新ですが、以前私もやったことがありました。
そのとき、メタフィールド内の更新できるときとできないときがありましたので、ご参考までに。
・更新できるとき
→メタフィールドが空のとき、更新してデータをいれることができました。
・更新できないとき
→メタフィールドになにかの値が入っているとき、更新できませんでしたが、200のレスポンスが返ってきました。
直接Shopifyに確認はしておりませんが、上記のような仕様かなと思いました。
この仕様からメタフィールドが使えなかったので、customer.noteとcustomer.tagsで代用しました。
なにかヒントになれば幸いです。
株式会社フルバランス様
ご返信ありがとうございます!
ご回答の通り最初からの状態でAPIを叩いたところ確かに更新ができ、二度目はできない状態になりました。
こちらの仕様の旨よくわかりませんが現状理解いたしました。
ありがとうございました!
成功
最近解決したので、返信させていただきます。
メタフィールドを作成すると、ユーザー x メタフィールド ごとに固有のIDが生成されるので、それを一緒に送ると更新されました。
注意点は、メタフィールドの定義IDではなく、各ユーザーに紐づいたメタフィールドIDになります。
このIDを画面上で確認するのは難しいので、liquid などでユーザーのメタフィールドを表示させれて合わせてIDを出すとわかるかと思います。
{
id: ${number}
key: metafieldKey_02,
value: newValue,
value_type: 'single_line_text_field',
namespace: metafieldNamespace_02,
},
いつもShopifyをご利用いただき、ありがとうございます。 Shopifyは、皆様の日本語での利用体験の向上に努めております。さらなる改善のために皆様のご意見をお寄せい...
By JasonH May 9, 2025Shopify アカデミーの学習パスと認定スキルバッジExpanding Your Shopify Business Internationallyを活用して、国際的にビジネ...
By Shopify Feb 7, 2025Shopify アカデミーの学習パスB2B on Shopify:立ち上げとカスタマイズで卸売販売に進出しましょう。これら3つの無料コースは、ShopifyストアでB2B機能...
By Shopify Jan 31, 2025