コンテンツにスキップ

Shopifyの100商品制限を超える購入X獲得Y:カタログ全体で3-for-2を実行する方法

By Stackable TeamPublished on July 21, 2026Shopify How-To#bogo#buy-x-get-y
Shopifyの100商品制限を超える購入X獲得Y:カタログ全体で3-for-2を実行する方法

Shopifyのネイティブ購入X獲得Y割引は、対象にできる商品数を制限し、マーチャントとShopifyサポートから広く100商品と報告されており、注文ごとに固定回数適用されるため、カートが増えるにつれて繰り返されません。その組み合わせが、数百の商品を持つカタログで本当の企業全体の3-for-2を実行できず、9つの対象商品を購入している顧客が自動的に3つを無料で取得できない理由です。企業全体または繰り返しのBuy X Get Yを実行するには、そのような商品上限を持たず、買う数量が達成されるたびにオファーを再適用できるShopify Functionsに基づいて構築された割引が必要です。

このガイドでは、ネイティブBuy X Get Yがどのように機能するか、正確にどこで止まるか(商品上限、繰り返しなし動作、最も安い商品の微妙さ、バリエーションの数え方)、これらの制限がなぜ存在するか、マーチャントが手に取る回避策とドラフト注文と複製コレクションがコード、分析、および高速チェックアウトを静かに破く理由、そしてカタログ全体で3-for-2とbuy-6-get-2を実行するFunctions ベースの方法について説明します。

Shopifyの購入X獲得Yに商品制限がありますか?

はい。Shopify管理画面でBuy X Get Y割引を構築するとき、顧客が購入する必要がある商品またはコレクションと、それが割引される対象を選択します。対象アイテムを1つずつ追加すると、上限に達します。Shopifyフォーラムのマーチャントは、ビルダーが100に達するとこれ以上商品を追加できなくなることを報告しており、Shopifyサポートもそれらのスレッドで同じ上限を確認しています。広く読まれたShopifyパートナースレッド「「Shopifyの購入X獲得YのBOGO 100商品制限の回避策を探しています」で、大規模なカタログ全体で単純な3-for-2を実行しようとしているマーチャントが、ハードな100商品制限があり、ネイティブ設定がそれを削除しないと言われています。

精度についての簡単なメモ。Shopifyのパブリックデベロッパードキュメントでは、「Buy X Get Y割引オブジェクト」およびそれらの動作について説明していますが、APIリファレンスに正確な「100」を記載しません。したがって、100をマーチャントとShopifyサポートがヘルプセンターとコミュニティで引用する広く報告されているネイティブ制限として扱ってください。実用的な結論は変わりません。ネイティブBuy X Get Yはカタログ全体をカバーするように設計されていないため、上限を超えると対象商品を追加することはできません。

この上限は、このプロモーションを最も望んでいる店舗に最も厳しく影響します。「任意の3つを購入して最も安いものを無料」を実行している400 SKUアパレルブランドはすべての商品を選択することはできません。600のアイテムを持つホームウェアストアは、その全範囲を混在・マッチング3-for-2に入れることはできません。プロモーションを任意の100商品に制限するか、それぞれ独自の対象リストを持つ複数の割引に分割するかのどちらかで終わり、これは脆弱で間違いやすいです。

画像プレースホルダー(画像1):100商品の壁
提案されたビジュアル:白い背景の上のクリーンな16:9図。小さなアイテムタイルの大きな商品グリッドが、固い紫(最初の100、「対象」とラベル付け)からグレーアウトされたタイル(「追加不可」とラベル付け)にフェードアウトし、100商品制限」とマークされた太い金色の縦線でそれらを分離します。コーナーの小さなカウンターは「100 / 400商品」を読みます。フラットなベクタースタイル、ブランドカラー紫と金、サンセリフラベル、写真なし。

ネイティブBuy X Get Yは実際にどのように機能しますか?

Buy X Get Y(BXGYまたはBOGOと呼ばれることもあります)は、Shopifyの組み込み割引タイプの1つです。他の商品の適格数量を購入すると、顧客に割引または無料のアイテムで報酬します。商品クラス割引です。つまり、注文小計または配送ではなく、特定のカート行の価格を削減します。

「顧客が購入」と「顧客が取得」の半分

