Setup
Settings
Overview
Custom discounts allow you to create advanced discount rules that go beyond standard Shopify discounting. With this feature, you can return multiple product discount proposals and control exactly how they get applied to cart lines in an order. A discount proposal consists of several key components:- Cart groups - Define which products to include in your rules
- Conditions - Specify when your discount should apply
- Targets - Select which products receive the discount
- Qualifiers - Create “Buy X, Get Y” style offers with repeating patterns
- Bundle pricing - Offer fixed prices for sets of items (e.g., “3 for $25”)
- Consume - Prevent discounted items from being used by subsequent rules
- Value - Determine how much discount to apply
Selection Strategy
Once you’ve created multiple discount proposals, you can choose a selection strategy to determine which ones get applied:- First matching discount - Applies the first valid discount that matches all conditions
- Maximum discount - Applies the discount that offers the largest total savings
- All discounts - Applies all valid discounts simultaneously
Cart Groups
A Cart group is a powerful way to define which products you want to include in your discount rules. Think of it as creating a “bucket” of products that match specific criteria you set. What is a cart group?
A Cart group lets you define a specific set of products based on various filters. Once created, you can use these groups in your discount conditions, prerequisites, or targets. How cart groups work
When you create a Cart group, you can apply multiple filters to narrow down exactly which products should be included. A product must match all selected filters to be included in the group. Available filters- Products: Select specific products/variants to include
- Collections: Include products from specific collections
- Line quantity: Match products with at least a certain quantity in the cart
- Line price: Match products with at least a certain price
- Line attribute: Filter by custom attributes assigned to products
- Metafield value: Filter products by their metafield values
- Purchase type: Include one-time purchases, subscriptions, or both
- Compare-at price: Include products that have a compare-at price
When to use cart groups
Cart groups are useful when:- You want to create discounts that apply only to specific product combinations
- You need to set up prerequisites that require customers to buy certain items first
- You want to exclude certain products from discount eligibility
Conditions
What are Discount Conditions?
Conditions are rules that determine when your discount should be applied. They act as “true or false” statements that evaluate a customer’s cart and eligibility criteria.How Conditions Work
When creating a discount rule, you can add multiple conditions. All conditions must be true for the discount to apply. This means conditions are combined with an “AND” relationship - if any single condition fails, the entire discount will not be applied. Conditions are organized into two categories:- Cart conditions - Evaluate the contents of the customer’s cart
- Eligibility conditions - Evaluate customer and context criteria
Cart Condition Types
Cart conditions refer to a Cart Group and can check:| Condition | Description |
|---|---|
| Quantity | Number of items from the group in the cart |
| Total | Total purchase amount from items in the group |
| Unique Products | Number of different products from the group |
| Unique Variants | Number of different variants from the group |
Eligibility Condition Types
Eligibility conditions allow you to control who can receive each discount proposal:| Condition | Description | Operators |
|---|---|---|
| Market | Target specific Shopify markets | ”is any”, “is none” |
| Customer Tags | Target customers with specific tags | ”is any”, “is none”, “is all”, “is logged in customer” |
| Location | Target specific retail/POS locations | ”is any”, “is none” |
Eligibility conditions set on a discount proposal work alongside the discount-level settings in Common Settings. Both must be satisfied for the discount to apply.
Per-Proposal Eligibility
A key feature of Custom discounts is the ability to set different eligibility conditions on each discount proposal. This allows you to:- Create a single Custom discount with proposals targeting different markets
- Offer different deals to customers based on their tags within the same discount
- Configure location-specific offers for retail POS scenarios
- Proposal 1: 20% off for customers in the US market
- Proposal 2: 15% off for customers in the EU market
- Proposal 3: 25% off for VIP-tagged customers in any market
When to Use Conditions
Use cart conditions when you want to create discounts that only apply in specific situations, such as:- When a customer has at least 3 items from a specific collection
- When a customer spends at least $100 on qualifying products
- When a customer has selected at least 2 different products from your new arrivals
- Offer different discount values to different markets
- Target specific customer segments with unique offers
- Create location-specific promotions for retail stores
Targets
What are discount targets?
Targets determine which products receive the discount. These are the cart lines that will have their prices reduced when the discount conditions are met.How targets work
Each target refers to a Cart Group. You can add multiple targets to a discount rule, and you can control whether: All targets must be present - Every target group must have matching products in the cart. For each target, you can also specify a quantity. This determines how many items from that group should receive the discount. Targets give you precise control over which products receive discounts.Qualifiers (Buy X, Get Y)
What are qualifiers?
Qualifiers define what customers must purchase before receiving a discount. They create the “Buy” part of “Buy X, Get Y” promotions.How qualifiers work
When you add qualifiers to a discount rule, it becomes a repeating discount. The discount is applied once for each set of qualifying items in the cart. For example, if your qualifier is “Buy 2 shirts” and a customer has 6 shirts in their cart, the discount can be applied up to 3 times. Qualifiers always refer to a Cart Group. You can add multiple qualifiers that reference different groups to create more complex promotions, such as “Buy 1 shirt AND 1 pair of pants, get 20% off accessories”.Controlling maximum repeats
You can limit how many times the discount repeats by setting a maximum repeats value. If left blank, the discount repeats as many times as the cart allows.Example: Buy 2, Get 1 Free
- Create a Cart Group called “Shirts” that includes your shirt collection
- Add a qualifier: “Shirts”, quantity 2
- Add a target: “Shirts”, quantity 1
- Set the value to 100% off
Bundle Pricing
What is bundle pricing?
Bundle pricing lets you offer a fixed price for a set of items — for example, “3 for $25”. Unlike Buy X Get Y promotions, bundle pricing does not require separate qualifying items. Instead, the target items themselves form the bundle.How bundle pricing works
To create a bundle price:- Add one or more targets with a quantity
- Enable Repeat on the discount rule
- Set the value to a fixed price
Example: 3 for $25
- Create a Cart Group called “T-Shirts” with your t-shirt collection
- Add a target: “T-Shirts”, quantity 3
- Enable Repeat
- Set the value to fixed price $25
Maximum repeats
You can limit how many bundles a customer can receive by setting a maximum repeats value. If left blank, the discount creates as many bundles as the cart allows.Consume
What is consume mode?
Consume mode prevents discounted items from being targeted by subsequent discount rules within the same Custom discount. When enabled, items that receive a discount from one rule are “consumed” and removed from the pool of available items for later rules. Only the discounted items (targets) are consumed — qualifying items remain available.How consume mode works
Without consume mode, all discount rules evaluate against the full cart independently. This means the same item could be targeted by multiple rules. With consume mode enabled, rules are evaluated in order. Once an item is discounted by a rule, it is removed from the pool. Later rules can only target the remaining items. Qualifying items (the “Buy X” part of a Buy X Get Y rule) are not consumed and remain available for subsequent rules.Example
Consider a Custom discount with two rules and consume mode enabled:- Rule 1: “Buy 2 Get 1 Free” on shirts
- Rule 2: “10% off” all shirts
- Rule 1 applies 3 times (2 qualifying + 1 free per bundle) — 3 shirts are free and consumed
- Rule 2 applies 10% off to the remaining 6 shirts (the qualifying shirts from Rule 1)
When to use consume mode
Use consume mode when:- You have multiple rules that target overlapping products and want to prevent double-discounting
- You want to prioritize one offer over another (earlier rules get priority)
- You’re combining “Buy X, Get Y” with a fallback discount for remaining items
Consume mode only works with the All discounts selection strategy. When using First matching or Maximum discount strategies, consume mode is automatically disabled since Shopify selects winners after the function returns.
Values
The custom discount allows you to specify discount values in a few different ways:- Percentage off - Reduce the price by a percentage (e.g., 20% off)
- Amount off - Reduce the price by a fixed amount (e.g., $10 off)
- Fixed price - Set a specific price for the item (e.g., $5 each)
Amount off
Allows you to specify a monetary amount to be spread across all qualifying items, or optionally applied to each qualifying item. Fixed price
Sets a specific price regardless of the original item price. It is only available for repeating discount rulesApply to compare at price
You can optionally target the compare-at price of targets when applying discounts. Here, discount values are dynamically calculated based off the compare-at price, rather than the actual price of the product. Note, only the ‘difference’ between the desired discount, and the already discounted value will be applied.Metafield Configuration
Discount Kit’s product and variant metafield ‘Metafield Discount’ configuration allows you to specify information that can be used inside the Custom Discount. The configuration must be structured as an array: Only one of
discount_percentage, discount_value, or discount_fixed_price should be set per entry. If multiple are provided, discount_fixed_price takes priority, followed by discount_value, then discount_percentage.discount_fixed_price field sets the item to a specific price by discounting the difference between the current price and the target price. For example, if a product costs 25.00), a $15 discount will be applied. If the current price is already at or below the fixed price, no discount is applied.
The schema also allows additional custom properties (e.g. discount_badge) which are not used by the discount function but can be read by theme code or other integrations.
This configuration is wrapped by a discount. This means you get all of the other benefits of a Discount Kit discount (manual or automatic codes, scheduling, targeting specific customers, targeting specific markets), but can change the discounted variants, their values and their messaging at any time!
You must provide an array of configurations, with each configuration specifying a matching discount_title. This allows you to define different discount behaviors for different Custom discounts. If you specify multiple configurations for the same discount, only the first matching configuration will be used.



