Everything an offer can be configured with, on the Offers tab of the bundle editor. An offer is one row a customer can choose, such as "Buy 2, save 10%". A bundle needs at least one offer and can have several.
In this article:
The seven pricing types
Pricing type | What it does | Fields it needs |
| No discount. Used for the baseline offer. | Quantity |
| A percentage off |
|
| A set amount off |
|
| Free units when buying a quantity |
|
| Discounted extra units |
|
| A flat price for the offer |
|
| Several different products sold together | Product picker, |
💡 Include one Regular Price (no discount) offer as your first row. Customers judge a discount against something, and a visible single-unit price makes the saving on the tiers below it obvious.
Core offer fields
Field | What it is |
| The main line, such as |
| The supporting line, such as |
| An additional label on the offer |
| How many units this offer covers. Must be a number above zero. |
| For buy X get Y offers, how many are free or discounted |
| For specific-price offers |
| The discount value, as a percentage or amount depending on type |
Badges
Badge Type draws attention to one offer. Four options: None, Most Popular, Best Choice and Recommended.
Custom lets you write your own Badge Text.
Badge styling: Font size (px) and Font weight, both showing Leave empty to use default.
ℹ️ Badge one offer, not several. A badge on every row tells customers nothing and removes the signal you were trying to send.
Layout and images
Setting | Options |
|
|
| Size of the offer image |
| Corner rounding |
| Where the image sits when the offer is chosen |
Add a picture with Add a custom image, then Replace image, Remove image or Image preview. Images must be under 5 MB, or you will see Image must be smaller than 5MB.
Default selection
Make this the default selected offer decides which offer is preselected when the page loads. Exactly one offer should have it.
This setting matters more than most. A large share of customers take whatever is already selected, so the default should be the offer you most want them to choose, which is usually a middle tier rather than the cheapest.
Products and variants
For Bundle Products offers, add items with + Add product and Select a product to add to your bundle. Each item shows as Product {index}, with Change product to swap it.
Variant handling per product:
All variants, the defaultA specific selection, shown as
{count} of {total} variants selected
An offer missing its product shows Product Required and will not save.
Limits Atlas enforces
Server-side validation rejects these when you save.
Font sizes, which must be within range or you get {Label} must be between {min} and {max}:
Field | Minimum | Maximum |
Title Font Size | 10 | 30 |
Subtitle Font Size | 10 | 20 |
Badge Font Size | 8 | 16 |
Price Font Size | 12 | 24 |
Compare Price Font Size | 12 | 20 |
Offer validation:
Message | Cause |
| The name is empty or not text |
| The title is empty |
| Quantity is not a number, or is zero or below |
| At least one offer is required |
| A text field is too long |
⚠️ Every active offer consumes one of Shopify's 25 automatic discounts per store. A bundle with five offers uses five. Publishing beyond the limit is refused with You have reached the maximum number of automatic discounts.
One thing that changes when you save
Saving a bundle rebuilds its offers rather than editing them in place. The practical consequence: per-offer analytics history may not carry across an edit. If you are tracking one offer's performance closely, note its numbers before making changes.