すべてのBuy X Get Y割引には2つの半分があります。「顧客が購入」側はトリガーを設定します。選択する商品またはコレクションの最小数量(または最小支出)。「顧客が取得」側は報酬を設定します。無料または割合または固定額で割引される商品またはコレクションの数量。Shopifyの「Buy X Get Y作成ミューテーション」は正確にこれらのフィールドを公開し、「customerBuys」および「customerGets」、各側のアイテムは商品またはコレクションです。古典的なセットアップは、コレクションから2つを購入して、同じコレクションから1つを無料で取得し、おなじみの「2つを購入して1つを取得」オファーを作成します。

最も安い商品の微妙さ

「3-for-2」スタイルのプロモーションの意図は、3つの適格商品の中で最も安いものが無料になることです。ネイティブBuy X Get Yは「獲得」アイテムを無料にすることができますが、マーチャントがしばしば仮定する方法で「常に最安値の対象アイテムをカートで割引する」専用モードはありません。購入と獲得リストが重なる場合(顧客は同じコレクションから購入して取得)、Shopifyは低価格の対象行に割引を適用し、単一セットに対して最も安いものを無料で近似させます。問題は、カートが複数のセットを保持している場合に開始します。オファーは次に最安値の商品を見つけて無料にし続けないためです。これは繰り返しの問題で、以下で説明します。

バリエーションの数え方

Buy X Get Yは商品およびバリエーションレベルで機能します。これは強みと罠です。特定のバリエーションを含めることができます。これは、マーチャントが特定のサイズや色のみが対象になるようにしたい場合に適しています。ただし、対象資格は依然として商品またはコレクションの有限リストであるため、「任意の商品の任意のバリエーション、混在・マッチング」を希望するストアは、商品上限に直接戻ります。カタログが上限を超えると、「カタログ全体、すべてのバリエーション、任意の3つを購入」を単一のネイティブルールとして表現することはできません。

ネイティブBuy X Get Yはなぜ繰り返せないのですか?

これは2番目の壁であり、多くの店舗にとっては商品上限よりも悪いです。ネイティブBuy X Get Yは、カートの各適格セットに対して再適用されるのではなく、注文ごとに限定回数適用されます。Shopifyの独自作成ミューテーションには「usesPerOrderLimit」フィールドが含まれており、、ドキュメント化された例では「1」に設定されています。つまり、その注文に対して割引が1回付与されます。「顧客が別の適格セットを購入するたびに自動的にこのオファーを再適用する」と言うネイティブトグルはありません。

それを再生します。「6つ購入して2つを無料」を実行します。顧客は12の対象商品をカートに追加し、明らかに2つの完全なセット。彼らは4つの無料アイテムを期待しています。ネイティブBuy X Get Yは2を与え、オファーが一度発火して停止したため。同じことは企業全体の3-for-2を破ります。9つの対象アイテムがカートに含まれている顧客は、3つを無料で取得する必要があります(3セットの3)が、ネイティブ割引は1つだけ解放します。マーチャントのプロモーションポスターは1つのことを言い、チェックアウトは別のことをします。これは信頼を蝕み、サポートチケットを生成します。

マーチャントはフォーラムで正確にこのパターンが欲しいと説明しています。「6つ購入して2つ無料、9つ購入して3つ無料」は、カート数に応じてスケールする比率。ネイティブBuy X Get Yはセットごとに再計算するように構築されていないため、オファーは過剰配信されるか、マーチャントがプロモーションを顧客が混乱する方法で制限するように強制します。

100商品の上限がなぜ存在するのですか?

この上限は恣意的な残酷さではありません。ネイティブ割引は、割引レコードに接続された明示的な商品またはコレクション資格リストとして対象資格を格納し、Shopifyはそのリストを制限するため、割引はすべてのカートとチェックアウトで高速に評価されます。数千の特定の商品の無限リストをスキャンする必要があった割引は、すべてのカート更新でより遅く、カートページ、チェックアウト、および高速チェックアウトにわたって一貫した状態を保つのが難しくなります。資格リストを制限することで、ネイティブ割引は予測可能です。

上限を削除する設計選択は、個々の商品の巨大なリストを格納するのをやめ、代わりにランタイムでロジックで対象資格を評価することです。それがまさにShopify Functionsがすることです。「ここに400の特定の商品ID」の代わりに、Functionは「このタグを持つアイテム」または「このコレクション内のアイテム」に指示でき、カートが計算されるにつれて、各行が対象かどうかを決定できます。ルールは格納されたリストではなくロジックであるため、カタログサイズは問題になりません。これはShopifyがマーチャント自体がネイティブビルダーが表現できない割引動作に向かって指し示す同じアーキテクチャです。

