Introduction & Overview
Volume Discount is a powerful discount type that rewards customers with tiered discounts based on the quantity
they purchase or the amount they spend. It automatically applies better discounts as customers add more items
to their cart, encouraging larger purchases.
Key Features
-
Tiered Discount System - Set multiple discount levels (e.g., buy 3 get 10% off, buy 5 get 20% off)
-
Flexible Conditions - Use quantity or subtotal requirements
-
Product Targeting - Apply to all products, specific products, or collections
-
Discount Types - Percentage off or fixed amount off
-
Grouping Options - Group by product, variant, or mix and match
-
Advanced Eligibility - Target specific customers, segments, or use tags
When to Use Volume Discount
Use Volume Discount when you need to:
- Encourage bulk purchases (e.g., "Buy more, save more")
- Clear inventory with quantity-based promotions
- Reward customers for larger orders
- Create tiered pricing structures (e.g., wholesale pricing)
- Drive higher average order values
How it works
[Set Condition Type] → [Set Value Type] → [Choose Products] → [Configure Tiers] → [Set Eligibility]
Product Eligibility
What is Product Eligibility?
Product Eligibility determines which products in the customer's cart qualify for the volume discount.
You can apply discounts to all products, specific products, or entire collections.
Product Eligibility Settings
Condition Type
Minimum Quantity:
-
What it is: Counts individual items in the cart
-
Example: "Buy 5 items"
-
Best for: Quantity-based promotions
Minimum Subtotal:
-
What it is: Calculates total dollar amount in the cart
-
Example: "Spend $100"
-
Best for: Value-based promotions
Group By
Each Product:
-
What it does: Calculate discounts per product separately
-
Example: 3 of Product A + 2 of Product B = Each product qualifies separately
-
Best for: Product-specific tier requirements
Each Variant:
-
What it does: Calculate discounts per variant separately
-
Example: Size S, M, L are treated as separate groups
-
Best for: Variant-specific tier requirements
Mix and Match:
-
What it does: Combine different products/variants together
-
Example: 3 of Product A + 2 of Product B = 5 total items for tier calculation
-
Best for: Store-wide quantity promotions
Tier Configuration
What are Tiers?
Tiers are discount levels that apply when customers reach specific quantity or spending thresholds.
Each tier specifies the minimum requirement (quantity or amount) and the discount value (percentage or fixed amount).
How Tiers Work
- Customer adds items to cart
- System calculates total quantity or subtotal
- Finds the highest tier the customer qualifies for
- Applies that tier's discount to eligible items
- Only ONE tier applies per transaction (the highest one)
Tier Examples
Example 1: Quantity-Based Percentage Discount
-
Tier 1: Buy 3+ items → 10% off
-
Tier 2: Buy 5+ items → 15% off
-
Tier 3: Buy 10+ items → 25% off
Example 2: Subtotal-Based Fixed Amount Discount
-
Tier 1: Spend $50+ → $5 off each item
-
Tier 2: Spend $100+ → $10 off each item
-
Tier 3: Spend $200+ → $15 off each item
Best Practices for Tiers
- ✓ Clear Tier Progression - Each tier should offer a better discount
- ✓ Achievable Thresholds - Set tiers that customers can reasonably reach
- ✓ Test Tier Logic - Verify calculations work correctly
- ✓ Descriptive Titles - Use title overrides for clarity
- ✓ Start with 2-3 Tiers - Add more if needed, but don't overwhelm
Discount Value - How Much
Discount Value Types
Percentage Off:
-
What it is: % of item price
-
Example: 10%, 15%, 25%
-
Best for: Flexible, scalable discounts
-
Calculation: Item price × percentage = discount
Fixed Amount Off:
-
What it is: Dollar amount per item
-
Example: $5, $10, $20
-
Best for: Specific dollar discounts
-
Calculation: Applied to each qualifying item
Best Practices
- ✓ Use Collections for efficiency
- ✓ Match Condition Type to your goal (quantity vs. amount)
- ✓ Clear tier progression (increasing discounts)
- ✓ Achievable thresholds
- ✓ Test tier calculations
- ✓ Use Percentage for flexibility
Troubleshooting
Discount Not Applying
Check:
- Tier thresholds are met
- Product eligibility matches cart contents
- Customer is eligible
- Discount is active (date range)
- Usage limit not reached
- Group By setting is correct
Tiers Not Working
Check:
- Tier thresholds are in ascending order
- Condition Type matches tier settings
- Value Type matches tier settings
- Group By setting is appropriate
- Products qualify for discount
Introduction & Overview
Amount Off Discount is a straightforward discount type that provides a fixed percentage or dollar amount off products when customers meet a single purchase requirement. It's simpler than Volume Discount (which uses tiers) but more flexible than basic discounts, making it perfect for single-threshold promotions.
Key Features
-
Single Purchase Requirement - Set one condition and discount value
-
Flexible Discount Types - Percentage off or fixed amount off
-
Product Targeting - Apply to all products, specific products, or collections
-
Condition Options - Use quantity or subtotal requirements
-
Grouping Options - Group by product, variant, or mix and match
-
Advanced Eligibility - Target specific customers, segments, or use tags
When to Use Amount Off Discount
Use Amount Off Discount when you need to:
- Create simple "Buy X Get Y% Off" promotions
- Offer fixed dollar discounts (e.g., "$10 off when you buy 3")
- Set single-threshold promotions (unlike Volume Discount's tiers)
- Apply discounts to specific product categories
- Create straightforward promotional campaigns
How it works
[Set Condition Type] → [Set Value Type] → [Choose Products] → [Set Purchase Requirement] → [Set Eligibility]
Product Eligibility
What is Product Eligibility?
Product Eligibility determines which products in the customer's cart qualify for the amount off discount. You can apply discounts to all products, specific products, or entire collections.
Product Eligibility Settings
Condition Type
Minimum Quantity:
-
What it is: Counts individual items in the cart
-
Example: "Buy 3 items"
-
Best for: Quantity-based promotions
Minimum Subtotal:
-
What it is: Calculates total dollar amount in the cart
-
Example: "Spend $50"
-
Best for: Value-based promotions
Value Type
Percentage Off:
-
What it is: Discount percentage applied to each item
-
Example: "10% off each item"
-
Best for: Flexible, scalable discounts
Fixed Amount Off:
-
What it is: Fixed dollar amount off each item
-
Example: "$5 off each item"
-
Best for: Specific dollar discounts
Applies To
All Products:
-
What it is: Apply discount to everything in your store
-
Best for: Store-wide promotions
Specific Products:
-
What it is: Select individual products
-
Best for: Targeted product promotions
-
Note: Can select specific variants per product
Specific Collections:
-
What it is: Apply to all products in selected collections
-
Best for: Category-based promotions
-
Example: "New Arrivals" collection
Purchase Requirement
What is Purchase Requirement?
Purchase Requirement is the single condition customers must meet to qualify for the discount. Unlike Volume Discount (which has multiple tiers), Amount Off has one requirement and one discount value.
Purchase Requirement Examples
Example 1: Buy 3 Get 15% Off
-
Condition Type: Minimum Quantity
-
Minimum Quantity: 3
-
Value Type: Percentage
-
Percentage Off: 15%
-
Result: Buy 3+ items, get 15% off each item
Example 2: Spend $50 Get $10 Off
-
Condition Type: Minimum Subtotal
-
Minimum Subtotal: $50
-
Value Type: Fixed Amount
-
Fixed Amount Off: $10
-
Result: Spend $50+, get $10 off each item
Discount Value - How Much
Discount Value Types
Percentage Off:
-
What it is: % of item price
-
Example: 10%, 15%, 25%
-
Best for: Flexible, scalable discounts
-
Calculation: Item price × percentage = discount
-
Applied to: Each qualifying item
Fixed Amount Off:
-
What it is: Dollar amount per item
-
Example: $5, $10, $20
-
Best for: Specific dollar discounts
-
Calculation: Applied to each qualifying item
-
Note: If "Applies to Each" is enabled, multiplies by quantity
Eligibility & Settings
Amount Off Discounts support the same eligibility and settings as other discount types, including:
- Code Discount or Automatic Discount
- Customer Eligibility (All Customers, Specific Customers, Segments, Groups)
- Usage Limits (Total Usage, Once Per Customer, Recurring Cycle Limit)
- Combination Settings (combines with Order, Product, and Shipping discounts)
Best Practices
- ✓ Use Collections for efficiency
- ✓ Match Condition Type to your goal (quantity vs. amount)
- ✓ Choose appropriate Group By setting
- ✓ Set achievable requirements (not too high)
- ✓ Use Percentage for flexibility
- ✓ Test with real cart scenarios
Troubleshooting
Discount Not Applying
Check:
- Purchase requirement is met (quantity or amount)
- Product eligibility matches cart contents
- Customer is eligible
- Discount is active (date range)
- Usage limit not reached
- Group By setting is correct
Introduction & Overview
Buy X Get Y (BXGY) is a classic promotional discount type that rewards customers with free or discounted items when they purchase a specific quantity or amount. It's perfect for "Buy 2 Get 1 Free" style promotions and encourages customers to add more items to their cart.
Key Features
-
Classic BXGY Promotions - Set up "Buy X, Get Y" deals easily
-
Flexible Conditions - Use quantity or amount requirements for "Buy" portion
-
Product Targeting - Select which products customers buy and which they get
-
Discount Value Options - Percentage off, fixed amount off, or completely free
-
Purchase Type Control - Apply to one-time purchases, subscriptions, or both
-
Advanced Eligibility - Target specific customers, segments, or use tags
When to Use Buy X Get Y Discount
Use Buy X Get Y Discount when you need to:
- Create "Buy 2 Get 1 Free" promotions
- Encourage customers to purchase specific product combinations
- Clear inventory with bundle deals
- Drive sales of complementary products
- Reward bulk purchases with free items
How it works
[Set Customer Buys] → [Set Customer Gets] → [Set Discount Value] → [Set Eligibility]
Customer Buys Section
What is Customer Buys?
Customer Buys defines what customers must purchase to qualify for the discount. This is the requirement portion of "Buy X, Get Y".
Customer Buys Settings
Condition Type
Quantity:
-
What it is: Customer must buy a specific number of items
-
Example: "Buy 2 items"
-
Best for: Quantity-based promotions
Amount:
-
What it is: Customer must spend a specific dollar amount
-
Example: "Spend $50"
-
Best for: Value-based promotions
Item Scope
Products:
-
What it is: Select specific products customers must buy
-
Best for: Targeting exact products
-
Note: Can select specific variants per product
Collections:
-
What it is: Select collections customers must buy from
-
Best for: Category-based promotions
-
Example: "New Arrivals" collection
Customer Gets Section
What is Customer Gets?
Customer Gets defines what customers receive as the reward. This is the "Y" portion of "Buy X, Get Y".
Customer Gets Settings
Quantity
-
What it is: Number of items customer gets (free or discounted)
-
Example: 1, 2, 3
-
Best for: "Buy 2 Get 1 Free" = Quantity: 1
Note: This is how many items they receive, not a requirement
Item Scope
Products:
-
What it is: Select specific products customer gets
-
Best for: Targeting exact products
-
Note: Can be same or different from "Buy" products
Collections:
-
What it is: Select collections customer gets from
-
Best for: Category-based promotions
-
Example: Same collection as "Buy" or different
Discount Value - How Much
Discount Value Types
Percentage:
-
What it is: % off the items customer gets
-
Example: 50% off, 75% off
-
Best for: Partial discounts
Fixed Amount:
-
What it is: Fixed dollar amount off items customer gets
-
Example: $10 off, $20 off
-
Best for: Specific dollar discounts
Free:
-
What it is: 100% off (completely free)
-
Example: "Get 1 Free"
-
Best for: Classic "Buy X Get Y Free" promotions
Discount Value Examples
Example 1: Buy 2 Get 1 Free
-
Customer Buys: 2 items from New Arrivals
-
Customer Gets: 1 item from New Arrivals
-
Discount Value: Free (100% off)
-
Result: Third item is free
Example 2: Buy 3 Get 1 at 50% Off
-
Customer Buys: 3 items from Black Series
-
Customer Gets: 1 item from Black Series
-
Discount Value: 50% off
-
Result: Fourth item is 50% off
Best Practices
- ✓ Set achievable requirements (not too high)
- ✓ Select appropriate quantity (usually 1 for "Get 1 Free")
- ✓ Consider product prices (lower for free items)
- ✓ Can be same or different from "Buy" products
- ✓ Use "Free" for classic BXGY promotions
- ✓ Test with real cart scenarios
Troubleshooting
Discount Not Applying
Check:
- Customer Buys requirement is met
- Customer Gets products are in cart
- Customer is eligible
- Discount is active (date range)
- Usage limit not reached
- Purchase type matches (one-time vs. subscription)
Introduction & Overview
Custom Discount is the most powerful and flexible discount type in Discount Composer. It allows you to create complex, rule-based discounts that can apply to products, orders, and shipping simultaneously.
Key Features
-
Multi-Proposal System - Create multiple discount rules in one discount
-
Three Discount Types - Product, Order, and Shipping discounts
-
Shared Cart Groups - Define product groups once, use across all proposals
-
Flexible Conditions - Set when discounts apply
-
Repeatable Discounts - Apply discounts multiple times
-
Smart Targeting - Choose which items get the discount
-
Multiple Strategies - Apply all, maximum, or first matching
When to Use Custom Discount
Use Custom Discount when you need to:
- Combine multiple discount types (e.g., product discount + free shipping)
- Create tiered discounts based on quantity or amount (However, we strongly suggest our "Volume discount" for this)
- Target specific products with complex rules
- Apply discounts repeatedly (e.g., "Buy 2, get 1 free" - repeats for every 2 items)
- Mix and match different product groups with different discount values
How it works
[Define CART GROUPS] → [Create PROPOSALS] → [Set CONDITIONS] → [Configure REPEATS] → [Choose TARGETS] → [Set VALUE]
Cart Groups - Shared Resource
What are Cart Groups?
Cart Groups are reusable "buckets" of products that you define once and reference across all your discount proposals. They act as filters to identify which products in the cart qualify for your discounts.
Why Shared Cart Groups?
Instead of defining product filters separately for each proposal, you create cart groups once and reuse them. This makes your discount configuration:
- ✓ Easier to manage - Update filters in one place
- ✓ More consistent - Same product groups across proposals
- ✓ Faster to configure - No repetitive setup
Cart Group Settings
Available Filters
| Filter |
Description |
Best Usage |
| Products |
Include specific individual products |
Targeting exact products for a promotion |
| Collections |
Include all products from specific collections |
Targeting entire product categories (most common) |
| Line Quantity |
Filter cart lines based on quantity |
Bulk purchase discounts |
| Product Type |
Filter by product type set in the admin |
Category-based discounts |
| Product Vendor |
Filter by product vendor/brand set in the admin |
Brand-specific promotions |
| Product Tag |
Filter by product tags |
Flexible product grouping |
Discount Proposals
What are Discount Proposals?
Discount Proposals are the individual discount rules within your Custom Discount. Each proposal has its own type, cart groups, conditions, targets, and discount value.
Three Proposal Types
| Type |
Applies to |
Has targets |
Example |
| PRODUCT |
Specific cart line items |
✓ Yes |
15% off the cheapest item |
| ORDER |
Entire order subtotal |
✗ No |
25% off your entire order |
| SHIPPING |
Delivery options |
✗ No |
10% off Express shipping |
Proposal Application Strategies
ALL (Default):
-
What it does: Apply ALL matching proposals
-
Use when: You want multiple discounts to stack
-
Example: Product discount + Order discount + Shipping discount all apply
MAXIMUM:
-
What it does: Apply ONLY the proposal with the highest discount value
-
Use when: You want to give the best deal automatically
-
Example: Compare 15% product discount vs 25% order discount → Apply 25%
FIRST MATCHING:
-
What it does: Apply ONLY the first proposal that matches (by priority)
-
Use when: You want exclusive discount tiers
-
Example: VIP customers get Proposal 1, others get Proposal 2
Conditions - When to Apply
What are Conditions?
Conditions determine WHEN a discount proposal should apply. They evaluate the cart contents and only apply the discount if ALL conditions are met.
Condition Fields
| Field |
Measures |
Use For |
| Quantity |
Total number of items |
"Buy X items" promotions |
| Total Amount |
Total price of items |
"Spend $X" promotions |
| Unique Products |
Number of different variants |
"Mix and match" promotions |
| Unique Variants |
Number of different products |
Size/color variety promotions |
Repeats - How Many Times
What are Repeats?
Repeats allow a discount to apply MULTIPLE TIMES based on cart contents. This is perfect for "Buy X, Get Y" style promotions that scale with quantity.
Repeat Calculation Formula
Repeats = Floor(Measured Value ÷ Repeat Value)
Examples:
- Quantity = 7, Repeat Value = 2 → 7 ÷ 2 = 3.5 → Floor = 3 repeats
- Amount = $150, Repeat Value = $50 → 150 ÷ 50 = 3 → 3 repeats
Example: Buy 2, Get 1 Free
-
Condition: Quantity ≥ 2 (Black Series)
-
Repeat: Every 2 items (Black Series)
-
Target: Cheapest item (Quantity: 1)
-
Discount Value: 100% OFF (Free)
How it works:
- 2 items → 1 repeat → 1 free item
- 4 items → 2 repeats → 2 free items
- 6 items → 3 repeats → 3 free items
Targets - Which Items
What are Targets?
Targets determine WHICH SPECIFIC ITEMS in the cart receive the product discount. This only applies to PRODUCT type proposals.
Target Strategies
| Strategy |
Selects |
Best For |
Example |
| Cheapest |
Lowest-priced items first |
"Get cheapest item free" |
$30, $40, $50 → Selects $30 |
| Most Expensive |
Highest-priced items first |
"Discount best item" |
$30, $40, $50 → Selects $50 |
| All |
All items in cart group |
"All items discounted" |
Selects all 5 items |
Discount Value - How Much
Discount Value Types
Percentage:
-
What it is: % of item price
-
Example: 15%, 50%, 100%
-
Best for: Flexible discounts
Fixed Amount:
-
What it is: Dollar amount
-
Example: $10, $25, $50
-
Best for: Specific discounts
Free:
-
What it is: 100% off
-
Example: FREE
-
Best for: "Get X Free" promos
Best Practices
- ✓ Use Collections for efficiency
- ✓ Descriptive names for cart groups
- ✓ Start simple (1-2 filters)
- ✓ Test filtering
- ✓ Reuse groups across proposals
- ✓ Clear tier progression
- ✓ Set max repeats when needed
- ✓ Use Cheapest strategy (most common)
Troubleshooting
Discount Not Applying
Check:
- Conditions are met
- Cart groups have matching products
- Customer is eligible
- Discount is active (date range)
- Usage limit not reached
Volume Discount SDK
The Volume Discount SDK (window.DiscountComposer) is a powerful JavaScript interface that allows theme developers to access discount data, tier information, and pricing utilities directly within the storefront. It enables you to build custom displays like "As low as" pricing, dynamic savings badges, and custom tier tables.
Key Features
-
Global Access - Access discount data from anywhere in your theme
-
Smart Caching - Efficiently loads and caches discount rules
-
Currency Aware - Automatically formats prices using Shopify's native system
-
Variant Support - Get specific discounts for individual variants
-
Helper Methods - Built-in utilities for price formatting and eligibility checks
Getting Started
To use the API, you must ensure the Volume Discount SDK block or snippet is present in your theme. This loads the necessary data and initializes the global window.DiscountComposer object.
Installation:
- Go to your Theme Editor
- Add the Volume Discount SDK block to your layout (usually in the Header or Footer)
Core API Methods
1. Get Discount Data
// Get discount for a product
const discount = window.DiscountComposer.getDiscountForProduct(productId);
2. "As Low As" Pricing
// Get formatted text (e.g., "As low as $45.00")
const text = window.DiscountComposer.getAsLowAsText(productId, basePrice);
3. Lowest Price Calculation
const lowest = window.DiscountComposer.getLowestPrice(productId, basePrice);
// Returns: { price: 4500, formatted: "$45.00", tier: {...} }
4. Price Formatting
// Returns "$12.50" using shop currency settings
const price = window.DiscountComposer.formatPrice(1250);
Real-World Example: "As Low As" Badge
Add this script to your product card to show the best price available:
<script>
document.addEventListener('DOMContentLoaded', function() {
const productId = {{ product.id }};
const basePrice = {{ product.price }};
const text = window.DiscountComposer.getAsLowAsText(productId, basePrice);
if (text) {
const priceEl = document.querySelector(`#price-${productId}`);
if (priceEl) {
priceEl.innerHTML += `<span class="tier-price">${text}</span>`;
}
}
});
</script>
Volume Pricing Table
The Volume Pricing Table block automatically displays a beautiful, ready-made table showing all available discount tiers for eligible products. It's perfect for merchants who want a quick, professional solution without any coding.
Key Features
-
Automatic Display - Shows discount tiers automatically for eligible products
-
Smart Eligibility - Only appears when discounts apply to the current product
-
Responsive Design - Works perfectly on mobile and desktop
-
Customizable Columns - Show/hide quantity, discount, price, and savings columns
-
Multi-Currency - Automatically formats prices using your theme's currency settings
Installation
- Go to Online Store > Themes > Customize
- Navigate to a Product page template
- Click Add block inside your Product Information section
- Search for "Volume pricing table" and add it
- Customize the settings and Click Save
Settings Explained
Table Columns:
-
Show quantity column: Displays the minimum quantity needed (e.g., "6+ items")
-
Show quantity as range: Shows ranges instead of "X+" (e.g., "6-11", "12-23")
-
Show discount column: Displays the discount amount (e.g., "10% OFF")
-
Show price per item column: Shows the final unit price after discount
-
Show savings column: Displays total estimated savings
Visual Customization:
-
Heading Colors: Customize background and text colors for the header row
-
Cell Colors: Customize background and text colors for table cells
-
Borders: Adjust border style (Solid, Dashed, None), width, color, and radius
-
Padding: Control the spacing inside table cells for a compact or spacious look
Troubleshooting
Table Not Appearing?
-
Check Discount Status: Ensure you have an ACTIVE volume discount created in the app.
-
Check Eligibility: Verify the product you are viewing is included in the discount ("Applies to" settings).
-
Check Market/Currency: Ensure the discount is enabled for your current market and currency.
-
Test Mode: If the discount is in test mode, ensure your customer account has the "test" tag or add
?tier_test=true to the URL.