未ログインでも注文履歴詳細が表示できるURLの取得方法について

Topic summary

主題: 未ログイン状態で注文履歴詳細を表示できるリンクの可否と実装方法。

  • 現状: APIで注文を発行し、メールに https://SHOP-ID.myshopify.com/account/orders/<Order.token> を記載。ログイン済みなら閲覧可。

  • 症状: 未ログイン時は /account/login?order=<Order.token> にリダイレクト。正しい認証情報でも再びログイン画面に戻る(エラー表示なし)。

  • 回答/制約: /account/** は認証必須ページのため、未ログインでの直接閲覧は不可。リダイレクトは仕様上の動作。

  • 代替策: カスタムアプリでAdmin API(管理者向けAPI)を用い、顧客IDまたはメールから注文履歴を取得し、任意のフロントエンドで表示する。

  • 補足: API以外の方法で未ログイン閲覧はおそらく不可能。

  • 進捗/結論: ネイティブ機能での未ログイン閲覧は不可。推奨はAdmin APIを使ったカスタム実装。ログインループ現象の原因・解決策はスレッド内では未解明。

Summarized with AI on December 18. AI used: gpt-5.

管理画面からAPIで注文を発行して顧客にメールし、顧客がメールのURLから注文履歴詳細が見られるように実装をしています。

顧客に送るメールは下記のように生成しています。
https://SHOP-ID.myshopify.com/account/orders/<Order.token>

顧客がログインしている場合は、上記URLで直接ログインできるのですが、
未ログインの場合は下記URLにリダイレクトされます。
https://SHOP-ID.myshopify.com/account/login?order=<Order.token>

正しい情報でログインしても再度ログイン画面に戻ってきてしまいます(特にエラー表示無し)

未ログインでも注文履歴詳細が見られるURLを生成することは可能でしょうか?

/account/**

は、ログイン後に表示できるページですので未ログインの場合、ログイン画面にリダイレクトされます。

そのため回避方法としては、カスタムアプリなどでAdmin APIを使い顧客IDやメールアドレスから注文履歴を取得し、フロント側で表示する方法があります。

APIを利用する方法以外では、おそらく表示できないのではないかと思います。

1 Like