Exchanges
Updated 11 November 2026
Overview
This article explains the two kinds of exchange. A variant exchange swaps an item for the same product in another size or colour. An advanced exchange swaps it for a different product, chosen from named options you build as rules. It covers where each is switched on, how the exchange credit is worked out, what happens when the new item costs more or less, and what happens when it is out of stock.
Use the menu on the left to quickly navigate this article.
Before you start
- A return policy with the Exchange card switched on under Policy > Return Policies, the Return outcomes tab.
- Stripe connected under Tools > Integrations if you collect price differences.
- Shopify collections imported, if your advanced exchange rules offer collections.
How exchanges work
Where exchanges are set
In the admin, go to Policy > Return Policies, open a policy, Return outcomes, the Exchange card.
- Allow advanced exchanges: lets customers exchange for different products, not just other variants. Set up the options under Policy > Advanced Exchanges; this box turns them on for this policy. With it off no rules are loaded for the policy. Default: off.
- Exchange shipping method: the delivery method written on exchange orders, for example Standard Shipping.
- Inventory locations: exchanges and Shop Now on this policy check stock at these locations. To set locations for all policies, go to Shipping > Locations.
In the admin, go to Policy > General, Exchanges. Store-wide rules live here: New order prefix, Exchanges of exchanges, Match online store product availability, Replace Item option, Different priced exchanges and Pre-discount credit. See Exchanges (General settings). Whether the exchange order in Shopify is discounted by the returned items' credit, and whether it is taxed, is set on the Exchange accounting options card of the same page. See Exchange Accounting Options.
Policy > General, the Exchanges card with Different priced exchanges and Pre-discount credit
Advanced exchange rules
In the admin, go to Policy > Advanced Exchanges.
The page lists your rules with Name, Exchange options and Status. Add Exchange opens a rule; Update Collections re-imports your Shopify collections. Delete in a rule's menu removes the rule after a Delete exchange rule? confirmation. A note at the top names the policies with Advanced Exchanges switched on (Switched on for and the policy names, then Other policies ignore these rules.), or warns No return policy has Advanced Exchanges switched on and then None of these rules reach shoppers. Open a return policy, go to Exchanges, and tick Allow advanced exchanges.
- Setup method: Product name & collections matches returned products whose title contains a product name and offers collections to swap to. Product tag & collections matches returned products carrying one or more tags and offers collections. Product tags only matches by tag and offers products that share those tags, with no collection. Switching the method clears the options.
- Exchange options: Add Exchange Option gives each choice a Name (for example Exchange for new color) and either a Collection or a set of Tags. The name is the button the shopper sees.
- Show product titles: shows each product's title under its image in the portal grid. When off, only images show. Default: on.
- Status: only active rules are matched in the portal. Default: Active.
Policy > Advanced Exchanges, a rule with two exchange options
How it works
The credit, in two steps. Step 1, Pre-discount credit under Policy > General, decides how much the returned item is worth as exchange credit: off, what the shopper paid (48.00 for a 60.00 hoodie bought on sale); on, the full catalogue price (60.00). Refunds and store credit always use what was paid. Step 2, Different priced exchanges under Policy > General, decides what happens to the gap between that credit and the new item.
Different priced exchanges. Three choices. Allow different priced exchanges and collect or refund the difference: a dearer item is paid by card at submit, a cheaper one is refunded when the return is processed. Allow different priced exchanges but do not collect or refund the difference: the gap is absorbed and the exchange order shows the item at full price with a matching discount. Do not allow different priced exchanges: only same-priced options are offered. Shop Now has its own settings.
A worked example. A 60.00 hoodie bought for 48.00, swapped for the same hoodie in another size. With Pre-discount credit off the credit is 48.00 against a 60.00 item, a 12.00 gap: refused, charged or absorbed by the Different priced exchanges setting. With Pre-discount credit on the credit is 60.00, there is no gap, and the swap goes through at 0.00 under all three settings; a 75.00 item is then a 15.00 gap judged the same way.
Out of stock. A product whose Shopify quantity is at or below Minimum inventory under Policy > General, Inventory, is treated as out of stock. An open exchange or Shop Now whose replacement is at or below that threshold shows an Out of stock chip on the returns list and a banner on the return page reading The requested replacement is out of stock. It clears if stock comes back. At processing, Automate out-of-stock scenarios decides: on, the exchange converts to the fallback you picked, Original payment method or Store credit; off, the return waits in Needs review with a sentence explaining why.
Note: On the return page each purchased line names how it was chosen and, for an advanced pick, which rule and option. Any difference collected or refunded is a real charge or refund on the shopper's card.
What the shopper sees
- Exchange for new color or size, then a size and colour picker for the same product. A dearer option shows Pay X difference. and a cheaper one Receive X back.; with differences not collected the banner reads Even exchange. With different priced exchanges not allowed, an option at another price is greyed out, and the shopper reads Item not eligible. and then This product is only available at a different price, and different priced exchanges are not offered. Pick a same-priced option, or go back and choose another way to return this item.
- With advanced exchanges on, one extra button per option, named as you named it, with the subtitle Browse the items available for exchange, opening a grid headed Pick a different product of the products in that collection or tag set.
- If the swap costs more they pay by card before submitting; if it costs less, the difference comes back when the return is processed.
- When the policy offers Instant Exchange, a choice between Instant Exchange and Standard exchange on the review page; see Instant Exchange.
The exchange order is created in Shopify when the processing event fires.
The Exchanges card under Policy > General
This section covers the Exchanges card on the Policy > General page. These rules apply to every return policy: how exchange orders are named in Shopify, whether an exchange order can itself be exchanged, which products the portal offers, what happens when the new item costs more or less than the returned one, and how a returned item is valued as exchange credit. Whether exchanges are offered at all is set per policy on its Exchange card, see Exchange (policy card).
Before you start: A return policy with the Exchange outcome on. Stripe connected, if you want to collect a price difference from the shopper's card. See Connecting Stripe.
Settings
In the admin, go to Policy > General > Exchanges.
-
New order prefix: when on, the exchange order ReturnZen creates in Shopify gets a note naming the order it replaces. When off, the exchange order gets no such note. Default: on, with the prefix EXC-.
Note: The prefix you type does not appear on the finished exchange order, which takes Shopify's next order number whether the switch is on or off. Exchange orders are tagged return, exchange, the RMA number and the original order name, so you can still find them by tag in Shopify.
-
Exchanges of exchanges: lets shoppers exchange items from an order that was itself an exchange, up to the limit you type (1 to 10). Default: on, limit 2.
- Match online store product availability: when on, Shop Now, Advanced Exchanges and the exchange picker on returns you create show only products that are available on the Online Store sales channel in Shopify. When off, they also show products that are not on that channel. Default: on.
- Replace Item option: when on, the portal offers the Replace Item option for inline exchanges. When off, the portal offers no exchange options at all, including named Advanced Exchange options. Default: on.
-
Different priced exchanges: what happens when an exchange costs more or less than the item being returned. Three choices:
-
Do not allow different priced exchanges: the swap is refused, and the shopper is asked to pick a same-priced option or another way to return the item. Default.
- Allow different priced exchanges and collect or refund the difference: a dearer item is paid for by card at submit, and a cheaper one refunds the gap when the return is processed. Needs Stripe connected; without it the save is refused and the message carries an Open Stripe settings link.
- Allow different priced exchanges but do not collect or refund the difference: the gap is absorbed. The exchange order shows the item at full price with a matching discount, total 0.00.
Shop Now has its own settings under Policy > Shop Now. See Shop Now.
- Pre-discount credit: when shoppers return a discounted item, lets them exchange it for its full, pre-discount value. Off: the credit is what the shopper paid. On: the credit is the full catalogue price. Refunds and store credit always use what was paid. Default: on.
Policy > General, the Exchanges card from New order prefix down to Pre-discount credit
What the shopper sees
Exchange as a choice on an eligible item, then a picker for the size or colour, and with advanced exchanges on, the other products your rules allow. If the new item costs more and the difference is collected, the shopper pays it by card before submitting. If different priced exchanges are not allowed, a dearer or cheaper option reads This product is only available at a different price, and different priced exchanges are not offered. Pick a same-priced option, or go back and choose another way to return this item.
How it works
Two settings, two steps. Step 1, Pre-discount credit, decides what the returned item is worth as exchange credit. Step 2, Different priced exchanges, decides what happens to the gap between that credit and the new item.
A 60.00 hoodie bought for 48.00 on sale, swapped for the same hoodie in another size:
- Pre-discount credit off: the credit is 48.00 against a 60.00 item, a 12.00 gap. Step 2 then refuses the swap, charges 12.00 to the shopper's card, or absorbs it.
- Pre-discount credit on: the credit is 60.00, no gap, so the swap goes through under every choice at 0.00. A 75.00 item is then a 15.00 gap, judged by step 2.
Any price difference collected or refunded is a real charge or refund on the shopper's card, so check the amounts on the return page before processing.
Note: Pre-discount credit and the Discount distribution options further down the page are separate decisions. Pre-discount credit ignores item discounts entirely; discount distribution decides how an order-level discount is spread across items when it is counted. Turning one on does not switch the other off. See Discount Distribution.
Exchange accounting options
This section covers the Exchange accounting options card on the Policy > General page. Its two switches change how the replacement order is written into Shopify when a return with an exchange is processed: whether the credit from the exchanged items is applied to that order as a discount, and whether Shopify taxes it. They change the order record your team and your accountant see, not what the shopper pays or gets back on that return.
Before you start: A return policy with the Exchange outcome on. Agreement with your accountant on how exchange orders and their tax are to be recorded in your jurisdiction.
Settings
In the admin, go to Policy > General > Exchange accounting options.
- Enable exchange-credit discount: when on, the replacement order ReturnZen creates in Shopify is discounted by the credit from the exchanged items, before any tax is worked out. When off, no discount is applied and the order shows the exchange items at full price, so that credit is not taken off the order's total or off the amount any tax on it is calculated from. Default: on.
- Add taxes to exchange order items: when on, Shopify adds tax to the replacement order, with the one exception set out under How it works. When off, no tax is added to the replacement order's items. Default: off.
Important: Switching the exchange-credit discount does not change replacement orders already created. Only orders created after you save follow the new choice.
Policy > General, the Exchange accounting options card with both switches
What the shopper sees
Nothing in the portal. These options change the Shopify order record.
How it works
Enable exchange-credit discount does not change what the shopper pays or gets back on the return being processed. It can change what they pay or get back on a later return of the replacement order, because that later return reads the prices on the replacement order, and those prices depend on whether the discount was applied when the order was created.
A shopper returns a 60.00 hoodie and takes a 60.00 hoodie in another size. With the discount on, the replacement order in Shopify shows the hoodie at 60.00 with a 60.00 discount, total 0.00, which is what the shopper owes. With the discount off, the order shows the hoodie at 60.00 with no discount, and the 60.00 credit is not taken off the total or off the amount tax is calculated from.
Add taxes to exchange order items, when on, has one exception. The replacement is not taxed when all of these are true:
- The original order recorded no sales tax on its items, and not only because they are set as not taxable or were priced at 0.00 after discounts.
- ReturnZen did not create that original order.
- The return is not a gift return.
- The replacement ships to that order's own address.
- No replacement item is priced higher than the lowest price paid for an item being exchanged.
If any one of them is not true, Shopify taxes the replacement. With the switch off, replacement orders are never taxed.
Exchange inventory locations
This section covers the Locations page, which decides which of your Shopify locations ReturnZen reads when it checks whether a replacement is in stock for an exchange or Shop Now, and where returned items are restocked.
Before you start: A connected Shopify store with at least one location. Exchanges or Shop Now switched on in at least one return policy, otherwise the selection has nothing to do.
Choosing locations
In the admin, go to Shipping > Locations, the Exchange inventory locations card.
- Click Manage Locations.
- Tick each Shopify location ReturnZen reads stock from and restocks to.
- Click Save Locations. The selection applies at once and the page reads Locations updated. If the save fails, the page reads Couldn't save changes. Try again.
Shipping > Locations, the Manage locations window with two of three Shopify locations ticked
Settings
- Exchange inventory locations: the locations that exchange inventory is read from and returns are restocked to, listed in a table on the page. With none selected the card reads No locations selected and ReturnZen looks to all of your Shopify locations for inventory until you choose specific locations. Default: none selected.
Note: The selection here is the store-wide choice. A return policy can narrow it on its Exchange outcome: exchanges and Shop Now on that policy then check stock at the policy's own locations instead.
What the shopper sees
Only replacements in stock at the chosen locations are offered for an exchange or in Shop Now. A replacement below your inventory threshold is treated as out of stock, and the return page shows a notice that clears itself if stock comes back before you process the return.
FAQ
Why does exchanging for the same item show a price difference? The order was discounted and Pre-discount credit under Policy > General, Exchanges, is off, so the returned item is valued at the discounted price the shopper paid while the replacement is priced at full price. Turn Pre-discount credit on and a same-item exchange on a discounted order shows no difference.
Can an exchange order be exchanged again? Only if Exchanges of exchanges under Policy > General allows it. The Sequential exchange workflow condition matches those returns.
Why does the shopper see no exchange option at all? Replace Item option under Policy > General, Exchanges, is off. With it off the portal offers no exchange options, including named advanced exchange options.
Why does exchanging for the same item show a price difference? The original order was discounted and Pre-discount credit is off, so the returned item is valued at the discounted price the shopper paid while the replacement is priced at full price. Turn Pre-discount credit on and a same-item exchange on a discounted order shows no difference.
Why can I not find the exchange order by its prefix in Shopify? The prefix is not written on the finished order, which takes Shopify's next order number. Search by tag instead: exchange orders are tagged return, exchange, the RMA number and the original order name. With New order prefix on, the order also carries a note naming the order it replaces.
Why does the portal show no exchange option at all? Replace Item option is off. Switching it off removes every exchange option from the portal, including the named options from Policy > Advanced Exchanges.
Can a shopper keep exchanging the same item? Up to the limit under Exchanges of exchanges. Switch it off and an exchange order cannot be exchanged again.
Do I need both switches on? Not necessarily. The discount switch decides whether the returned items' credit is written on the order; the tax switch decides whether Shopify taxes it. How tax on an exchange is recorded depends on your jurisdiction, so agree the pair with your accountant before changing them.
I turned the discount off. Why does an existing exchange order still show it? Switching the exchange-credit discount does not change replacement orders already created. Only orders created after the save follow it.
The window says No Shopify locations found. What now? ReturnZen could not read your locations from Shopify. Check the Shopify connection under Tools > Integrations, then open Manage Locations again.
The page reads Couldn't save changes. Try again. What now? The selection was not saved. Open Manage Locations, tick the locations and click Save Locations again.
Do I have to pick locations? No. With nothing selected ReturnZen uses every Shopify location. Pick locations only when some stock must never be offered for exchange, for example stock held at a pop-up store.
Please reach out to support@returnzen.app with any additional questions.