Free gift with purchase campaigns are designed to boost sales, but what happens when this gift ends up costing more to deliver than the margin it brings in?
Retailers have relied on gift with purchase campaigns for decades. It increases conversion, drives up average order value, and adds an emotional touch that keeps customers engaged. Behind the feel-good success of these campaigns lies a problem that’s easy to miss: rising fulfillment costs caused by rigid order routing logic.
When promotional items aren’t stocked with the rest of the order, the result is often a split shipment, and that’s where the economics start to break down.
Let’s look at how this plays out in practice and why smarter order routing logic needs to be part of the conversation, not just better campaign planning.
The Hidden Cost of a “Free” Gift
Take this common gift with purchase scenario:
A customer buys three pairs of shoes, and their total order value comes to $210. As part of a summer promotion, they’re eligible for a free waterproof spray worth $3.
The shoes? Available at the New Jersey warehouse.
The spray? Only available at a store in Denver.
Instead of shipping everything together, the order is split into two shipments, one for the shoes, another just for the gift. Total shipping cost: $22. That’s nearly eight times the value of the promotional item.
Now imagine this happening across 10,000 orders.
The promotion succeeds in driving conversion, but the brand is quietly leaking margin, turning what should be a loyalty win into an operational loss.
The problem isn’t that the order routing engine failed. It did exactly what it was built to do: check the nearest available inventory and ship from wherever the items are available.
The Root Problem: Rigid and Incomplete Order Routing Logic
Most order routing engines are designed to optimize for speed and inventory availability, but not for shipment value. They treat every SKU the same, whether it’s a $300 item or a $3 gift with purchase item.
So when the gift isn’t in stock at the same location as the rest of the order, the order routing engine doesn’t pause to consider whether a second shipment is worth the cost; it simply allocates inventory from wherever each item is available.
This isn’t a bug, it’s a gap in how routing decisions are made. The engine is doing exactly what it’s configured to do: ship from the nearest location with available stock.
It doesn’t check whether shipping the gift separately is actually worth it, so split shipments become the default, even when they eat into margins.
Smarter Order Routing Starts with Smarter Rules
To make gift with purchase campaigns financially sustainable, retailers need order routing engines that do more than just find available inventory. The logic needs to evaluate fulfillment paths through the lens of cost, proximity, and business value.
One simple and effective way to do that?
Apply a “Shipment Value Threshold”.
What is a “Shipment Value Threshold”?
“Shipment Value Threshold” is a configurable rule in your order routing engine that sets a minimum value an item (or group of items) must meet to be shipped on its own.
If a gift with purchase or low-cost item doesn’t meet this threshold and can’t ship with the rest of the order, the system temporarily:
- Parks the order in an unfillable state
- Attempts to re-route it during the next fulfillment cycle
This prevents expensive outcomes like shipping a $3 gift in a $20 shipment and protects campaign profitability without delaying the entire order.
Let’s break down what smarter routing decisions can look like in practice
First, Try to Fulfill the Entire Order from the Nearest Possible Location
The routing engine should start by checking if any nearby fulfillment location, such as a warehouse or store close to the customer, has all items, including the promotional gift. This is the best-case scenario: it avoids splits, keeps delivery times short, and minimizes shipping costs.
The routing engine should always prioritize, allocating the entire order to the closest fulfillment location before expanding its search.
Then, Expand the Search, But Still Avoid Splits
Finally, If No Single Location Can Fulfill the Order, Split Only If It Passes the “Shipment Value Threshold”
Split shipments should always be the last resort, and even then, only allowed if the value of the split item justifies the cost.
This is where the “Shipment Value Threshold” becomes the key decision-making factor. If the gift with purchase item is worth less than, say, $10, and isn’t stocked at the same location as the purchased products, the routing engine should not allow the split.
Instead, the engine can automatically reroute it later, once inventory becomes available at a single location. If the order still can’t be fulfilled without splitting, it can be moved to a temporary unfillable or parking state, where it will continue to be evaluated in subsequent routing cycles. Orders that remain unfulfilled after a set period can then be flagged for review, allowing business teams to decide whether to substitute the gift item or take other corrective action based on campaign rules.
There will be situations where a split shipment is justified, such as high-margin orders, VIP customers, or same-day delivery requirements. In these cases, the additional shipping cost may be acceptable. Even then, the decision to allow a split should come from clearly defined rules, not as the default behavior of the order routing engine. Exceptions should be configured thoughtfully, based on business priorities, rather than handled ad hoc.
Campaign Success Shouldn’t Depend on Absorbing Fulfillment Losses
Retailers don’t need to abandon these campaigns. They need more control over how orders are routed, especially when low-value items are involved.
A free gift with purchase campaigns isn't the problem. The issue lies in order routing logic that treats all items the same, without context for cost or value.
* * *
HotWax Commerce offers configurable routing that makes it possible to apply “Shipment Value Threshold”, prioritize no splits, and escalate exceptions through business logic rather than guesswork.
Want to see how “Shipment Value Threshold” can be configured without slowing down fulfillment?
Let’s talk.