画像プレースホルダー(画像2):リストベースとロジックベースの対象資格
提案されたビジュアル:16:9スプリットパネルイラスト。左パネルに「ネイティブ:格納されたリスト」というラベルが付いており、赤い「満杯」スタンプで固定スタックの100商品カードを保持している割引レコードを示しています。右パネルに「Functions:ルール」というラベルが付いており、「tag = sale」を読むシングルルールチップを示しており、すべてチェックされた緑色の無制限の商品タイルのグリッドにファンアウトする矢印があります。センター仕切り。ブランドカラー紫と金、フラットなベクタースタイル、写真なし。

マーチャントはどのような回避策を試し、なぜそれらは壊れるのですか?

ネイティブBuy X Get Yが足りないため、ストアはハックに手を出します。それぞれは上限を別の、通常はより悪い問題と交換します。

重複割引、100商品ごとに1つ

明らかな動きは、カタログを100のチャンクに分割し、各チャンクに対して個別のBuy X Get Y割引を作成することです。カートについて考えるまではそこそこ機能します。異なるチャンクに分類される2つの適格商品を購入している顧客は、どの割引の購入数量も満たさないため、プロモーションは混在カートで無視されます。また、メンテナンスが増加します。すべての新製品は正しいチャンクにファイルする必要があり、Shopifyは実行できるアクティブな割引の数を制限します。このアプローチはプロモーションのポイント全体に対抗します。これは、顧客が範囲全体で自由に混在・マッチングできるようにすることです。

手動割引を使用したドラフト注文

一般的な提案は、管理画面でドラフトとしてオーダーを構築し、割引を手で適用し、顧客に請求書を送信することです。これは商品上限を削除しますが、店舗が機能するものを破ります。ドラフト注文フローは通常のチェックアウトではありません。顧客が独自の割引コードを上に適用できず、標準的な分析と同じ方法では実行されず、高速チェックアウトをまったくバイパスします。Shop Pay、Apple Pay、およびGoogle Pay購入者は、手作りのドラフト注文を見えず、最速で変換する顧客はまったくオファーを使用できません。ドラフト注文は時折の電話販売に適しています。それらはスケールで自分自身を昇進させる仕組みではありません。

「偽のバンドル商品」トリック

セット価格の繰り返しのため、一部のマーチャントは、たとえば「3 for 2バンドル」商品をセット合計の価格で、単一の偽の商品を作成し、本当の商品を非表示にします。これはインベントリを潰し(バンドルSKUは実在の株式から切り離される)、マーチャンダイジングを潰し(顧客は自由に閲覧して選ぶことができません)、そしてレポートを潰します(売上は偽のSKUの下にロールアップします)。また、「この大規模な範囲から任意の3つ」を表現することはできません。これは、混在・マッチング3-for-2が提供することになっているものです。

3つすべての間のパターン。各回避策は、クリーン、セルフサービス、チェックアウトネイティブのプロモーションを手動、脆弱、または最高の変換者に見えない何かと交換します。それらのどれも、マーチャントが実際に望んでいるものを復元しません。これは上限なしでネイティブBuy X Get Y動作です。

Shopify Functionsで企業全体、繰り返しのBuy X Get Yを実行する方法

耐久性のある修正は、Shopify Functionsに基づいて構築された割引です。Shopifyが割引ロジックをカスタマイズできるようにアプリが使用するのと同じサーバー側エンジンです。Functions ベースのBuy X Get Yは両方の壁を一度に解決します。

第一に、対象資格はリストではなくルールになります。タグまたはコレクションでオファーをスコープし、関数は計算時にそのルールに対してすべてのカート行を評価します。100商品の資格リストを記入する必要がないため、400商品または4,000商品のカタログは同じ方法で扱われます。規則に一致する新製品は、割引を再編集する必要なく、追加された瞬間に自動的にオプトインします。

第二に、オファーは繰り返すことができます。関数は、カート内の各適格セットに対して購入と獲得の比率を再適用できるため、「3つ購入して1つ無料」は6つの商品で2つ無料、9つの商品で3つ無料になり、1つのオファー内で。同じロジックは「6つ購入して2つ無料」を12の商品で4つ無料に倍増させる。そして関数はShopifyのチェックアウトパイプライン内で実行されるため、カートページ、チェックアウトページ、および高速チェックアウトはすべて同じ結果を計算し、Shop Pay購入者はカートの引き出しが約束したものを正確に取得します。

