コレクション全体ではなく商品単位で価格を決めるShopifyのボリュームディスカウント
Shopify標準のボリュームディスカウントは、コレクション内のすべての商品を1つの共有しきい値に合算してカウントします。Stackableの階層は、対象商品そのものと、選択したバリエーションだけを正確にカウントするため、椅子の購入者が無関係な商品を3点カートに追加しただけで割引を受けてしまうことはありません。
Shopifyフォーラムでは、ストアオーナーからこのような声が寄せられています。
“商品ごとに階層を設定したいのです。特定のダイニングチェアを3〜5脚購入で15%オフ、6〜9脚で18%オフ、10脚以上で20%オフというように、そのチェア単体でカウントし、コレクション内の他のチェアと合算されないようにしたいです。”
Shopify標準の割引ビルダーでは、パーセンテージ割引の対象をコレクションに絞り込めますが、そのコレクション内のすべての商品の合計数量を同じしきい値に対してカウントします。5種類のチェアを販売しているストアオーナーは、コレクション内の他のすべてのチェアもカウントに加算されてしまうため、「この特定のチェアを3脚購入」だけをトリガーにすることができません。
Stackableでの解決方法

「同じ商品」として何をカウントするかを選択する
per_productは1つの商品ページ内のすべてのバリエーションをまとめてカウントします。per_variantは正確なSKUごとに分けてカウントします。per_groupでは、関連する商品を少数選んで1つのしきい値を共有させることができます。

階層のしきい値を設定する
オファーに必要な数だけ数量と割引のペアを追加できます。3〜5、6〜9、10以上など、それぞれに個別のパーセンテージまたは固定額を設定可能です。

顧客には階層価格表がリアルタイムで更新されて表示される
ストアフロントの階層価格表は、カート内の数量が変化するたびにページの再読み込みなしで現在有効な階層をハイライト表示します。
こんな使い方ができます
ある家具店は、特定のダイニングチェア1種類に対して3〜5 / 6〜9 / 10以上の階層を設定したいと考えています。厳密なMOQは3で、コレクション内の他のチェアとは合算させません。
カウント方法 = per_product。階層: 3〜5 = 15%、6〜9 = 18%、10以上 = 20%。対象範囲 = そのチェア商品1点(すべての仕上げをまとめてカウント)。
仕上げを問わずそのチェアを4脚購入すると15%階層に到達します。チェア4脚と別のサイドテーブル2点を購入した場合はどちらの商品にも割引が適用されず、意図した通りの結果になります。
あるスイムウェアブランドは、40商品のコレクションから合計6点以上購入すると10%オフになる、商品をまたいで数量を混在できるストア全体のセールを実施したいと考えています。
カウント方法 = per_group。コレクション全体を1つのグループとして設定。単一階層: 6以上 = 10%。
6種類の異なる水着が入ったカートは1つの合算階層として条件を満たし、通常のストア全体のプロモーションと同様に機能します。
ある文房具ブランドは、同じノート12冊未満では割引を適用せず、それ以上の購入では一律の卸売単価を適用したいと考えています。
カウント方法 = per_variant。単一階層: 12以上 = 固定単価での上書き。
12冊未満の購入者は通常価格を支払い、まとめ買いする購入者には別途価格表を管理することなく自動的に卸売単価が適用されます。
よくある質問
per-productとper-variantのカウント方法の違いは何ですか?
per_productは1つの商品ページ内のすべてのバリエーションをまとめてカウントします(すべてのサイズやカラーが同じ階層に加算されます)。per_variantは購入された正確なSKUのみをカウントします。バリエーション同士を互いに加算させたくない場合はper_variantを使用してください。
階層をコレクション全体に適用することはできますか?
はい、コレクションを対象範囲としたper_groupカウントを使用すれば可能です。これはShopify標準のコレクション割引に最も近い設定です。特定の1商品をより多く購入することに報酬を与えたい場合は、代わりにper_productまたはper_variantを使用してください。
顧客が数量を変更すると、階層は即座に更新されますか?
はい。ストアフロントの階層価格表は数量が変わるたびにページの再読み込みなしで再計算され、表示される価格は常にチェックアウトでの請求額と一致します。
追加できる階層の数に上限はありますか?
明確な上限はありません。多くのストアオーナーは3〜5階層を使用していますが、価格戦略に必要な数だけ数量のしきい値を追加できます。
出典
- Functions run on Shopify’s servers, so cart and checkout price from one rule - Function APIs
- Discounts combine by class, and only when each one opts in - DiscountCombinesWith - GraphQL Admin API
関連機能
Discount Stacking
How to stack discounts in Shopify comes down to settings the platform hides by default: every discount belongs to a class (product, order, or shipping), and whether two discounts combine is decided per offer, per class. Stackable puts those combine switches on every offer, so a volume tier, a spend goal, and free shipping add up exactly the way you configured them, every time.
Quantity Breaks
Per-product counting is the first question every quantity-based discount has to answer: what counts as "the same product"? Stackable gives you three explicit counting modes, per_variant, per_product, and per_group, so tiers, BOGO, and quantity breaks always count what you actually meant.
Free Shipping
Free shipping over $75, free shipping over $100, whatever threshold fits your margins: Stackable pairs a shipping-class discount with a live cart progress bar, computed by the same server-side engine, so the number on the bar and the shipping cost at checkout can never drift apart.
この機能を使った実例
この機能をもとにしたそのまま使える設定例です。正確な設定値と動画つきで紹介します。
Tiered volume discount
Bigger percentage as unit count rises, with control over how mixed variants are counted.
Flat discount on specific products
A fixed amount off, or a flat sale price, on a chosen collection.
B2B pricing by company
Wholesale pricing scoped to specific B2B companies rather than to individual customers.
Stackableをインストールしてボリューム割引を始める
すべてのオファーは同じサーバーサイドエンジンで動作するため、どのように組み合わせてもチェックアウトの計算が正確に保たれます。
無料プランあり。クレジットカード登録不要。