Skip to content

Multi-offer

A multi-offer discount holds several offers in one discount: product offers, order offers and shipping offers together, each with its own value, its own items, its own requirements and its own markets — plus one rule for what happens when two of them land on the same item.

  1. Open Discounts, click Create discount, and choose Multi-offer Discount.

    It sits in the Advanced section of the create menu, badged New, with the example “Multiple offers and conditions in a single discount”.

  2. Choose the discount method and name the discount.

    Pick Automatic or Discount Code, then fill in Title (automatic) or Discount Code (code).

  3. Set where the whole discount applies.

    Where does this discount apply? is the outer boundary: Apply to all markets, or Apply to specific markets and pick up to 20. Every offer below stays inside this selection.

    The Create Multi-offer discount page with the Discount method card set to Automatic, the Title field reading Weekend sale, the Where does this discount apply? markets card, the What does this discount give? card listing Product discount, Order discount and Shipping discount rows with switches, and on the right the Summary card with the Convert to customer's currency card switched on
  4. Turn on the kinds of discount it gives.

    In What does this discount give?, switch on Product discount, Order discount, Shipping discount, or any combination. Each one you turn on opens its own section with a first card ready to fill in, and you can add more with Add another product discount (and the equivalents).

  5. Fill in each discount card.

    A card carries Discount (type and value), Qualifying items, Requirements, Applies to and Available in. Order cards also carry Minimum after product discounts and Item exclusions. Click the card header to collapse it once it is done.

    An expanded Product discount 1 card: Discount type Percentage off with Percentage 20, one item group named Weekend picks holding a Specific collections is one of condition with the collection Cleansers selected, an empty Requirements section reading None yet, and Applies to with Discount these items set to Weekend picks
  6. Set who can use it, what happens when discounts overlap, and the dates, then save.

    Who can use this discount limits it to certain customers. Discount rules & limits picks the overlap rule and an optional overall item limit. Then set combinations, purchase type and dates, and save from the bar at the top of the page.

Automatic needs no code — Shopify applies the discount as soon as a cart matches. Discount Code means the shopper has to enter the code you set. Choose the method when you create the discount: the chooser is disabled once the discount exists.

On an automatic discount, Title is the name shoppers see when the discount is applied. On a code discount the field becomes Discount Code.

Adds a second name only you see, to tell similar discounts apart.

The markets the whole discount runs in — Apply to all markets, or Apply to specific markets with up to 20 picked. It is the boundary for every offer below: an offer can narrow it, never widen it. Removing a market here also removes it from the offers that used it.

Three switches — Product discount (money off specific products), Order discount (money off the order total) and Shipping discount (money off delivery rates). Turn on as many as you need; at least one offer is required to save. Turning a switch off hides that section and keeps what you had, so switching it back on restores it.

Each card starts with its own Discount type and value:

  • Product discountPercentage off, Fixed amount off, Fixed amount off per item, or Percentage off compare-at price.
  • Order discountPercentage off or Fixed amount off.
  • Shipping discountPercentage off, Fixed amount off, Free shipping or Flat rate.

A percentage must be greater than 0 and no more than 100. Percentage types on product and order offers can also tick Set maximum discount amount and Set cart value limit for discount calculation.

Percentage off compare-at price charges the Compare-at price minus your percentage. Items with no Compare-at price, or with one lower than the current price, are skipped, and an item whose current price is already lower keeps it. It takes no cap and no cart value limit.

Order cards only. Require a minimum order amount after product discounts asks for a floor Shopify measures on the total that remains once product discounts are deducted — different from a Subtotal requirement, which looks at the amount before discounts. It cannot be combined with Set maximum discount amount or Set cart value limit for discount calculation, and it is unavailable while When discounts overlap is set to Apply all matching discounts.

Order cards only. Don’t apply this discount to specific items keeps chosen products and collections out of the calculation — they stay in the cart at full price. Up to 20 products and 10 collections. The choice below it decides whether those items still count toward your requirements: Count excluded items toward requirements or Ignore excluded items everywhere.

