Product Discount Functions に 「Buy X」を定義する prerequisites が追加
原題: Add Prerequisites to Product Discount Functions
- Functions
- Discounts
- Product Discount Functions
- BXGY
- prerequisites
- cartLinePrerequisite
- Checkout
- 新機能
図解 : Product Discount Functions に prerequisites(Buy X 条件)が追加 Functions / 2026-04 Product Discount Functions に 「Buy X」を定義する prerequisites が追加 商品割引の Function で、割引対象の候補に「前提条件(prerequisites)」を設定できるようになった。これで「A を 2 個買ったら B が割引」という BXGY(Buy X, Get Y)の "Buy X" 側を、コードで表現できる。 このページの構成 そもそも何が変わるのか(30秒で理解) BXGY 割引とは(仕組み図解) 追加された prerequisites の構造 判定フロー図解 : 割引が成立するまで 従来 vs これから 技術者が押さえるべき5つのポイント 業務に活かせる3つのユースケース 提案で使える1行サマリ 1 そもそも何が変わるのか Discount Functions の 商品割引候補(product discount candidates) に prerequisites フィールドが追加された。 これにより、「この割引を受けるには、別の商品を○個カートに入れていること」という 前提条件 を Function 内で宣言できる。= BXGY(Buy X, Get Y)の "Buy X" を表現できるようになった。 従来 : 割引対象だけを指定 商品割引 Function では「どの商品を、いくら割り引くか」は表現できたが、「○○を買っていること」という前提条件は持てなかった。 これから : 前提条件付きで指定 割引候補に prerequisites を付けられる。「カートライン X が quantity 個ある場合のみ、この割引を適用」という BXGY ロジックが Function で完結する。 2 BXGY 割引とは(仕組み図解) BXGY = Buy X, Get Y 。「指定した商品を一定数量買う(Buy X)と、別の商品に割引が付く(Get Y)」という販促手法。記事の定義をそのまま図にすると次の通り。 記事の定義 : 「顧客は、ある商品(Buy X)を指定数量購入すると、別の商品(Get Y)への割引を受けられる」。今回追加されたのは、この "Buy X" を Function 側で宣言するための仕組み 。 3 追加された prerequisites の構造 商品割引候補に prerequisites フィールドが追加された。各前提条件は cartLinePrerequisite として定義され、2 つの値を持つ。 フィールド 意味 記事の説明 id 前提に使うカートラインの識別子 The identifier for the cart line used as the prerequisite. quantity 割引資格を得るために、そのカートラインに必要な数量 The number of items from that cart line required to qualify for the discount. 構造イメージ // 商品割引候補(product discount candidate)に // prerequisites を付与するイメージ { prerequisites : [ { // cartLinePrerequisite id : "<前提となるカートラインの id>" , quantity : 2 // 必要数量(Buy X の "X") } ] } 上記はフィールド名( prerequisites / cartLinePrerequisite / id / quantity )に基づくイメージ図。 正確なスキーマ・型・必須/任意の区分は記事に記載なし 。実装前に Discount Functions のドキュメントで確認すること。 4 判定フロー図解 : 割引が成立するまで ※ 上図は id / quantity の意味から組み立てた概念フロー。実際の評価タイミングや複数 prerequisite 時の挙動は記事に記載なし。 5 従来 vs これから 項目 従来の Product Discount Function prerequisites 追加後 割引対象の指定 可 どの商品をいくら割り引くか 可 同上 「○○を買っていること」条件 不可 候補に前提条件を持てない 可 prerequisites で宣言 BXGY の "Buy X" 表現 不可 可 cartLinePrerequisite で定義 条件の単位 — カートライン( id )+必要数量( quantity ) 対象 Function 種別 — 商品割引(product discount)の候補 6 技術者が押さえるべき5つのポイント 1. 追加点は1フィールド 商品割引候補に prerequisites が増えただけ。割引そのものの返し方は従来通りで、 前提条件を「付けられる」ようになった 差分。 2. 条件の正体は cartLinePrerequisite 各前提条件は cartLinePrerequisite で表し、 id (カートラインの識別子)と quantity (必要数量)の2値を持つ。 3. Buy X と Get Y が分離 割引対象(Get Y)=候補そのもの、前提(Buy X)= prerequisites 。両者が候補単位で結びつく構造なので、候補ごとに別々の条件を組める。 4. 細部の仕様は記載なし 複数 prerequisite の AND/OR、数量超過時の扱い、対象 API バージョン等は記事に明記なし。 実装前にドキュメントで要確認 。 5. 一次情報は Discount Functions ドキュメント 記事は「詳細は Discount Functions のドキュメント参照」と案内している。フィールドの型・必須性・サンプル実装はそちらが正本。本ページの図やコードは概念整理用と割り切ること。 7 業務に活かせる3つのユースケース USE CASE 1 セット販売・抱き合わせ販促を Function で自動化 課題 「本体を買った人に、純正アクセサリを割引したい」をアプリや手作業のクーポンで運用しており、商品入替のたびに設定が破綻する。 打ち手 商品割引 Function の候補(Get Y=アクセサリ)に prerequisites (Buy X=本体)を付け、本体購入時のみ自動で割引が成立するようにする。 効果 クロスセルの取りこぼし防止と、割引運用のコード化(再現性・レビュー可能性)。 技術メモ id に本体カートライン、 quantity に必要個数を設定。複数条件の評価仕様はドキュメントで確認。 USE CASE 2 「3 個買うと 1 個無料」系のまとめ買い訴求 課題 消耗品・食品などで「まとめ買いでお得」を出したいが、数量条件をストアフロントや手動割引で管理するのが煩雑。 打ち手 対象カートラインの quantity を閾値(例: 3)に設定した cartLinePrerequisite を割引候補に付与し、閾値到達時のみ割引適用。 効果 1 注文あたりの購入点数アップ(AOV 改善)を、宣言的な割引ロジックで実現。 技術メモ 同一商品を Buy X と Get Y の両方に使うケースの挙動はドキュメントで要確認(記事に記載なし)。 USE CASE 3 外部割引アプリからの脱却・Function 集約 課題 BXGY を実現するためだけに外部割引アプリを契約しており、月額コストとブラックボックス挙動が負債化している。 打ち手 BXGY の "Buy X" が Function でネイティブに表現できるようになったため、自社管理の Discount Function へ移行を検討する。 効果 アプリ費用の削減、割引ロジックの内製化・バージョン管理、チェックアウト挙動の透明化。 技術メモ 移行可否は、既存アプリの割引仕様と Function 側の対応範囲の突合が前提。差分は Discount Functions ドキュメントで確認。 8 提案で使える1行サマリ 「商品割引 Function の候補に prerequisites(cartLinePrerequisite = id+quantity) が追加。 これで 『Aを○個買ったらBが割引』という BXGY の "Buy X" を Function でネイティブに表現 できる。 セット販売・まとめ買い・外部割引アプリ卒業の各シーンで効く。」 source : shopify.dev/changelog/add-prerequisites-to-product-discount-functions generated 2026-05-25