ディスカウントアプリが App Intents に対応 Sidekick から「アプリ独自の作成・編集画面」へ直行
原題: Use app intents for your discount app
- Discounts
- Shopify Functions
- Sidekick
- App Intents
- Admin UI Extensions
- Apps
- React Router
- Mobile
- 新機能
図解 : ディスカウントアプリで App Intents(shopify/Discount)が使えるように Developer Changelog / Discounts × Sidekick ディスカウントアプリが App Intents に対応 Sidekick から「アプリ独自の作成・編集画面」へ直行 Shopify Functions で独自のディスカウントタイプを作るアプリが shopify/Discount インテントを登録可能に。Sidekick がアプリの作成・編集フローを起動し、候補選択ピッカーでも優先表示されるようになった。 このページの構成 そもそも何が変わるのか(30秒で理解) 仕組み図解 : Sidekick からアプリのフローに入るまで 3つの登録方法(ターゲット) インテント登録の中身 影響範囲とモバイルの制約 やること(3つの選択肢) 技術者が押さえるべき5つのポイント 業務に活かせる3つのユースケース 提案で使える1行サマリ 1 そもそも何が変わるのか マーチャントが Sidekick で「このディスカウントを作って/編集して」と頼んだとき、 Shopify 標準のディスカウント UI ではなく、 そのディスカウントタイプを作ったアプリ専用のフローに着地 できるようになる。 これまで : 標準 UI に流れがち アプリ独自のディスカウントタイプでも、Shopify のデフォルトのディスカウント UI へ誘導されることがあった。 これから : アプリのフローへ直行 shopify/Discount インテントの create / edit アクションで、Sidekick がアプリの作成・編集フローを起動。ピッカーでも優先表示。 2 仕組み図解 : Sidekick からアプリのフローに入るまで 候補選択ピッカー(disambiguation picker) : 依頼内容から特定のディスカウントタイプや Function 実装が判別できないとき、利用可能なフローの一覧からマーチャントが選ぶ画面。インテントを登録したアプリのフローがここに表示される。 3 3つの登録方法(ターゲット) link admin.app.intent.link React Router アプリの 既存ページへ遷移 させる。今ある管理画面を活かせる。 render admin.app.intent.render 用途を絞った Admin UI 拡張をインラインで描画 。 API 2026-04 以降が必須 自動 Discounts UI 拡張 admin.discount-details.function-settings.render を使う拡張は 登録なしで自動的に優先表示 。 4 インテント登録の中身 要素 内容 アクション create edit の2種類に対応 メタスキーマ shopify-intent.json を使って登録 ベースラインスキーマ shopify/discount.json を参照 matchValue functionId に対して指定し、インテントを特定の Shopify Function 実装に紐付ける。複数実装を持つアプリは実装ごとにフローを登録できる value スキーマ edit フローでは ディスカウントの GID を運ぶ 上限 登録したインテントはそれぞれ アプリごとのインテント上限 にカウントされる(上限の具体数は記載なし) 既存の extension.ui.paths 引き続き動作する。ただし create / edit 両方で Sidekick と深く連携させるには App Intents の宣言が推奨 5 影響範囲とモバイルの制約 対象 : Functions でディスカウントタイプを作るアプリ 既存アプリは そのまま動作し、移行作業は不要 。Function ベースのディスカウントタイプを作らないアプリには影響なし。 モバイル : link フローは Web 管理画面のみ admin.app.intent.link のディスカウントは Shopify モバイルアプリの一覧には出るが、 タップしてもアプリの編集フローは開かない 。 モバイル対応が来るまでは、これらのディスカウントの 表示・編集は Web 版 Shopify 管理画面で行う ようマーチャントに案内する必要がある。モバイル対応時期は記載なし。 6 やること(3つの選択肢) 既存アプリは 対応不要 。Sidekick と候補選択ピッカーでフローを優先表示させたい場合は、次のいずれか。 A Discounts UI 拡張を作る それだけで自動的に優先表示される。 B intent.link を登録 既存の React Router 製ディスカウント UI を使う場合。 C intent.render を登録 用途を絞ったインライン UI 拡張を提供する場合(API 2026-04 以降)。 設定例は「Build app actions with Sidekick」、完全な仕様は「Intents API reference」を参照(本記事では設定コード自体は記載なし)。 7 技術者が押さえるべき5つのポイント 1. 紐付けのキーは functionId matchValue を functionId に設定して、インテントと Function 実装を 1:1 で対応させる。複数実装のアプリは実装ごとに登録。 2. edit はディスカウント GID を受け取る インテントの value スキーマにディスカウントの GID が入る。編集画面側はこれを受けて対象を特定する設計にする。 3. render は API バージョン要件あり admin.app.intent.render は API 2026-04 以降が必須。link は既存 React Router ページを流用でき、導入ハードルが低い。 4. インテント数はアプリ上限を消費 登録ごとに per-app のインテント上限にカウントされる。Function 実装が多いアプリは、どれを Sidekick に出すかの取捨選択が必要(上限値は記載なし)。 5. 後方互換 : ui.paths は動き続けるが、推奨はインテント extension.ui.paths は引き続き有効で移行は不要。ただし Sidekick の create / edit 両方に深く統合したいなら App Intents の宣言が推奨。 なお link フローはモバイルで編集画面が開かない ため、モバイル利用が多いマーチャント向けには案内文言の用意を。 8 業務に活かせる3つのユースケース USE CASE 1 自社ディスカウントアプリを「Sidekick 経由の入口」に乗せる 課題 Functions で独自のディスカウントタイプを提供しているが、Sidekick に頼まれると Shopify 標準 UI に流れ、アプリの設定画面が使われない。 打ち手 既存の React Router 設定ページに対して admin.app.intent.link を登録し、create / edit 両方のインテントを宣言。 効果 マーチャントが Sidekick から一貫してアプリ専用フローに着地。標準 UI との取り違えを防げる。 技術メモ 既存ページの流用で済むため実装は最小。edit 側は value の GID を受けて対象ディスカウントを読み込む。 USE CASE 2 複数タイプのディスカウントを持つアプリで「タイプ別の専用フロー」を出し分け 課題 まとめ買い割・ティア割・BOGO など複数の Function 実装を 1 アプリで提供していて、どの設定画面に案内すべきかが曖昧。 打ち手 Function 実装ごとに matchValue (functionId)を設定したインテントを登録。曖昧な依頼は候補選択ピッカーでマーチャントに選ばせる。 効果 タイプごとに最適な入力画面へ直行。設定ミスや問い合わせの減少が見込める。 技術メモ 各インテントがアプリ上限にカウントされるため、Sidekick に出す実装を優先度で絞る判断が必要。 USE CASE 3 新規開発・リプレイスでは「インライン UI 拡張」前提で設計する 課題 ディスカウント設定のためにアプリ本体の画面へ遷移させると、管理画面から離れて操作が分断される。 打ち手 Discounts UI 拡張( admin.discount-details.function-settings.render )で作る、または admin.app.intent.render で用途を絞ったインライン UI を登録。 効果 Discounts UI 拡張なら登録作業なしで自動的に優先表示。管理画面内で作成・編集が完結する。 技術メモ intent.render は API 2026-04 以降が必須。対象 API バージョンを先に揃えてから着手する。 9 提案で使える1行サマリ 「Functions 製ディスカウントアプリは shopify/Discount インテントを登録すると、 Sidekick からの作成・編集依頼をアプリ専用フローで受けられる。移行不要・既存アプリはそのまま動く。 UI 拡張なら自動、既存画面なら link、インライン化なら render(2026-04〜)。」 source : shopify.dev / changelog / use-app-intents-for-your-discount-app 公開日 2026-09-30