登録完了したときのリダイレクト先を変更したい

AI-generated summary

配送先登録フォーム({% form 'customer_address', customer.new_address %})送信後に、/account/addresses ではなく /pages/xxx へ遷移させたい、という相談。form.posted_successfully? 内で JavaScript により window.location = "/pages/address"; を実行する方法を試したが、期待通り動かなかった。

追加で、ログインフォームでは hidden の checkout_url を入れると遷移先を変えられるのに、パスワードリセットなど他フォームでは同様に変更できない理由も質問された。

回答では、まず /pages/address が実在するページか確認し、確実に存在する URL で検証すべきと指摘。あわせて checkout_url は一般的なリダイレクト機構ではなく、Shopify のログインフォーム側が特別に解釈している仕様らしく、他フォームにはその挙動がないためと説明された。

結論として、住所登録完了後のリダイレクト方法そのものは明確には解決しておらず、調査継続の状態。関連ドキュメントへの案内が共有されている。

今、配送先一覧ページ(/account/addresses)をDebutを元にカスタマイズを行っているのですが、配送先を登録する時のページ遷移についてお聞きしたいです。

このページで配送先を登録するとデフォルトだと/account/addressesで登録や編集が全て行われているようなのですが、登録が完了した時のリダイレクト先を/pages/xxxにすることは可能なのでしょうか?

可能であればやり方を教えていただきたいです。

{% form ‘customer_address’, customer.new_address %}{% endform %}

の内に

{% if form.posted_successfully? %}

{% endif %}

を入れればうまくいくという記事をみたので試してみたのですがうまくいきませんでした。

[追記]

ログイン後は

{% form ‘customer_login’ %}配下に

を入れることによって遷移先を変更できるのですが、パスワードリセットなど他のフォームでは同じようにしてもリダイレクト先が変更できないのでその理由も教えていただきたいです。

https://shopify.dev/tutorials/customize-theme-redirect-customers-when-they-log-in

初めのコードの場合、 pages/address だと、address というページが作成されている必要がありますが、それは確かでしょうか?

まずは、明らかに存在しているURLを指定して検証されるのが良いと思います。

2番目のコードは、単純にログインフォームにcheckouturl とうタグを入れているだけで、これ自体はリダイレクトの処理ではなく、Shopifyのログインフォームが、このパラメータを入れていると、その指定先にリダイレクトしてくれる仕様があるからで、他の画面にはその仕様がないためだと思います。(この仕様は明言はされていませんが)

ご参考までにテーマの各ファイルの説明は以下にあります。

https://shopify.dev/docs/themes/files