An equal exchange lets a customer swap an item for a different variant of the same product — a different size or colour — at no extra cost, even if the original item was bought with a discount. This article explains how the price is worked out, what happens when the variant's price has changed since the purchase, and how the exchange appears in Shopify.
💡 Equal exchanges go by several names: Exchange for Another Variant (EFOV), like-for-like, and variant exchange. They all describe the same thing.
🌍 Global orders work differently. Because a Global order involves two products, Swap treats variant exchanges as equal without validating the price difference — a deliberate compromise. The behaviour described in this article applies to standard orders. See Global Exchanges.
ℹ️ Equal exchanges apply to variant exchanges only — swapping for a different variant of the same product. If a customer exchanges for a different product altogether, that is Shop Now, and discounts behave differently. See Exchange Discounts: Carrying Over Original Discount.
How an equal exchange is priced
The principle is that the customer pays what they originally paid, and keeps whatever discount they had.
If a discount was applied to the original item, that value carries over to the exchange. The discount is shown on the final screen of the return.
If the variant's price has changed since the purchase, the exchange is still treated as equal and no refund is issued. The exchange item is displayed at the price originally paid. For example, if the variant now costs £600 in Shopify but the customer paid £500, the exchange item is shown as £500 so the swap stays equal.
An additional payment may still be requested where the replacement variant is more expensive, unless the setting to waive additional payments is enabled. The table below shows how each case resolves.
What the customer sees
The original item price and its discount
The adjusted price of the new item
A total of £0 for an equal exchange, unless an additional payment is required
If a customer returns two items
If both returned items carry a product discount and the customer exchanges them for a single item that qualifies for both, only one discount is applied to the exchange item.
Enabling equal exchanges
Go to Returns → Settings → Exchanges. In the Exchange options panel, tick Allow exchanges for a different variant under Domestic exchanges, International exchanges, or both.
This is a separate setting from Allow exchanges for a different product (Shop Now), so you can offer variant exchanges without offering Shop Now, or the other way round.
How each case resolves
Original item price | Discount applied | New variant price | With equal exchanges on | With equal exchanges off | With additional payment waived |
£50 | 10% (£5) | £50 | £0 | £5 additional | N/A — only applies when equal exchanges are on |
£50 | No discount | £45 | £0 | £0 | N/A |
£50 | 10% (£5) | £90 | £36 additional | £45 additional | £0 |
£50 | No discount | £90 | £40 additional | £40 additional | £0 |
£50, variant price increased to £60 after purchase | No discount | £50 | £0 | £10 additional | £0 |
£50, variant price decreased to £40 after purchase | No discount | £50 | £0 | £0 | N/A |
£50, variant price increased to £60 after purchase | No discount | £45 | £0 | £0 | £0 |
How the exchange appears in Shopify
This depends on which accounting method your store uses.
Same value and zero value accounting
Swap applies a price adjustment to the exchange item, so the price recorded in Shopify reflects what the customer actually paid after their discount.
Shopify's native Exchange API
The item price cannot be adjusted — it is pulled directly from your Shopify product catalogue.
Where a discount was applied, Swap adds a product discount to reflect the difference.
Where the exchange item is now cheaper than the original, no discount adjustment is made and the remainder is marked as paid. For example, if the price dropped from £600 to £500 after purchase, the customer does not receive a refund, and both the portal and the RMA show an equal exchange.
The Shopify exchange item is pulled at its current price.
Once the RMA is processed, Shopify shows that a refund is expected. This can be ignored — no refund is due, because the exchange was equal.
Choosing how variant exchanges are calculated
The Exchange for the same variant panel controls how Swap works out whether an exchange is equal. Go to Returns → Settings → Discounts & Credit, then pick an Exchange calculation method.
Discount-based Exchange — uses Shopify's native discount data to calculate equal-value exchanges. Choose this if you want customers to be able to return exchange items, and it is simpler to operate day to day.
Price-Based Exchange — calculates exchanges independently of Shopify discounts, so it supports custom and third-party discount systems. Results may differ slightly from the discount-based method in some cases.
Return of Exchange
Return of Exchange sits inside the Discount-based Exchange option, because it only works with that method. It enables automated processing for returns of exchanges, and refunds are issued automatically to the original order and to Stripe where applicable. If you choose Price-Based Exchange instead, this is not available to you.
Waive additional payment
Waive additional payment sits below both options and applies whichever calculation method you choose. Turning it on means customers are never charged a price difference when exchanging for another variant — the exchange is treated as equal value regardless of price.
ℹ️ Turning variant exchanges on happens elsewhere, under Returns → Settings → Exchanges in the Exchange options panel. The Discounts & Credit tab only controls how they are calculated.






