Shopify Functions で独自のディスカウントタイプを作るアプリが shopify/Discount インテントを登録可能に。Sidekick がアプリの作成・編集フローを起動し、候補選択ピッカーでも優先表示されるようになった。
アプリ独自のディスカウントタイプでも、Shopify のデフォルトのディスカウント UI へ誘導されることがあった。
shopify/Discount インテントの create / edit アクションで、Sidekick がアプリの作成・編集フローを起動。ピッカーでも優先表示。
admin.app.intent.linkReact Router アプリの既存ページへ遷移させる。今ある管理画面を活かせる。
admin.app.intent.render用途を絞った Admin UI 拡張をインラインで描画。API 2026-04 以降が必須
admin.discount-details.function-settings.render を使う拡張は登録なしで自動的に優先表示。
| 要素 | 内容 |
|---|---|
| アクション | create edit の2種類に対応 |
| メタスキーマ | shopify-intent.json を使って登録 |
| ベースラインスキーマ | shopify/discount.json を参照 |
| matchValue | functionId に対して指定し、インテントを特定の Shopify Function 実装に紐付ける。複数実装を持つアプリは実装ごとにフローを登録できる |
| value スキーマ | edit フローではディスカウントの GID を運ぶ |
| 上限 | 登録したインテントはそれぞれアプリごとのインテント上限にカウントされる(上限の具体数は記載なし) |
既存の extension.ui.paths | 引き続き動作する。ただし create / edit 両方で Sidekick と深く連携させるには App Intents の宣言が推奨 |
既存アプリはそのまま動作し、移行作業は不要。Function ベースのディスカウントタイプを作らないアプリには影響なし。
admin.app.intent.link のディスカウントは Shopify モバイルアプリの一覧には出るが、タップしてもアプリの編集フローは開かない。
既存アプリは対応不要。Sidekick と候補選択ピッカーでフローを優先表示させたい場合は、次のいずれか。
それだけで自動的に優先表示される。
intent.link を登録既存の React Router 製ディスカウント UI を使う場合。
intent.render を登録用途を絞ったインライン UI 拡張を提供する場合(API 2026-04 以降)。
matchValue を functionId に設定して、インテントと Function 実装を 1:1 で対応させる。複数実装のアプリは実装ごとに登録。
インテントの value スキーマにディスカウントの GID が入る。編集画面側はこれを受けて対象を特定する設計にする。
admin.app.intent.render は API 2026-04 以降が必須。link は既存 React Router ページを流用でき、導入ハードルが低い。
登録ごとに per-app のインテント上限にカウントされる。Function 実装が多いアプリは、どれを Sidekick に出すかの取捨選択が必要(上限値は記載なし)。
extension.ui.paths は引き続き有効で移行は不要。ただし Sidekick の create / edit 両方に深く統合したいなら App Intents の宣言が推奨。なお link フローはモバイルで編集画面が開かないため、モバイル利用が多いマーチャント向けには案内文言の用意を。
admin.app.intent.link を登録し、create / edit 両方のインテントを宣言。matchValue(functionId)を設定したインテントを登録。曖昧な依頼は候補選択ピッカーでマーチャントに選ばせる。admin.discount-details.function-settings.render)で作る、または admin.app.intent.render で用途を絞ったインライン UI を登録。intent.render は API 2026-04 以降が必須。対象 API バージョンを先に揃えてから着手する。shopify/Discount インテントを登録すると、