Skip to main content

Understanding equal exchanges (Returns V2)

Equal exchanges let customers swap an item for another variant at the price they originally paid. This article covers how the price is worked out and how the exchange appears in Shopify.

Written by Guido Kaspers

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.

Did this answer your question?