アカウントの有効化画面で誕生日の入力項目とメルマガ登録のチェックボックスを入れたいと思っています。
activate_account.liquidを編集して
と入れてみましたが、アカウント有効化画面で誕生日を入力しても顧客情報には反映されませんでした。
アカウント有効化の画面に他の要素を加えることはできないのでしょうか?
目的: アカウント有効化画面に誕生日入力とメルマガ登録チェックを追加し、顧客情報(Customer Note)へ反映させたい。
現状と検証: activate_account.liquid に customer[note][Birthday] 等を追加しても、顧客情報に反映されない事象を再現。会員登録フォームの action が /account、対して有効化フォームは /account/activate と異なり、有効化フォーム側が Customer Note を受け付けない可能性が高い。
技術的背景: Customer Note は Shopify の顧客メモ。アカウント有効化フォームは標準では追加フィールドの更新に対応していないと見られる。
代替案: 管理者向け Admin API(Shopify 管理API)で Customer Note を更新。外部サーバを用意し、有効化フォーム送信時に JavaScript でそのサーバ経由で更新する方法。ただし、誰でも更新できないような認可・セキュリティ対策が必須。
結論/状況: 通常の方法で有効化フォームから Customer Note を更新するのは困難。現実的な実装は重く、決定的な解決策は未提示。議論は未解決のまま。
アカウントの有効化画面で誕生日の入力項目とメルマガ登録のチェックボックスを入れたいと思っています。
activate_account.liquidを編集して
と入れてみましたが、アカウント有効化画面で誕生日を入力しても顧客情報には反映されませんでした。
アカウント有効化の画面に他の要素を加えることはできないのでしょうか?
質問者様のコードをアカウント有効化フォームに追加してみましたが、
質問者様と同様に、Customer Noteは、顧客情報に反映されませんでした。
会員登録フォームのactionと
有効化フォームのactionを
比較しますと、
会員登録フォームのaction (/account)
有効化フォームのaction (/account/activate)
```markup
となっており、actionの設定が異なることで、
Customer Noteを受け付けないのかもしれません。
> アカウント有効化の画面に他の要素を加えることはできないのでしょうか?
できない、と言い切れるほど調べられてはいないのですが、
少なくとも、質問者様の調査通り、
通常のやり方では、Customer Noteを有効化フォームから更新できないことは間違いなさそうです。
以降は、
手間がかかりすぎるため、現実的ではないアイデアになるため、スルーいただいても大丈夫です。
例えば、下記のコミュニティへの投稿を見ますと、
[https://community.shopify.com/c/shopify-apis-and-sdks/update-customer-note-using-admin-api/td-p/1147975](https://community.shopify.com/c/shopify-apis-and-sdks/update-customer-note-using-admin-api/td-p/1147975)
Admin APIでCustomer Noteの更新ができるようです。
APIサーバを別途準備し、
そのサーバからAdmin APIでCustomer Noteを更新するようにし、
有効化フォームには、フォーム送信時にJavaScriptでAPIコールし、
Customer Noteを更新する、
という方法もあるかもしれません。
(誰でもCustomer Noteを更新できるようになってしまわないような仕組みも必要になってきますが。)
大した情報がなく恐縮です。
(キュー田辺)