第三に、最も安い商品の動作は明示的になります。関数は、各セットで常に最も低価格の対象アイテムを割引するように指示するか、または本当の3-for-2が意味するもの、またはより穏やかなオファーのパーセンテージを適用することができます。Shopifyのデベロッパードキュメント、「Buy X Get Y割引モデル」に記載されている制限事項と考慮事項があり、Functionsはそれらを超えて進む場合にサポートされるパスです。

実装例:企業全体の3-for-2と繰り返しbuy-6-get-2

両方のプロモーションを具体化しましょう。

プロモーションA:400商品カタログ全体での3-for-2

アパレルストアは、その全体の400 SKU範囲全体で「任意の3つを購入して最も安いものを無料」にしたいと考えており、新着が自動的に参加してほしいと考えています。Functions ベースのオファーを使用して、対象資格はタグ(たとえば、「promo-3for2」)カタログ全体に適用され、購入数量は3、取得数量は1、割引は最も安い対象商品の100パーセント、および繰り返しがオンになります。

実際のカートがどのように解決するかです。

ネイティブBuy X Get Yは2つのレベルでこれを表現することはできません。1つの対象リストで400商品をカバーできず、カバーされたセット内でも9商品カートに対して1つではなく3つを解放します。Functions ベースのオファーは、カタログサイズと繰り返しの両方を処理します。

プロモーションB:繰り返しbuy-6-get-2

スナックブランドは「6つのバーを購入して2つを無料」に実行し、プロモーションポスターは12バーカートに対して二重になるべきことを意味します。セットアップは購入数量6、取得数量2、繰り返しオン、取得アイテムの100パーセント割引。

12本のバーカートは4つの無料バーを取得し、6-for-2セットの2つの繰り返しで、ポスターが約束したものと正確に同じです。ネイティブBuy X Get Yは、注文ごとに1回適用され、同じ12本のバーカートに対して2つの無料バーを与え、オファーを静かにアンダーセルします。

両方のテーブルのポイントは、数学が難しいことではありません。ネイティブBuy X Get Yは最初のセットと100の商品で停止し、Functions ベースのオファーは継続しているということです。

Stackableでこれを確実に実行する

カスタムShopify Functionを構築するのではなく、これを構成したい場合、「Stackable」はネイティブ制限を超えてBuy X Get Yを実行し、正直かつShopifyの実際のルール内で実行します。

  • 100商品の上限なし。対象資格をタグ、コレクション、または上限のない明示的なリストでスコープし、企業全体の3-for-2はカタログ全体をカバーし、規則に一致する新商品は自動的にオプトインします。
  • 繰り返しロジックは単一のトグル。「3つを購入して1つ無料」はカートが成長するにつれて再適用されるため、6つの商品は2つ無料を取得し、9つの商品は3つの無料、および「6つを購入して2つを無料」は12の商品で4つの無料に倍増し、すべて1つのオファー内で。
  • 最も安いアイテム無料がデフォルトで、より穏やかなディールのパーセンテージに切り替えるか、割引を特定のアイテムに固定できます。
  • 計算は「Shopify Function」内で実行されるため、カートページ、チェックアウト、Shop Payなどの高速チェックアウトはすべて同じ結果を計算します。ドラフト注文ハックなし、偽のバンドルSKUなし、テーマ対チェックアウトドリフトなし。

Stackableを無料でインストールして、ストア全体で繰り返し使える3-for-2を、1円までずれずに実行しましょう。usestackable.com/pricing 🚀

要点

  • ネイティブBuy X Get Yは、対象にできる商品数を制限し、マーチャントとShopifyサポートが100として広く報告される制限するため、1つのルールで大規模なカタログをカバーできません。
  • ネイティブBuy X Get Yは、注文ごとに固定回数適用されるため、繰り返しません。9商品カートの3-for-2は1商品を解放し、3つではなく、12バーカートのbuy-6-get-2は2つ、4つではなく。
  • 回避策はすべて上限を別の、通常はより悪い問題と交換します。重複割引は混在・マッチングを破り、ドラフト注文はコードと高速チェックアウトをバイパスし、偽のバンドルSKUはインベントリとレポートを潰します。
  • 上限が存在するのは、ネイティブ割引は対象資格を制限されたリストとして格納するためです。Shopify Functionsはランタイムで規則として対象資格を評価するため、カタログサイズは問題になりません。
  • Functions ベースのBuy X Get Yは企業全体で実行でき、常に最も安い対象商品を割引して、セットごとに繰り返すことができ、カートページ、チェックアウト、Shop Payで同じ合計があります。
  • Stackableのようなツールは、商品上限なし、繰り返しトグル、および最も安い商品無料デフォルトを提供し、カスタム関数ではなくいくつかの設定で企業全体の真の3-for-2が可能です。

