Two of the most common Shopify promotions look interchangeable on the surface and behave nothing alike underneath. BOGO — buy one get one, or its 3-for-2 cousin — and a straight percentage discount pull different levers: one moves units, the other lowers price. Picking the wrong one is how a “successful” sale ends up flat on profit. Here’s how to decide, on the axes that actually matter.
Perceived value: “free” beats “20% off”
A free unit reads as a bigger win than the equivalent percentage off, even when the math is identical. “Buy one get one free” is a 50% discount when both items are the same price — but “free” is concrete and the shopper keeps a whole extra product. “20% off” is an abstraction applied to a total. Buyers reliably respond harder to the free framing, which is why BOGO is a stronger headline for conversion. A percentage discount is quieter and more rational — useful when you don’t want the promotion to overshadow the product.
Units per order and AOV
This is the sharpest difference. BOGO structurally pushes quantity: to unlock the reward the shopper has to add more units, so orders get bigger. A 3-for-2 nudges a one-unit shopper to three. That’s a direct lift to units per order and to average order value.
A percentage discount does nothing to quantity. It applies to whatever is already in the cart, so it lowers the price of the order the shopper was already going to place. If your goal is a larger basket, BOGO is the mechanic; a flat percentage off is the wrong tool. (More AOV levers: how to increase average order value on Shopify.)
Margin implications
Here the two diverge again. A percentage discount costs you the discount depth on every unit sold — 20% off means 20% off the whole cart, whether or not the shopper would have bought anyway. It’s a predictable, controllable cost, which is exactly why it suits clearance.
BOGO’s cost is the free unit’s COGS and fulfillment, not its retail price — you never had that retail money. On a high-margin product the free unit costs a fraction of what a paid unit earns, so a larger order can still grow total contribution. On a thin-margin product the free unit can cost more than a normal sale earns, and the offer sells at a loss. The full breakdown is in why buy 2 get 1 free isn’t always a 33% discount.
Inventory movement
BOGO is the better tool to shift volume of a specific SKU — it clears depth by pushing units out the door in multiples. A percentage discount clears value across a catalog: mark down a collection and everything moves a little. So for overstock on one product, BOGO; for a broad end-of-season sweep, percentage off.
When each wins
- Run BOGO to move units, lift AOV, and clear depth on high-margin or overstocked SKUs — anywhere a bigger basket is the goal. Setup: how to set up BOGO on Shopify.
- Run a percentage discount for clearance, sitewide sales, single-unit products, or any time you need a precise, affordable discount depth you can communicate in one line.
They also stack conceptually: BOGO to grow the order, percentage off to clear the tail.
The checkout-safe catch (whichever you pick)
Both mechanics share one failure mode: an offer that displays correctly on the product page but is enforced only in theme JavaScript. The cart is a separate, dynamic object — if a shopper edits it after the reward is added (removes the qualifying item, changes quantity), a JS-only offer can leave the free unit in the cart at zero cost or apply a discount that no longer qualifies. What they see and what they’re charged drift apart, and the gap is your margin.
The reliable fix is to enforce the offer with a Shopify Discount Function at checkout. The Function re-validates the cart server-side, so the free unit or the discount is granted only when the qualifying items are actually present — it can’t be faked in JS or gamed by editing the cart. That’s how Profit Flow AOV Bundle runs both BOGO and percentage offers: checkout-safe by construction. See the mechanic in buy X get Y free.
Profit Flow AOV Bundle runs BOGO (plus quantity breaks, bundles, gifts and mix & match) on any Online Store 2.0 theme, free. Add it to your store →