Named groups of cart items, each a list of conditions with its own Match all / any of these conditions. Groups are independent — they do not combine with each other; they are the selections the rest of the card refers to by name. With no groups at all, every item qualifies.

Product and order cards offer the item, cart and customer conditions, plus Compare-at price. Shipping cards offer cart and customer conditions, Specific collections, Line quantity, Line subtotal, and the destination and method conditions (Country code, Province / State code, Shipping city, Postal code, Shipping type, Shipping method).

Gates on the cart that must be true before this offer applies. Each requirement measures one group — All items or one of your named groups — with Subtotal, Quantity (sum), Number of line items, Unique products, Unique variants or Compare-at subtotal, then an operator and a value. With several requirements you get a Match all / any of these requirements choice. With none, the offer always applies.

Compare-at subtotal adds up Compare-at price × quantity, counting items without a Compare-at price at their current price. It is not offered on shipping cards.

Which items actually receive this offer. An order offer applies to the whole order. A product offer picks a group in Discount these items. A shipping offer picks Rate to discountAll shipping rates, Rate by name, Rate by price or No rate (disable), with a match operator and value for the middle two.

Product offers also get:

  • Count condition quantitiesAcross matched items (the default), Per product or Per variant. The last two need a percentage discount with no cap, and cannot be used with Unique products or Unique variants requirements.
  • Limit discounted itemsNo limit, Highest-value items first, Lowest-value items first or First items in cart, with a quantity of 1 or more.

The markets for this one offer, inside the discount’s own selection: All markets (or All selected markets), or a narrower list of up to 20. If a market this offer relies on is removed at the top of the page, the card says so, and an offer left with no usable market blocks the save.

Optional customer conditions for the whole discount — Customer tags, Customer logged in, Customer is B2B and Customer orders count, with a Match all / any of these conditions choice. Leave it empty and anyone can use the discount.

What happens when two offers land on the same item:

  • Apply the first matching discount — use the one listed first.
  • Apply the discount that saves the most — pick the larger saving on each item.
  • Apply all matching discounts — stack them. Its help text reads: “Stack matching discounts on the item. Two product discounts on the same item only combine on Shopify Plus; otherwise Shopify applies the best one.”

Caps how many items (by quantity) get discounted across the whole cart, and overrides the per-offer limits. No overall limit, or Highest-value items first, Lowest-value items first or First items in cart with a quantity of 1 or more.

Ticks for Product discounts, Order discounts and Shipping discounts — that is, other discounts outside this one. Leave them off and this discount runs alone.

Only shown for a discount code. Limit number of times this discount can be used in total adds a Maximum discount uses field (a whole number greater than 0), and Limit to one use per customer caps it per shopper.

Only shown for a discount code. Restrict this discount to specific delivery methods lets you keep the code for Pickup, Shipping, Local delivery or Pickup point only. If the customer picks a delivery method the code does not allow, Shopify blocks it and shows the text you put in Message when checkout is blocked (up to 140 characters). The app’s own checkout validation function enforces this, not the discount itself. The card previews that message as the customer will see it.

One-time purchases, Subscription products, or both — at least one is required. Ticking subscriptions adds a choice of First payment only, Limited number of payments (up to 100) or All recurring payments.

Start Date and Start Time say when the discount begins, and Set End Date adds an end. All times are in your store’s timezone, which the card names on screen.

Sits under the Summary, and is on by default on a multi-offer discount. On, every fixed amount, cap and money condition on every offer is changed into the currency the customer pays in, so “10 off” is worth 10 to them. Off, your numbers are used as typed in every currency. Percentages and item counts never change either way, and on a single-currency store the setting makes no difference. You can change it later, and the card explains what changes before the flip takes effect.

20% off a collection and free shipping, in one automatic discount