関連記事

よくある質問

よくある質問への回答

  • マーチャントとShopifyサポートから一貫して、ネイティブ購入X獲得Y割引で対象にできる商品数が100に制限されていると報告されています。正確な数字はShopifyの公開APIリファレンスには記載されていないため、100を広く報告されているネイティブ制限として扱ってください。いずれにしても、ネイティブ購入X獲得Yは大規模なカタログをカバーするように設計されていないため、制限に達した後は対象商品を追加し続けることはできません。

  • ネイティブBuy X Get Yは商品制限と注文ごとに1回だけ適用されるため、できません。Shopify Functionsに基づいて構築された割引を使用してください。Shopify Functionsは固定商品リストではなく、タグやコレクションで対象を決定するため、カタログサイズは問題になりません。買う数を3に設定し、対象商品の中で最も安い商品を1つ無料にし、繰り返しをオンにすると、9商品入っているカート場合、1商品ではなく3商品が無料になります。

  • それがネイティブの動作です。ShopifyのBuy X Get Y作成ミューテーションには1注文あたりの使用制限が含まれており、デフォルトでは割引は固定回数(通常1回)付与され、各適格セットに対して再適用されません。カートが増えるにつれて繰り返すようにするには、繰り返しロジックを備えたFunctionsベースのオファーが必要です。このオファーは各セットに対して購入と獲得の比率を再適用します。

  • 自動的にはできません。ネイティブBuy X Get Yは注文ごとに1回適用されるため、12商品入っているカートの場合、「6つ購入して2つ獲得」のオファーでは2商品が無料になります(4商品ではなく)。繰り返し適用されるFunctions ベースのBuy X Get Yはセットごとに比率を再適用するため、12商品なら4つ無料、18商品なら6つ無料になります。これは1つのオファーの中で行われ、マーチャントが「6つ購入して2つ獲得、9つ購入して3つ獲得」と呼ぶものです。

  • 各セットの3つの対象商品の中で、最も安いものを割引するオファーが必要です。ネイティブBuy X Get Yは購入と獲得リストが重なる場合、1つのセットに対して単一セットの近似値を達成できますが、複数セットにわたって次に最も安い商品を無料にし続けることはできません。Functions ベースのオファーは、明示的に各セットで最も安い対象商品をターゲットにして繰り返すことができます。

  • はい。特定のバリエーションを含めることができるため、特定のサイズや色だけが対象になり、対象商品のバリエーション間で混在・マッチングが可能です。制限は対象リスト自体です。選択が100商品制限を超えると、これ以上商品を追加することはできません。タグやコレクションで範囲を決定するルールベースのオファーは、記入する必要があるリストなしに、すべての一致するバリエーションをカバーします。

  • セルフサービスプロモーションの場合はいいえ。管理画面でドラフト注文を構築すると商品制限は削除されますが、通常のチェックアウトをバイパスするため、顧客が独自のコードを適用できず、Shop Payなどの高速チェックアウトはオファーを表示されず、レポート動作が異なります。ドラフト注文は時折の電話販売または卸売販売に適していますが、買い物客が自分でトリガーする企業全体の3-for-2には適していません。

Do this in your store

  • BOGO / Buy X Get Y

    Run Shopify BOGO and buy X get Y storewide with no 100-product limit, plus the repeat logic native buy X get Y cannot do.

  • Bundles

    Rule-based fixed-price Shopify bundles that stay in sync with your catalog instead of breaking when you add a product.

Stackable Team

The team building Stackable, the reliability-first bulk and volume discount app for Shopify. We write about discount stacking, Shopify Functions, and how to run promotions that hold up at checkout.

本サイトの運営には必須Cookieを使用しており、お客様の同意をいただいた場合のみ、アクセス状況を把握するための分析Cookieを使用します。詳細は Cookieポリシー.