METAOBJECTS

アプリ所有メタオブジェクトがスコープ不要に

Admin API 2026-04以降、$app:type形式のメタオブジェクトはスコープ申請なしで読み書きできます

App$app:exampleスコープ不要Merchant-ownedcustom.exampleread/write_metaobjects 必要vs

この変更はShopifyアプリ開発者を対象に、2026年4月リリースのAdmin API(バージョン2026-04)以降から有効です。アプリが自身で作成・管理するメタオブジェクト($app:〇〇形式)を利用する際に、これまで必要だったアクセススコープの申請が不要となり、インストール時のマーチャント承認ステップを削減できます。

1Before / After 図解

BeforeAfter (2026-04~)read_metaobjects スコープを申請マーチャントがスコープを承認$app:example の読み書きが可能にスコープ申請なしで$app:example の読み書きが可能3ステップ必要1ステップ(即時利用可)

2具体的なユースケース

課題
アプリ独自の設定データ(ページレイアウト設定・テーマオプションなど)をメタオブジェクトで管理したいが、read_metaobjectsスコープ申請がインストール障壁になっていた
打ち手
$app:layout_configのような宣言的メタオブジェクト定義を使い、Admin API 2026-04で読み書きする
効果
マーチャントに追加スコープを求めずにアプリ設定を永続化でき、インストール完了率の向上が期待できる
技術メモ
Admin API バージョンを2026-04以上に固定すること。旧バージョンではスコープが引き続き必要
課題
宣言的メタオブジェクト定義(declarative metaobject definitions)を活用したいが、スコープ審査の工数が開発スピードを下げていた
打ち手
宣言的定義で$app:プレフィックス付きのメタオブジェクト型を定義し、アプリ内で自由に読み書きする
効果
スコープ申請・レビュープロセスが不要になり、開発・リリースサイクルを短縮できる
技術メモ
宣言的メタオブジェクト定義の詳細は公式ドキュメントを参照。スコープ免除は所有アプリのみに適用
課題
マルチロケール対応アプリでロケール別コンテンツをメタオブジェクトに格納したいが、スコープ追加によりマーチャントに再認証を求める必要があった
打ち手
ロケールデータを$app:locale_content型のメタオブジェクトとして設計し、スコープなしで管理
効果
既存インストール済みマーチャントへの影響なく機能追加でき、アップデート時の離脱リスクを低減
技術メモ
マーチャントが作成したメタオブジェクト型(custom.〇〇形式)へのアクセスは従来どおりスコープが必要

3技術者向け重要ポイント

項目 内容
対象APIバージョン Admin API 2026-04以降が必須。それ以前のバージョンでは従来どおりスコープが必要
対象メタオブジェクト $app:〇〇形式(アプリ所有型)のみ。マーチャント所有型(custom.〇〇等)は対象外
宣言的定義との組み合わせ declarative metaobject definitionsで定義した$app:型も同様にスコープ不要で利用可
マーチャント所有型の扱い read_metaobjects・write_metaobject_definitions等のスコープは引き続き必要。変更なし
移行上の注意 APIバージョンを2026-04に上げるだけで適用される。既存スコープを持っている場合も動作に影響なし(記載なし)
スコープ不要 ✅
・$app:example
・宣言的定義の$app:型
API 2026-04~
スコープ必要 ⚠️
・マーチャント所有のメタオブジェクト型
・read_metaobjects等は従来どおり
変更なし

※ APIバージョンの指定を忘れると本変更の恩恵を受けられません。リクエストヘッダーやSDKの設定を必ず確認してください。最終的な仕様は公式ドキュメントでご確認ください。

Admin API 2026-04へ更新するだけで、アプリ所有メタオブジェクトの読み書きに追加スコープが不要になり、マーチャントのインストール摩擦を下げながらアプリ内データ管理を自由に設計できます。

Source: https://shopify.dev/changelog/metaobject-scopes-not-required-for-app-metaobjects | 公開日: 2026年4月1日