Free Gifts Done Right: A Simple Approach to Magento 2 Promotions
by Victor Seager

If you've ever tried to implement free gift promotions in Magento 2, you'll know it's trickier than it sounds. What seems like a straightforward feature can quickly become a minefield of miscalculated totals, payment provider errors, and frustrated customers.
We've been there. After wrestling with various third-party modules that promised the world but delivered headaches, we decided to build our own solution. The result? The outer/edge Free Gift Module - a module that does one thing really well: lets customers choose free gifts without breaking your checkout.
The Problem with Most Free Gift Modules
Before we dive into our solution, let's talk about what typically goes wrong with free gift implementations.
The most common issue we've encountered is cart price manipulation. Many modules add free gifts directly to the cart and set their price to zero, which sounds logical enough. The problem is that this happens before payment is taken. Payment providers like Stripe, PayPal, and others validate that the items in the cart match the payment amount. When a module modifies cart totals on-the-fly, these validations fail, leaving customers staring at cryptic error messages at the worst possible moment - right when they're trying to complete their purchase.
Then there's the cascade of calculation problems that follow. Free gifts affect shipping calculations, tax calculations, and promotional rules in ways that aren't always obvious. We've seen modules calculate shipping costs incorrectly, apply tax to items that should be free, or trigger other promotional rules unintentionally. Each of these issues chips away at customer trust and creates support headaches.
Beyond these core issues, there's a laundry list of smaller problems: rules that don't fire reliably, incompatibility with modern frontends like Hyvä and Breeze, no support for configurable products (so forget offering t-shirts in different sizes), and issues with express payment methods like Apple Pay and Google Pay. Any one of these limitations can derail your promotional strategy or force you into uncomfortable compromises.
Our Approach: Keep It Simple
When we set out to build our module, we had one guiding principle: keep it simple and don't interfere with the cart.
Instead of adding free gifts to the cart (where they can cause all sorts of problems), we add a <u>dedicated step to the checkout process</u>. Customers see their free gift options between the shipping and payment steps, a natural place in the flow where they're already making decisions.
This simple architectural choice solves most of the problems we mentioned. The free gift selection happens as a dedicated checkout step, keeping everything clean and predictable. Customers reach checkout, see their eligible free gifts (if any), select what they want (including configurable options if needed) and then proceed to payment. The gift is added to the order after payment is confirmed, which means there's no cart manipulation, payment providers see the correct amounts, all totals remain accurate throughout the process, and the user experience is clear - customers know exactly what they're getting and when.

Configurable Product Support
Need to offer a t-shirt in multiple sizes? A bracelet in different colors? No problem. Our module fully supports configurable products with a clean popup interface that lets customers select their options before confirming their choice. The module handles all the complexity behind the scenes, validating that all required options are selected, storing the configuration properly, and adding the correct product variant to the order.
Frontend Compatibility
We built this module with modern Magento in mind. It works seamlessly with Luma (Magento's default theme), Breeze (the lightweight alternative), and Hyvä (the performance-focused frontend). The checkout step integrates naturally with each frontend's existing flow, maintaining a consistent user experience regardless of which technology you're using.
Why This Matters
Here's what this means for your business:
Fewer Support Tickets - When checkout works smoothly, customers don't need help. No more "my payment failed" or "where's my free gift?" tickets clogging up your support queue.
Better Conversion Rates - A broken checkout costs you sales. Our module ensures customers can complete their purchase without friction, which directly impacts your bottom line.
Flexibility for Marketing - Want to run a "free gift with purchase over £50" promotion? Or "free sample for first-time customers"? The rule system makes it easy to set up exactly what you need, when you need it.
The Bottom Line
Free gift promotions shouldn't be complicated. They definitely shouldn't break your checkout or confuse your customers. By keeping things simple and adding a dedicated checkout step instead of manipulating the cart, we've created a solution that "just works!".
Have questions about implementing free gift promotions in your Magento store? Get in touch - we're always happy to chat about ecommerce challenges and solutions.