Discount method: Automatic
Title: Weekend sale
Where does this discount apply?: Apply to all markets
What does this discount give?: Product discount + Shipping discount
Product discount 1 → Discount type: Percentage off · Percentage: 20
Product discount 1 → Qualifying items → Group 1: Specific collections · is one of · Weekend picks
Product discount 1 → Applies to → Discount these items: Group 1
Shipping discount 1 → Discount type: Free shipping
Shipping discount 1 → Applies to → Rate to discount: All shipping rates
When discounts overlap: Apply the discount that saves the most

A code that gives 10% off the order and a flat delivery rate over a spend

Discount method: Discount Code
Discount Code: WEEKEND10
What does this discount give?: Order discount + Shipping discount
Order discount 1 → Discount type: Percentage off · Percentage: 10
Order discount 1 → Set maximum discount amount: ticked · Maximum Discount Amount: 40
Shipping discount 1 → Discount type: Flat rate · Flat Rate Amount: 5
Shipping discount 1 → Requirements → All items · Subtotal · is greater than or equal to · 75
Limit to one use per customer: ticked

Compare-at pricing on one collection, capped at 3 items

Discount method: Automatic
Title: Compare-at pricing · Outlet
What does this discount give?: Product discount
Product discount 1 → Discount type: Percentage off compare-at price · Percentage: 30
Product discount 1 → Qualifying items → Group 1: Specific collections · is one of · Outlet
Product discount 1 → Applies to → Discount these items: Group 1
Overall item limit: Highest-value items first · Quantity: 3

Two product offers, best one wins

Discount method: Automatic
Title: Mix and match
What does this discount give?: Product discount
Product discount 1 → Discount type: Percentage off · Percentage: 15
Product discount 1 → Qualifying items → Group 1: Product tags · is one of · summer
Product discount 2 → Discount type: Fixed amount off per item · Amount: 10
Product discount 2 → Qualifying items → Group 1: Specific collections · is one of · Dresses
When discounts overlap: Apply the discount that saves the most

An automatic multi-offer discount needs nothing from the shopper: Shopify applies the matching offers in the cart and shows the Title you typed next to the saving. A code discount applies once the shopper enters the code you set.

Every offer inside the discount runs under that one name, so a title that describes the promotion (“Weekend sale”) reads better than one that describes a single number.

  • At least one offer. A multi-offer discount cannot be saved with every switch off.
  • Percentages: greater than 0, at most 100, on every offer.
  • Markets: up to 20 for the whole discount, and up to 20 for any one offer.
  • Excluded items on an order offer: up to 20 products and up to 10 collections.
  • Item limits: a quantity of 1 or more, per offer and for the overall limit.
  • Delivery message: up to 140 characters.
  • Subscriptions: up to 100 recurring payments when you choose a limited number.
  • Blocked pairs. A minimum after product discounts cannot be combined with a maximum discount cap or a cart value limit; a compare-at percentage takes neither; per-product or per-variant counting needs an uncapped percentage and rules out unique-product and unique-variant requirements. Each is refused inline and again on the server.
  • Offers stay inside the discount’s markets. An offer can narrow the market selection, never widen it.
  • Combinations are Shopify’s call. Discount can be combined with is about other discounts outside this one; Shopify decides what actually applies to a cart.
  • The method is fixed after creation. Automatic and Discount Code cannot be swapped on an existing discount; duplicate it instead.

What is the difference between Qualifying items and Applies to? Qualifying items are the named groups of cart items the offer knows about. Applies to says which group actually receives the discount — so you can require one group and discount another.

When do I use “Apply all matching discounts”? When two offers should stack on the same item. Its help text reads “Stack matching discounts on the item. Two product discounts on the same item only combine on Shopify Plus; otherwise Shopify applies the best one.” Use Apply the discount that saves the most for a predictable single winner.

Why can’t I add a maximum discount cap to a compare-at percentage? That type is worked out per line from the item’s own Compare-at price, so a cap or a cart value limit would never be honoured. The app refuses the pair rather than store a promise the discount cannot keep.

My offer says its markets were removed at the top of the page. What happened? An offer only runs inside the markets the whole discount runs in. Removing a market at the top removes it from the offers that used it, and an offer left with no usable market is flagged and blocks the save until you pick different markets or add the market back.