This article explains how Swap handles returns for orders that include a Buy X, Get Y (BxGy) discount — including how refunds are recalculated and what happens when a customer makes more than one return request on the same order.
What is a Buy X, Get Y discount?
A Buy X, Get Y (BxGy) discount is a Shopify-native promotion where a customer qualifies for a benefit — typically a free or discounted item — after meeting a purchase condition.
There are two types of BxGy conditions:
- Quantity-based: the customer buys a minimum number of items (e.g. buy 2, get a third for free)
- Amount-based: the customer spends a minimum amount (e.g. spend £100, get 50% off a specific item)
The discount applies to specific products or collections defined in Shopify. Items that trigger the condition are the Buy items; items that receive the discount are the Get items.
How Swap handles BxGy returns
When a customer initiates a return on a BxGy order, Swap evaluates whether the return breaks the original discount condition.
If the remaining items still satisfy the BxGy condition, the discount remains valid and the refund reflects the price the customer actually paid for the returned item — no adjustment is made.
If the remaining items no longer satisfy the BxGy condition, the discount is considered broken. Swap recalculates the refund to account for the discount value the customer received and would no longer be entitled to.
Refund recalculation
When a return breaks the BxGy condition, Swap calculates the refund using the following formula:
Refund = Total originally paid – full (undiscounted) price of items keptThe minimum refund is £0. If the adjustment exceeds the refund amount, the refund is reduced to £0 — the customer is not charged the difference.
Example — quantity-based (buy 2, get 1 free)
A customer buys 3 items: item A at £25, item B at £18, and item C which is free (full price £16). They pay £43 in total.
Items returned | Calculation | Refund |
Item A (paid £25) | £43 – (£18 + £16) | £9 |
Item B (paid £18) | £43 – (£25 + £16) | £2 |
Item C (free) | £43 – (£25 + £18) | £0 |
Items A + B | £43 – £16 | £27 |
Items A + C | £43 – £18 | £25 |
Items B + C | £43 – £25 | £18 |
All items | £43 – £0 | £43 |
Returning the free item alone results in a £0 refund, as the customer did not pay for it.
Example — amount-based (spend £X, get 50% off)
A customer buys 2 items and qualifies for 50% off one of them: item A (£8 full price) and item B (£8 full price, paid £4 at 50% off). They pay £12 in total.
Items returned | Calculation | Refund |
Item A (paid £8) | £12 – £8 | £4 |
Item B (paid £4) | £12 – £8 | £4 |
Both items | £12 – £0 | £12 |
In both single-item cases, returning one item breaks the discount condition. The refund is based on the full (undiscounted) price of the item the customer keeps.
Multiple return requests on the same order
If a customer makes more than one return request on the same BxGy order — across separate transactions — Swap accounts for any refunds already issued when calculating each subsequent refund.
The formula applied to each request is:
Refund = (Total originally paid – refunds already issued) – full price of items still keptExample
Using the buy 2 get 1 free scenario above (total paid: £43, items A at £25, B at £18, C free at full price £16):
First return request — customer returns item A
- Remaining amount paid: £43
- Full price of kept items (B + C): £18 + £16 = £34
- Refund: £43 – £34 = £9
Second return request — customer returns item B
- Remaining amount paid: £43 – £9 already refunded = £34
- Full price of kept items (C only): £16
- Refund: £34 – £16 = £18
Total refunded across both requests: £27 — the same outcome as returning items A and B together in a single request.
Exchanges on BxGy orders
Exchanges are available on BxGy orders. How the discount is treated depends on what the customer exchanges for.
- Exchanging for a different variant of the same item — the BxGy discount carries over to the exchange item, so the customer isn't asked to pay the discounted amount again.
- Exchanging for a different item — the BxGy discount doesn't carry over. The exchange item is priced normally, and if the return breaks the discount condition the refund is recalculated as described above.
Limitations
- The BxGy discount doesn't carry over when a customer exchanges for a different item. The exchange item is priced at its normal price.
























