I’m looking for help or advice from anyone who’s run into the same issue.
I want to run a "3 for 2” style discount across a large collection of products — ideally using the same logic as Shopify’s native Buy X, Get Y automatic discount — but I’ve hit the 100 product limit that Shopify enforces on these types of discounts.
Here’s what I need:
A Buy X Get Y promotion (e.g. “3 for 2”) that works exactly like Shopify’s native version, but allows more than 100 products to be included.
Ability to include or exclude specific product variants (not just the full product).
Customers should be able to mix and match across different variants (e.g. different sizes or scents).
The cheapest eligible item should be free, not just a fixed product.
The promotion needs to support repeat logic — so “Buy 6, get 2 free”, “Buy 9, get 3 free”, etc.
I’m not on Shopify Plus, so it must work on the standard Shopify plan.
I’ve looked into a few apps but most either don’t support variant-level exclusions, can’t apply to more than 100 items, can do a simply 3 for 2 (cheapest item free) discount or don’t support repeat logic.
Has anyone found a workaround or an app that ticks all of these boxes?
Would love to hear if someone has solved this or found a good alternative.
We can handle that through our mix and match bundles, here in Fast Bundle, you can check it out from our demo store. There is no limit on the number of the products you add. If you had any questions our Support Team is available 24/7 through our live chat & Email.
Many thanks for your reply, unfortunately Bundler currently doesn’t have a feature where the customer can select 3 products and the cheapest one would be automatically free, they work on a % discount of the whole order.
I will check out Discount Ninja to see if they have the functionality I need.
What is “Sell done (Custom Rules via Shopify API)” is that another app? I couldn’t seem to find it.
I have looked in to tagging variants to add them to a custom collection to get around the issue, but I don’t believe you can tag a variant, only the product which will then include all variants? I looked in to using metafields on the variant, but still couldn’t get only the variant added to the collection, it always just added the product with all variants.
You are going to have a mix and match bundle with some range rules like buy 3 and get one for free, and the free gift should be applied to the cheapest items which are selected.
In this case, we do not have any bundles supporting this.
It sounds like you’re looking for a Buy X Get Y (3 for 2) style discount system with flexibility on variants, exclusions, and repeat logic.
This is totally possible with iCart Cart Drawer Cart Upsell! While Shopify’s native discount system limits you to 100 products, iCart can handle larger collections and allow for greater customization, including:
Volume Discount Feature: You can easily create volume-based discounts, applying either a percentage or fixed amount discount when customers buy a certain quantity, like “Buy 3, Get 1 Free” or “Buy 6, Get 2 Free.”
Discount Assignment: You can assign the discount based on either a percentage or a fixed amount, so you can offer a flexible discount structure, whether you want to offer a set discount or a specific monetary amount off the total.
Variant-Level Exclusions: iCart allows you to include or exclude specific product variants (e.g., different sizes, colors, or scents), so customers can mix and match but you still have full control over what is eligible for the promotion.
Repeat Logic: iCart supports repeat logic, so you can offer tiered promotions like “Buy 6, Get 2 Free” or “Buy 9, Get 3 Free,” encouraging customers to buy more while automatically applying the right discounts.
Works on Standard Shopify Plan: iCart works on Shopify’s basic plan, so you don’t need Shopify Plus for these advanced features.
With iCart, you can set up a “Buy X Get Y” promotion exactly the way you want, whether you’re using percentage-based or fixed amount discounts, while handling variant exclusions and repeat logic, without needing to work around Shopify’s native limitations.
Thanks for the info, all sounds promising, however, is it possible to set up the 3 for 2 discount where the cheapest item is always discounted 100%? I can’t use a percentage based or fixed amount off the total order value as I don’t know what that will be until the customer adds the items to their basket. I need it to simply discount the cheapest item of the 3 by 100%, same logic as the standard Shopify Buy x Get Y discount.
Customers need to be able to choose from over 100 items, ranging from £5 to £150. They could add 1 item that costs £10, one item that costs £50 and another item that cost £70, in this case they would get the £10 item free. Alternatively they could add 3 items that each cost £150 and then the discount they would receive would be £150.
Hope that makes sense.
Thanks all, after working with the devlopers, https://apps.shopify.com/salepify have added the functionality to their app to add up to 200 products which works for us at the moment.