Repeating BOGO Rewards: When Buy 2 Get 1 Should Apply More Than Once
Deciding whether a Buy X Get Y reward should repeat for every qualified group, with the cannibalization math and the stock-up effect on reorders.
A Buy 2 Get 1 Free offer can apply once per order or repeat for every group of three. Repeating keeps the rate per group but gives extra free units to customers who already buy more. In the illustrative example it pays only if more than 48% of larger orders are new, and stocking up can delay the next order, so measure gross profit per customer.
At a glance
- Challenge
- Under a once-per-order Buy 2 Get 1 Free offer, many qualifying orders stop at three units, but repeating the reward also gives extra free units to customers who already buy more.
- Approach
- Buy X Get Y set to repeat for every qualified group with a maximum per order, tested against a 48% break-even share and measured by gross profit per customer.
- Discount Prime campaign types used
- Buy X Get Y (BOGO)
Scenario-based case study: the merchant is fictional and modeled on patterns across Discount Prime stores. Prices, costs and outcome figures are illustrative assumptions for teaching, not measured results from a real store.
Short Answer
A "Buy 2, Get 1 Free" offer can give one free unit per order, or one free unit for every complete group of three. Switching to repeat for every qualified group keeps the same discount rate per group (one in three units free), so a larger order earns more free units. It also costs more on orders that were already large.
"Progressive" in this article means repeating: the same reward again for each group. A Discount Prime Buy X Get Y campaign has one rule; it does not raise the reward rate at higher quantities. If you want the rate itself to rise (for example 3+ units 10%, 6+ units 20%), use a Tiered Quantity Discount.
PureFuel Nutrition is a fictional supplement store used to illustrate the decision. All numbers are illustrative assumptions, not results.
Fits / Does Not Fit
| Repeating rewards fit when | Apply-once fits when |
|---|---|
| Products are consumed on a schedule and keep well (protein, creatine, vitamins) | Products are expensive, slow to use up, or have thin margins |
| You want the offer to stay meaningful for customers who stock up | You want a fixed, predictable promotion cost per order |
| Many orders already stop at exactly three units | Many customers already buy six or more at the current offer (they would get extra free units for the same behavior) |
The Scenario and the Data You Need
PureFuel runs "Buy 2, Get 1 Free" on its protein tubs, applied once per order. Orders with three tubs are common; larger orders are rare. The team wants to know whether repeating the reward is worth its cost.
Illustrative assumptions (replace with your own):
| Input | Value |
|---|---|
| Protein tub price | $36 |
| Product cost per tub | $11 |
Data to pull: the distribution of tubs per order under the current offer (how many orders have 3, 4 to 5, 6+ units), and the time between a customer's orders.
How the Two Modes Compare
In Discount Prime, the free unit comes from the same group: for "Buy 2, Get 1 Free" on the same product, a group is 3 units and 1 of them is free.
| Tubs in cart | Free units, once per order | Free units, repeat per group |
|---|---|---|
| 2 | 0 | 0 |
| 3 | 1 | 1 |
| 6 | 1 | 2 |
| 9 | 1 | 3 |
| 30 | 1 | 10 (or your maximum per order) |
The Economics, Including Cannibalization
Gross profit = revenue minus product cost (payment fees, shipping and returns excluded).
| Order | Revenue | Gross profit |
|---|---|---|
| 3 tubs, 1 free | $72 | $39 |
| 6 tubs, once per order (1 free) | $180 | $114 |
| 6 tubs, repeat per group (2 free) | $144 | $78 |
| 9 tubs, repeat per group (3 free) | $216 | $117 |
What switching to repeat does:
- A customer who would have stopped at 3 tubs and now buys 6: gross profit goes from $39 to $78, +$39.
- A customer who would have bought 6 tubs anyway: gross profit goes from $114 to $78, −$36.
Repeat pays only if enough of the 6-tub orders are new: more than $36 ÷ ($39 + $36) = 48% in this example. To adapt: use your own price, cost, and share of customers who already buy large quantities.
Stocking up is not the same as buying more often. A customer who buys two months of protein today may simply skip next month's order. Higher order value with fewer orders per customer can leave total gross profit unchanged or lower. Measure gross profit per customer over a period that covers the next reorder, not only AOV.
Alternatives Compared
| Option | Fits when | Watch out for |
|---|---|---|
| Native Shopify Buy X Get Y | A plain repeating offer is enough; Shopify lets you set a maximum number of uses per order | Customers add the free unit themselves, as with any same-product offer |
| Discount Prime Buy X Get Y, repeat per group | You also want options such as counting across flavors with the cheapest unit free, a cap on rewards per order, or a storefront toast | Same economics as above |
| Tiered Quantity Discount (3+ = 33% off) | You want every unit discounted, or a rate that rises at higher tiers | 4 tubs get 33% off all four, not "1 free" |
| Deeper offer (Buy 2, Get 2) | You need a stronger headline | Doubles the cost on every qualifying order, including those that would have happened anyway |
Settings Used in This Scenario
| Setting | Value |
|---|---|
| Campaign type | Buy X Get Y (Prime plan) |
| Offer | Buy same product, get same product free |
| Minimum quantity | 3 (the group includes the free unit) |
| Discounted item quantity | 1, free |
| How to count items | Same item only (each flavor counts on its own line) |
| Apply | Repeat for every qualified group |
| Maximum rewards per order | 5 (15 tubs), to bound the cost on very large orders |
| Execution order | Apply after other discounts (default) |
| Storefront display | Toast notification, plus the cart progress indicator |
Minimum quantity: for same-product rewards, the minimum counts the whole group including the free unit. "Buy 2, Get 1 Free" is 3. Check the campaign preview before launch.
Same item only vs any eligible items: with "Same item only", 3 chocolate and 3 vanilla tubs each earn 1 free. With "Any eligible items", tubs of different flavors count together and the cheapest unit in each group is free.
Large buyers: if gyms or clubs buy dozens of tubs, decide whether they should receive the retail offer at all. A maximum per order or a separate wholesale campaign keeps that decision explicit.
What the Customer Sees
There is no reward picker for same-product offers: the free unit is the third tub the customer adds, and checkout prices it at $0. The storefront widget shows a short message when the customer is one unit away. Tell customers clearly, on the product page, that the offer repeats ("every third tub free, up to 5 per order"); without that, many will behave as if it applies once.
| Cart | Checkout |
|---|---|
| 2 tubs | Full price; nudge to add a third |
| 3 tubs | 1 free |
| 7 tubs | 2 free; the seventh at full price |
| 18 tubs | 5 free (maximum), the rest at full price |
Limits and Pre-Launch Tests
- Free units do not count toward other Discount Prime campaigns' minimums and are not discounted again.
- Several Buy X Get Y campaigns cannot reward the same unit twice; the larger saving wins on a line.
- Buy X Get Y cannot be delivered as a discount code. Discount Prime's automatic discounts are set to combine with other discounts, so whether a Shopify code also applies depends on that code's own combination settings. Check them, or use the "Prevent Shopify discounts" option if you do not want codes on top.
- There is no cost floor on Buy X Get Y; check the unit economics yourself before enabling repeats.
| Test input | Expected result |
|---|---|
| 2 tubs | No free unit |
| 3 tubs | 1 free |
| 6 tubs, same flavor | 2 free |
| 3 chocolate + 3 vanilla, "Same item only" | 1 free on each line |
| 18 tubs | 5 free (cap) |
| 3 tubs plus a Shopify discount code | Matches your intended combination rule |
Measurement
- Primary metric: share of qualifying orders above three units.
- Guardrails: gross profit per order, and gross profit per customer over a full reorder cycle; free units per order.
- Baseline and comparison: orders under the once-per-order offer. If possible, run repeat on one product line and keep once-per-order on a similar line.
- Confounders: seasonality (January fitness demand), email promotions, new flavors.
- Decide: keep repeat if large orders grow without lowering gross profit per customer over the reorder cycle. If most free units go to customers who already bought six or more, return to once per order or lower the maximum. Without a controlled comparison, treat before/after changes as directional.
Frequently asked questions
What is the difference between apply once per order and repeat for every qualified group in a BOGO campaign?
Once per order gives one reward however much the customer buys. Repeat for every qualified group gives a reward for each complete group: with Buy 2 Get 1 Free, 6 units earn 2 free and 9 earn 3, up to any maximum you set. Once per order keeps the cost per order fixed; repeat keeps the offer meaningful for larger orders but also costs more on orders that were already large.
How do I set up Buy 2 Get 1 Free on the same product in Discount Prime?
Choose Buy same product, get same product free, and set the minimum quantity to 3, because for same-product rewards the minimum counts the whole group including the free unit. Set the discounted quantity to 1 and the reward to free. Check the campaign preview before launch. There is no picker for this offer; the customer adds the third unit and checkout prices it at $0.
Does a repeating BOGO reward increase profit?
Only if it creates larger orders that would not have happened. With a $36 product costing $11, a customer moving from 3 to 6 units adds $39 of gross profit, while a customer who would have bought 6 anyway loses $36. Break-even is about 48% new large orders. Stocking up can also delay the next order, so track gross profit per customer across a reorder cycle.
Can I make BOGO rewards grow at higher quantities, like buy 6 get 3?
Repeating rewards give the same rate per group, so 6 units earn 2 free with Buy 2 Get 1. A Discount Prime Buy X Get Y campaign has one rule and no rising tiers. If you want the rate itself to rise with quantity, use a Tiered Quantity Discount; for rewards that grow with complete sets, a Product Bundle set ladder.
Is native Shopify Buy X Get Y enough for a repeating offer?
Often, yes. Shopify's native Buy X Get Y discount can repeat with a maximum number of uses per order. An app adds options such as counting across flavors with the cheapest unit free, storefront messages, or campaign analytics. The economics are the same either way.
When should a BOGO reward apply only once per order?
When the product is expensive, slow to use up or thin-margin, or when many customers already buy large quantities at the current offer. In those cases, repeating mostly adds free units to existing behavior. Repeat fits replenishable products where many orders stop exactly at the first group.
Go deeper
Run this architecture in your store
Every campaign type in this case study is included in Discount Prime, with profit analytics to verify the margin impact.