SHOP SDK

Shop SDK リードキャプチャ
Rich Authorization Requests 対応

必要なプロフィール項目を「必須」「任意」で指定して収集できるようになりました

App (開発者)authorizationDetailsを指定phone_number: requiredbirthdate: optionalShop (UI)未入力の項目をユーザーに要求必須 → 入力必要任意 → スキップ可Server (信頼済み)shopConsentToken をトークン交換fetchTokensForUserShop Partners API

このアップデートはShop SDKのリードキャプチャを利用するアプリ開発者が対象です。2026年10月28日より利用可能で、Rich Authorization Requests(RAR)を使うことで、ユーザーのShopプロフィールに保存されていない項目も含め、必要なデータを「必須」「任意」の粒度で収集できるようになりました。既存の実装はそのまま動作し、RARはオプトイン形式です。

1Before / After:何が変わったか

Before (既存OAuthスコープのみ)shop_app:user:profile→ 保存済みの氏名のみ取得shop_app:user:phone→ 保存済み電話番号のみ取得✗ 未入力項目のプロンプトなし✗ 生年月日は取得不可✗ 必須/任意の制御不可After (RAR対応)authorizationDetails に配列を渡す→ 氏名・電話・生年月日を指定可required: true / false で制御→ 必須/任意をフィールド単位で設定✓ 未入力ならShopがプロンプト表示✓ 生年月日も取得対象に追加✓ 既存実装はそのまま動作

2業務に活かせるユースケース

課題
会員登録フローで生年月日を取得したいが、Shopプロフィールに登録していないユーザーが多く、収集漏れが発生している
打ち手
RARで birthdate を required: false(任意)として指定し、Shopの認証UIでユーザーに入力を促す。強制はしないため離脱リスクを最小化
効果
収集率を高めながらUXへの悪影響を抑制。マーケティングセグメント精度が向上する
技術メモ
authorizationDetails に [{type: 'urn:shopify:shop_app:data-sharing:v1', datatypes: [{name: 'birthdate', required: false}]}] を渡す。サーバー側でnullハンドリング必須
課題
SMS通知やSMSマーケティングのために電話番号を必須収集したいが、既存のOAuthスコープでは未登録ユーザーにプロンプトが出ない
打ち手
phone_number を required: true に設定したRARを使用。Shopが未入力ユーザーに電話番号入力画面を表示し、入力なしでは認証を完了できない
効果
電話番号取得率の大幅改善。顧客レコードの電話番号フィールドも認証済み番号で更新される
技術メモ
取得した電話番号はストアの顧客レコードの電話番号を上書きする可能性あり。customerUpdateErrors の確認を必ずonCompleteに実装すること
課題
ユーザーが認証を拒否(decline)した場合の処理が実装されておらず、エラーが発生する
打ち手
RAR導入時に onComplete イベントで shopConsentToken が存在しないケースを「正常な結果」として明示的にハンドリングするロジックを追加する
効果
ユーザーがサインインしても認証拒否した場合の例外処理が安定し、アプリクラッシュや不正なAPI呼び出しを防止できる
技術メモ
元記事に「shopConsentToken が無い場合を想定済みの結果として処理せよ」と明記。テストケースとして「declined authorization」シナリオを必ず検証すること

3技術者向けポイント

📦 対応フィールド(RAR)
  • given_name(名)
  • family_name(姓)
  • phone_number(電話番号)
  • birthdate(生年月日)
各フィールドに required: true/false を付与
🔐 必要な前提条件
  • クライアントシークレット
  • 信頼済みサーバー環境
  • Shop Partners API へのアクセス
ブラウザ側のみの実装では利用不可
🔄 トークン交換フロー
  1. onComplete で shopConsentToken を受け取る
  2. サーバーへ送信
  3. fetchTokensForUser ミューテーションで交換
  4. Shop Users API でデータ取得
⚠️ 既存実装への影響
  • RAR はオプトイン → 既存コードの変更不要
  • scope に 'shop_app:oauth' を設定すると識別子・メールも取得可
  • 既存の氏名フィールドは上書きされない
テストシナリオ 確認ポイント
認証完了(正常系) shopConsentToken が返却されること
任意フィールドのスキップ サーバー側でnullを適切に処理できること
認証拒否(decline) shopConsentToken なしでもクラッシュしないこと
不正なJSON(malformed) onError で invalid_authorization_details が返ること

元記事には上記4シナリオのテストを本番リリース前に必ず実施するよう明記されています。特に不正なJSONを渡した際のエラーハンドリングは見落とされがちです。

Shop SDKのリードキャプチャにRich Authorization Requestsを導入することで、生年月日・電話番号など顧客プロフィールの未入力項目を必須/任意の粒度で収集できるようになり、マーケティングデータの収集率と精度を同時に高められます。

Source: https://shopify.dev/changelog/shop-sdk-lead-capture-now-supports-rich-authorization-requests | 公開日: 2026年10月28日
※本記事はShopify公式ではなく独立系メディアによる解説です。最新情報・仕様の確定は必ず公式ドキュメントをご確認ください。