割引UIエクステンションでサブスク割引サイクルを制御できるようになりました
purchaseType / recurringCycleLimit がdiscountsプラグインに追加。GraphQL専用だった設定がマーチャントUIへ開放。
Shopify discount UIエクステンションを構築するアプリ開発者とそのマーチャントを対象に、2026年6月17日より有効です。従来はGraphQL Admin APIを直接操作しなければ設定できなかった「割引の適用対象(単発/サブスク/両方)」と「サブスク割引のサイクル数上限」が、discountsプラグインを通じてUIエクステンション上から設定できるようになりました。既存のエクステンションへの後方互換は維持されており、開発者は任意のタイミングで新フィールドを追加するだけで利用開始できます。
OVERVIEW01何が変わったのか:Before / After
FIELDS02新フィールドの詳細
purchaseType
対象:割引の適用購入タイプを制御するフィールド。
値:ONE_TIME(単発購入)/ SUBSCRIPTION(サブスクのみ)/ ALL(両方)
効果:チェックアウト時にpurchase type filteringが走り、条件外カートには割引が適用されない。
recurringCycleLimit
対象:サブスク割引が何回の請求サイクルに適用されるかを制御するフィールド。
値:0 = 無制限 / 正の整数n = 最初のn回のみ適用(例: 4なら初回〜4回目まで)
効果:4回目以降の請求には割引が自動的に停止。
両フィールドは DiscountCodeApp と DiscountAutomaticApp の両ディスカウントタイプで動作します。チェックアウトでの適用可否は purchase type filtering によってShopify側が自動で制御します。
USE CASES03業務に活かせる具体ユースケース
- 課題
- サブスク専用の初回割引を提供したいが、単発購入にも誤って割引コードが使われてしまいコストが膨らんでいた。
- 打ち手
- discountsプラグインで
purchaseType: SUBSCRIPTIONを設定し、サブスク購入以外のカートでは割引が発動しないよう制御する。マーチャントがUIから切り替えられるので運用コストも削減。 - 効果
- サブスク新規獲得に特化した割引施策をコード変更なしで実現。割引原資の無駄遣いを防止。
- 技術メモ
- チェックアウト時にShopify側でpurchase type filteringが走るため、アプリ側で購入タイプを検証するロジックは不要。
- 課題
- 「最初の3ヶ月だけ割引」という期間限定サブスク割引キャンペーンを実施したいが、バックエンドAPIを介した設定変更が都度必要でマーチャントが自走できなかった。
- 打ち手
-
recurringCycleLimit: 3をdiscountsプラグインのUIに組み込む。マーチャントがキャンペーン作成画面で「割引を適用するサイクル数」を数値入力できるようにする。 - 効果
- 開発者の介在なしにマーチャントが任意の「n回限定割引」を作成・変更できる。4回目以降は自動で割引停止されるため手動解除も不要。
- 技術メモ
-
recurringCycleLimit: 0は無制限扱い。サブスク継続率UPを目的とした永続割引にも対応可能。
- 課題
- 単発購入とサブスク購入の両方を扱う総合ECで、どの購入タイプにでも使える汎用割引コードを発行しつつ、サブスクには追加で「初回5サイクル割引」を適用したい。
- 打ち手
- DiscountAutomaticAppで
purchaseType: ALLの割引とpurchaseType: SUBSCRIPTION+recurringCycleLimit: 5の割引を使い分け、UIエクステンション上でマーチャントが切り替えられるよう設計する。 - 効果
- 単発・サブスクを混在販売する複雑な割引戦略をノーコードで管理。サブスク獲得コストを最適化しながら単発顧客への割引も維持できる。
- 技術メモ
- DiscountCodeAppとDiscountAutomaticAppの両タイプに対応しているため、コードベース式・自動適用式どちらの割引でも同じプラグイン設定が利用可能。
04技術者目線のポイント
| 項目 | 内容 |
|---|---|
| 対象ディスカウントタイプ | DiscountCodeApp / DiscountAutomaticApp(両方) |
| 追加フィールド | purchaseType(購入タイプ制御)/ recurringCycleLimit(サイクル数制限) |
| 移行作業 | 不要。既存エクステンションへの後方互換は維持。新フィールドを追加した場合のみ有効化される。 |
| チェックアウトでの適用制御 | Shopify側のpurchase type filteringが自動で処理。アプリ側に追加のバリデーションロジックは不要。 |
| GraphQL Admin API | 引き続き利用可能。UIエクステンション経由に切り替える義務はなし。 |
| 参照ドキュメント | DiscountAutomaticAppInput(公式APIドキュメントを確認) |
| recurringCycleLimit: 0 | 無制限を意味する。サブスク全期間に割引を適用し続ける場合に使用。 |
Source: https://shopify.dev/changelog/new-purchasetype-and-recurringcyclelimit-fields-available-in-the-discount-ui-extension-api | 公開日: 2026年6月17日






Share:
FlowアクションでURL相対パスが使えるように
Spring '26 Edition: Everywhere 開発者向け解説