Exchanges
Let them choose the replacement
A real exchange, not a refund with a note attached. The customer picks the variant from your live catalogue and Shopify decides what, if anything, changes hands.
Choosing the replacement
When a customer chooses to exchange, they get your actual catalogue — the other variants of the item, with their prices, options and images, read from Shopify at that moment. If you allow it, they can swap for a different product entirely.
Only the variant id ever comes back from the browser, and even that is treated as a question rather than an answer: the title, price and availability are all re-read from Shopify on the server. A crafted request cannot turn a fifteen pound t-shirt into a two thousand pound coat.
Same price
The most common exchange: a different size or colour at the same price. Shopify settles it at nothing owed in either direction, and the request completes.
Cheaper replacement
The customer is owed the difference. Shopify works out how much, your team confirms it, and it is refunded through Shopify.
More expensive replacement
The customer owes the difference. Shopify raises the balance on the order, and the request stays open — visibly — until Shopify confirms it has been paid.
About the estimate
The portal shows the customer a likely difference, labelled as an estimate, and it is calculated from what they actually paid — not the list price. That distinction is not cosmetic: an item bought in a sale and swapped for the same item at full price leaves a real balance to pay, and an estimate built on list prices would call that no difference at all.
Where the app cannot compare honestly — an order placed in another currency, or a price it does not know — it declines to show a number and says the team will confirm the exact amount. The authoritative figure always comes from Shopify at the moment of processing, and that is the one your team confirms.
When the customer owes money
Swapify+ does not take payments. When an exchange leaves a balance, Shopify raises it against the order and you collect it the way you already collect money — Shopify's own invoice, or however you normally handle it.
Until that balance is settled, the request sits in Awaiting customer payment and nobody can quietly mark it finished. It completes when Shopify confirms both that the exchange was processed and that the money arrived, because either one alone is true of a request where nothing has happened yet.