Developer Changelog / Discounts × Sidekick

ディスカウントアプリが App Intents に対応
Sidekick から「アプリ独自の作成・編集画面」へ直行

Shopify Functions で独自のディスカウントタイプを作るアプリが shopify/Discount インテントを登録可能に。Sidekick がアプリの作成・編集フローを起動し、候補選択ピッカーでも優先表示されるようになった。

このページの構成
  1. そもそも何が変わるのか(30秒で理解)
  2. 仕組み図解 : Sidekick からアプリのフローに入るまで
  3. 3つの登録方法(ターゲット)
  4. インテント登録の中身
  5. 影響範囲とモバイルの制約
  6. やること(3つの選択肢)
  7. 技術者が押さえるべき5つのポイント
  8. 業務に活かせる3つのユースケース
  9. 提案で使える1行サマリ

1そもそも何が変わるのか

マーチャントが Sidekick で「このディスカウントを作って/編集して」と頼んだとき、
Shopify 標準のディスカウント UI ではなく、そのディスカウントタイプを作ったアプリ専用のフローに着地できるようになる。

これまで : 標準 UI に流れがち

アプリ独自のディスカウントタイプでも、Shopify のデフォルトのディスカウント UI へ誘導されることがあった。

これから : アプリのフローへ直行

shopify/Discount インテントの create / edit アクションで、Sidekick がアプリの作成・編集フローを起動。ピッカーでも優先表示。

2仕組み図解 : Sidekick からアプリのフローに入るまで

マーチャント 作成/編集を依頼 Sidekick shopify/Discount インテントを解決 特定できた 特定できない matchValue(functionId) 該当する Function 実装の フローを直接起動 候補選択ピッカー 登録済みフローから マーチャントが選ぶ アプリのフロー intent.link 既存の React Router ページへ遷移 intent.render Admin UI 拡張をインライン描画 Discounts UI 拡張 自動で優先表示
候補選択ピッカー(disambiguation picker) : 依頼内容から特定のディスカウントタイプや Function 実装が判別できないとき、利用可能なフローの一覧からマーチャントが選ぶ画面。インテントを登録したアプリのフローがここに表示される。

33つの登録方法(ターゲット)

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 を参照
matchValuefunctionId に対して指定し、インテントを特定の Shopify Function 実装に紐付ける。複数実装を持つアプリは実装ごとにフローを登録できる
value スキーマedit フローではディスカウントの GID を運ぶ
上限登録したインテントはそれぞれアプリごとのインテント上限にカウントされる(上限の具体数は記載なし)
既存の extension.ui.paths引き続き動作する。ただし create / edit 両方で Sidekick と深く連携させるには App Intents の宣言が推奨
1つのアプリ 複数の Function 実装 functionId = A のインテント functionId = B のインテント functionId = C のインテント A 専用の作成・編集フロー B 専用の作成・編集フロー C 専用の作成・編集フロー 各インテントが 上限に1件ずつ加算

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つのポイント

ID

1. 紐付けのキーは functionId

matchValue を functionId に設定して、インテントと Function 実装を 1:1 で対応させる。複数実装のアプリは実装ごとに登録。

GID

2. edit はディスカウント GID を受け取る

インテントの value スキーマにディスカウントの GID が入る。編集画面側はこれを受けて対象を特定する設計にする。

2026-04

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 を受けて対象ディスカウントを読み込む。
A B C
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〜)。」