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.
Exchanges are supported for BxGy orders, but the discount does not carry over to the exchanged item.
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.
💡 Example: A customer buys 2 items and gets a third for free. They return one of the Buy items. The remaining order no longer meets the "buy 2" condition, so the free item's discount is no longer valid. Swap adjusts the refund accordingly.
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 kept
The 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 kept
Example
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.
Limitations
Exchanges are not currently supported for BxGy orders. Customers can submit a return for a refund, but cannot exchange items through the portal if the original order included a BxGy discount.