Magento 2 Advanced Promotions Extension
Magento's native cart price rules can't give a different product free with a purchase, discount the cheapest item in the cart or every second item, or sell a product for a fixed price in a promotion.
Extended Shopping Cart Rules adds 14 new actions to the same cart price rules, conditions by order history and customer attributes, and promo banners that tell shoppers how to get the discount.
- Run buy X get Y, cheapest item free and spend-and-save promotions
- Discount every N-th item or the most expensive one
- Target customers by order history and attributes
- Exclude items already on sale or discounted
- Preview a rule on sample carts
- Show promo banners in the cart and on product pages
- Set custom coupon success and error messages
14 promotion types Magento's cart price rules don't have
Magento's native cart price rules give a percent or fixed discount and a basic "buy X get Y" that only works within the same product. Store promotions usually need more: a free case with a phone, the cheapest item in the cart free, every second item at half price.
Extended Shopping Cart Rules adds these as new actions to the same cart price rules, so you build promotions in the screen you already know:
- Buy product X, get a different product Y free, discounted or for a fixed price
- Discount the cheapest or the most expensive item, or every N-th item
- Give $Y off for every $X spent
- Target customers by order history and any customer attribute
- Exclude items that already have a special price or another discount
- Show cart banners that tell shoppers how to unlock a discount
Rules work with Luma and Hyvä, including Hyvä Checkout, and with headless storefronts that create carts through GraphQL.
Promotions you can run
Each line is one rule from the extension:
- Buy one, get one free (the second product can be a different one)
- Buy 3, get the cheapest one free
- Every 2nd item 50% off
- Buy 3, get the cheapest one for $5
- $10 off for every $100 spent
- Buy a phone, get a case 30% off or for $5
- All T-shirts in the cart for $10 each
- $15 off the most expensive item
- Discount everything except the most expensive item
Any rule can also give free shipping or apply its discount to the shipping amount.
All 14 rule actions
Fixed discount
- Fixed discount on the most expensive product
- Buy product X, get a $ discount on product Y
- For each $X spent, give a $Y discount
- Fixed discount on the cheapest products by step
- Fixed discount on the cheapest product
Percent discount
- Buy product X, get a % discount on product Y
- Discount on the most expensive product
- Discount on the cheapest product
- Discount on all products except the most expensive
- Discount on the cheapest products by step
Fixed price
- Fixed price for all products
- Fixed price for the cheapest product
- Fixed price for the cheapest products by step
- Buy product X, get product Y for a fixed price
See how each action calculates the discount in the user manual.
Buy one get one free, with a different product
A customer buys product X and gets product Y free, with a fixed or percent discount, or for a fixed price. Unlike Magento's native rule, Y can be a different product: you define X with the rule conditions and Y with the action conditions, by category, SKU, price or any other product attribute.
For example, offer a case 30% off with every phone, or give the case for free (a 100% discount).
The discount applies when both products are in the cart: the customer adds Y. A cart banner can prompt them to do it. Use the rule to move high-margin or slow-selling products along with your bestsellers.
Every N-th item discounted
The "by step" rules discount the cheapest item for every N items in the cart. Set the step to 3 and the discount to 100%, and you get "buy 2, get 1 free": in every 3 items the cheapest one is free, so a customer with 6 items gets the 2 cheapest ones free. Set the step to 2 and 50% for "every 2nd item half price", or use a fixed price for "buy 3, get the cheapest one for $5". A maximum quantity limits how many items get the discount.
$Y off for every $X spent
The discount grows with the cart: give $10 off for every $100, so a $250 cart gets $20 off. Add conditions such as a product category or a minimum cart total.
A discount on the cheapest or the most expensive item
The customer gets a discount on the cheapest (or the most expensive) product in the cart, for example 50% off the cheapest item when the cart has two or more. It gives customers a reason to add a second product.
See what a rule does before it goes live
Complex promotions are easy to get wrong: a rule that never fires, or one that stacks with another rule and gives a double discount. The extension shows both before customers do.
- Sample cart preview. The rule form shows example carts for the rule you are editing, which items get the discount and how much. Change the discount or the step, and the examples update.
- Visualize Rules. One tree shows every cart price rule with its priority, "Discard subsequent rules" setting, active dates, coupon, customer groups, websites, conditions and discount type. You see which rule runs first and which ones stop the rest.
Target customers and protect your margin
The extension adds conditions that native cart price rules don't have:
- Order history: total number of orders and total sales amount of a logged-in customer. Give a coupon for the first order, or a better discount to customers who have spent over $1,000.
- Customer attributes: any customer attribute, including your custom ones.
- Has Special Price: exclude products that already sell below their regular price.
- Is Discounted: exclude items already discounted by another cart rule.
The last two keep a promotion from giving a second discount on items that are already on sale.
Custom coupon success and error messages
Set your own success and error message for each coupon rule, shown when a customer applies its coupon on the cart page. The message can include the coupon code.
Say a coupon only works for NIKE products priced at $100 and up. Instead of Magento's generic error, the customer sees: "This coupon is only valid for NIKE products priced at $100 or more". They know right away why the coupon didn't apply and what to change.
Banners that tell shoppers how to get the discount
Customers can't use a discount they don't know about. The extension comes with promo banners that explain the offer and what to do to get it.
Show a banner as text or an image, in a pop-up, lightbox, slider or rotator, on the cart, product, category or any other page. Choose when it appears by cart contents and subtotal, product, category, customer group and schedule.
For example, show "Add one more item to the cart and get an additional 5% discount" when the customer has two products in the cart, "Get $10 off for every $100 spent" while the cart total is below $100, or "Spend $23 more for free shipping" with the amount calculated for each cart. Impressions and clicks are counted for every banner.
For a discount on a set of products bought together, see Product Kits.
There is a lot of flexibility in how promotions can be built. Rules can account for guests, registered customers, purchase history, lifetime activity, quantities and other conditions, and discounts can be applied automatically without requiring the customer to enter a coupon. The built-in notification functionality and integration with the rest of Magento also make it feel like part of the platform rather than an add-on.
My main improvement would be more control over invalid coupon and error messages. It would be useful to create multiple custom messages that display based on specific combinations of conditions.
What we appreciate most is that it expands the options of the native rule engine without replacing it. Existing rules keep behaving exactly the same and the extended types live in the same admin section, which avoids forced migrations or having to learn a parallel system.
The catalogue of discount types is noticeably broader than the standard one. It covers scenarios like "buy X get Y", discounts applied to the cheapest or most expensive item in the cart, fixed prices over product sets and other combinations that in plain Magento would require custom logic.
The interface for managing the rules catalogue is practical as the number of promotions grows. Being able to navigate and search through rules without going through the whole list helps the marketing team's day-to-day work, especially on stores with many active, scheduled and archived rules.
On the multi-store side, rules can be scoped to the relevant websites, respecting Magento's native structure.
Overall, it is a solid extension for stores that need more discount options or better organisation of their promotions catalogue, without giving up what they already had.
Save time by starting your support request online and we'll connect you to an expert.
Can I give product B for free when a customer adds products A and B to the cart?
Yes. Use the "Buy product X, get % discount for product Y" action with a 100% discount: product A matches the rule conditions, product B matches the action conditions. You can define both by category, SKU, price or any other product attribute, so typical setups work:
- one product from category A and one from category B in the cart: the B product is free;
- two products from category A and two from category B: all B products are discounted;
- several products from categories A and B: one B product is free or discounted, the rest are full price;
- several products from one category: the most expensive one is discounted.
To keep items that are already on sale out of the promotion, add the "Has Special Price" or "Is Discounted" condition.
Does the extension add the free product to the cart automatically?
No. The discount applies when the qualifying products are in the cart, so the customer adds product Y themselves. To prompt them, show a cart banner such as "Add a case to your order and get it free".
Can a cart rule give free shipping or a shipping discount?
Yes. Every rule of the extension can give free shipping, the same way as native cart price rules. With "Apply to Shipping Amount" enabled, fixed and percent discount rules also discount the shipping cost.
To set shipping rates per product, per method or per order, use Shipping Price Rules or Shipping Table Rates.
How do I stop extended rules from stacking with other cart rules?
Use Magento's rule priority and the "Discard subsequent rules" option to decide which rule runs first and which ones stop the rest. The extension adds the "Is Discounted" product condition: set it to "No" and a rule skips items already discounted by another rule.
To check the result, open Visualize Rules: one tree shows all cart price rules with their priority, "Discard subsequent rules" setting, dates, coupons and customer groups.
How can I check what a rule will do before it goes live?
The rule form shows example carts for the rule you are editing: which items get the discount and how much. If a live rule doesn't apply, check its priority and the rules above it in Visualize Rules.
Can I create a coupon for a customer's first order?
Yes. Add the "Total Number of Orders" condition equal to 0 to a coupon rule. Order history conditions work for logged-in customers; a guest always counts as having 0 orders.
Can I give a discount for a newsletter signup?
Yes. Create a cart price rule with a coupon here, then send the code with your email tool, for example in the newsletter welcome email. The extension doesn't send emails itself.
Does it work with native Magento coupons?
Yes. Extended rules use native Magento coupons, including auto-generated codes from the Manage Coupon Codes section. See the Adobe Commerce guide to cart rule coupons.
Does it work with Hyvä?
Yes. The rules apply in the Hyvä cart and Hyvä Checkout as well as in Luma, and the promo banners render on Hyvä and Luma without an extra package.
Does it work with PWA or a headless storefront?
Discounts from all 14 rules apply to any cart, including carts created through GraphQL, and the promo banners have a built-in GraphQL API. PWA frontend components are not included, so banners need to be added to your storefront by your developers.
Blog
We are committed to being open and transparent with our customers. When you purchase our module, you automatically receive one year of free support service and free updates.
Why is this important?
- Seamless Installation and Configuration: We understand that setting up a new module can take time to configure according to your specific needs. That’s why we offer a full year of free support. Our experienced team is here to assist you with installation, configuration, and any questions you might have. We're eager to share our expertise to ensure you get the most out of your purchase.
- Stay Updated with Magento (Adobe Commerce) Releases: Magento releases new versions approximately every three months. These updates can sometimes introduce compatibility challenges. To keep your store running smoothly, we provide a year of free access to the latest versions of our modules, ensuring that you can upgrade Magento and our modules without encountering any obstacles.
- Subscription Included: Renewing your subscription ensures continued access to the latest updates and support from our team. This means you can be confident that any issues you encounter with the extension will be resolved quickly and efficiently. You can cancel your subscription at any time without any additional fees.
These are our primary. A major portion of our new clients come from referrals from our existing clients. Our professional team of developers, marketers and support staff have invested the best knowledge and experience in the field into our work, so you know you can come back to us again and again.
One year free and high quality support. We go to great lengths to provide maximum satisfaction with every module you have purchased in our store. By helping you with installation, configuration, answering your every question, we do all our best to eliminate any possible problems.
30-days money back guarantee. If you are not satisfied with our extension performance for any reason, we provide a full refund.
We constantly add new features to all our modules, and are always interested in hearing your opinion and implementing your suggested features in our future developments.
We provide an expanded user guide for every aspect of our extension, so you can find answers for all your burning questions.
You can customize extension according to your needs and requirements.
The Module is easy to install and upgrade, just follow our step-by-step user guide. Additionally, the extension is ready to use with the Hyvä theme.
No core modifications. The extension has been tested in a Magento Cloud environment and is fully compatible with it.
Andriy Kovalenko