商品ディスカウント関数にBXGY前提条件が追加
Buy X Get Y割引の「Buy X」部分をFunctions APIで定義できるようになりました
2026年4月1日より、Shopify Discount Functionsの商品ディスカウント候補にprerequisites(前提条件)フィールドが追加されました。これにより開発者は「Buy X, Get Y(BXGY)」形式の割引における「Buy X(何を何個買うか)」の条件をFunction内で直接定義できます。従来はBXGY割引のロジックをShopify標準機能の範囲でしか表現できませんでしたが、今回の追加でカスタム関数による高度な前提条件制御が可能になります。
1変更内容の図解:Before / After
2業務ユースケース3選
- 課題
- 「対象シャンプーを2本購入したらトリートメントが50%OFF」というBXGYキャンペーンを実施したいが、Shopify標準の割引では商品の組み合わせ条件が細かく設定しにくかった。
- 打ち手
- Discount Functionのprerequisitesフィールドに、シャンプーのカートラインIDと数量「2」を指定したcartLinePrerequisiteを定義。条件を満たした場合にトリートメントへ50%割引を適用するロジックをFunction内に記述する。
- 効果
- セット購買を促進しながら、まとめ買い条件を正確にコントロールできる。購入数が足りない場合は割引が自動で外れるため、割引漏れリスクも低減。
- 技術メモ
- cartLinePrerequisiteのidにはカートラインの識別子、quantityには必要数量を整数で指定。Discount Functions APIのproductDiscountCandidate内のprerequisitesフィールドに配列として渡す。
- 課題
- アパレルショップで「ボトムスを1点買うとベルトが10%OFF」という連動キャンペーンを実施したいが、カテゴリをまたいだBXGYロジックをアプリ側で柔軟に組めなかった。
- 打ち手
- Functionのロジック内でカートラインをカテゴリ別に仕分けし、ボトムスに該当するカートラインをprerequisiteとして指定。ベルトのカートラインに10%割引を適用するdiscountを設定する。
- 効果
- カテゴリ横断のクロスセル施策をFunction内のビジネスロジックとして一元管理でき、施策変更も関数の更新のみで完結する。
- 技術メモ
- カテゴリの判定はFunction内でカートラインのメタフィールドや商品タグをもとに行うか、Input queryで必要属性を取得して判定する設計が考えられる(実装詳細は公式ドキュメント参照)。
- 課題
- 食品ECで「対象スープを3パック購入するとパンが無料になる」プロモーションを定期的に行っているが、数量条件の閾値変更のたびに管理画面操作が煩雑だった。
- 打ち手
- prerequisiteのquantityを設定値として外部から注入できる構成にし、閾値をFunction Configurationや店舗メタフィールドで管理。数量変更は設定値の書き換えのみで対応できる。
- 効果
- 開発コードを変更せずにプロモーション条件を柔軟に更新可能になり、キャンペーン運用コストを削減できる。
- 技術メモ
- Function ConfigurationはGraphQL AdminのdiscountAutomaticAppCreate/discountCodeAppCreateミューテーションで設定可能。APIバージョンは公式ドキュメントで最新バージョンを確認すること。
3技術者向けポイント
prerequisitesフィールドがproductDiscountCandidateに追加。配列形式でcartLinePrerequisiteオブジェクトを複数指定できる(元記事に複数指定可否の明示はないが、フィールド構造から配列であることが読み取れる)。
cartLinePrerequisiteはid(カートライン識別子)とquantity(必要数量)の2プロパティで構成される。両プロパティの型・必須可否は公式ドキュメントで確認推奨。
今回の変更は商品ディスカウント(Product Discount)関数が対象。注文ディスカウントや配送ディスカウント関数への適用については元記事に記載なし。
BXGYの「Get Y」側(割引適用先)の定義方法は従来どおり。今回追加されたのはあくまで「Buy X」側の前提条件を構造的に表現するフィールドであり、Get Y側のロジックを変更するものではない。
詳細仕様・スキーマはShopify公式のDiscount Functions documentationを参照。元記事URLはhttps://shopify.dev/changelog/add-prerequisites-to-product-discount-functions。実装時は最新APIバージョンのドキュメントを必ず確認すること。
Discount FunctionsにBXGY前提条件フィールドが追加されたことで、「〇〇を△個買うと××が割引」というカスタム連動キャンペーンをFunction内のロジックとして正確かつ柔軟に実装できるようになりました。
Source: https://shopify.dev/changelog/add-prerequisites-to-product-discount-functions | 公開日: 2026年4月1日






Share:
Shopify POS 現金管理APIが刷新:キャッシュドロワー対応
DelegateAccessTokenに有効期限フィールドが追加