Functionログ、スコープ付与で自動表示に
マーチャントへの「ログ共有お願い」が不要に。アクセススコープがあれば自動で見える。
この変更はShopifyアプリ開発者向けに、2026年5月13日以降、Dev DashboardのFunction実行ログがアプリに付与されたアクセススコープをもとに自動表示されるようになりました。マーチャントに個別にログ共有を求める手間がなくなります。
1Before / After 図解
2仕組み:何がスコープを決めるのか
3業務に活かせる具体ユースケース
- 課題
- カスタム割引Functionが意図どおりに動かず、原因特定のためにマーチャントへログ共有を依頼していたが、返答まで数日かかることがあった。
- 打ち手
- アプリインストール時に割引ロジックが参照するフィールドのスコープ(例:
read_discounts)を宣言しておく。以降はDev Dashboardを開くだけで実行ログを即確認できる。 - 効果
- デバッグサイクルが大幅短縮。マーチャントを巻き込まずに問題を特定・修正できる。
- 技術メモ
- 必要スコープはFunctionのInput Queryが参照するフィールドで決まる。GraphQL Admin APIで同フィールドを読む際に必要なスコープと同一。
- 課題
- 顧客の住所情報をInput Queryで参照するShipping Functionで、ログ詳細が表示されずに調査がストップしていた。
- 打ち手
- Protected customer data(顧客住所など)へのアクセスには追加の保護データスコープ申請が必要。Shopifyの審査プロセスを経て承認後、該当スコープを取得する。
- 効果
- 顧客データを含むrun detailsが自動表示され、配送ロジックのバグを正確に追える。
- 技術メモ
- 顧客詳細・住所など一部フィールドはProtected customer dataに該当し、通常スコープとは別の申請が必要。公式ドキュメント「Protected customer data」を参照のこと。
- 課題
- 本番環境では不要だが、定期的なデバッグ作業の際だけ特定フィールドのログを確認したい。常設スコープにするとマーチャントへの説明コストがかかる。
- 打ち手
- Optional scopeとしてスコープを宣言しておく。デバッグが必要な期間だけマーチャントに付与してもらい、完了後に取り消してもらう。アプリ再インストール不要。
- 効果
- 最小権限の原則を守りながら、必要なタイミングだけログ詳細を確認できる柔軟な運用が可能。
- 技術メモ
- Optional scopeはマーチャントがアプリを再インストールせずに付与・取り消しが可能。スコープ付与後、次回ログアクセス時に自動的にrun detailsが見えるようになる。
4技術者目線のポイント
| 観点 | 内容 | 対応優先度 |
|---|---|---|
| スコープの決定ロジック | 必要スコープはFunctionのInput Queryが参照するフィールドで決定。GraphQL Admin APIで同フィールドを読む場合と同一スコープ。 | 理解必須 |
| 通常スコープの宣言 | アプリのインストール・認証フロー時にスコープを宣言・リクエスト。Access scopesドキュメントを参照。 | 推奨 |
| Protected customer data | 顧客詳細・住所など一部フィールドはShopify審査が必要な別スコープ。申請・承認プロセスを要確認。 | 要注意 |
| Optional scope活用 | 常設不要なスコープはOptional scopeで宣言。再インストール不要でマーチャントが付与・取り消し可能。 | 推奨 |
| ログが見えない場合の確認手順 | ①Input Queryのフィールドを確認 → ②必要スコープを特定 → ③付与状況を確認 → ④スコープ付与後に再アクセス | トラブル時 |
Functionのデバッグ効率が大幅に向上し、マーチャントへのログ共有依頼が不要になりました。アプリのスコープ設計を見直すだけで即効果が得られます。
Source: https://shopify.dev/changelog/function-run-log-details-are-now-automatically-visible-with-the-right-access-scopes | 公開日: 2026年5月13日






Share:
OrderオブジェクトにcheckoutTokenフィールド追加
統合ブランディングAPI:チェックアウト・アカウントを一元管理