Skip to main content

Use Case: What to Expect in Shopify During a Shop Now Exchange (Upsell scenario)

Written by Harneet Kaur

Plans: Premium, Enterprise | Platforms: Shopify

Overview

Enabling exchanges for the first time raises a common question: what actually happens in Shopify when a customer exchanges an item? This use case follows one complete Shop now exchange paid through Shopify checkout, from the moment the customer submits the return to the moment the new item ships.

At each stage, you see what changes in three places:

  • Your Shopify admin

  • Your AfterShip Returns admin

  • Your customer's returns page

Use this guide to set expectations with your team, plan your fulfillment process, and choose the right settings before you go live.

The scenario

An outdoor gear brand sells on Shopify and uses AfterShip Returns with Shopify checkout. A customer bought a wrist compass and wants to exchange it for a more expensive watch.

Order

Item

Value

Original order

#1124

Suunto M-9 Wrist Compass

$100.00

Exchange order

#1125

Garmin Forerunner 35 Watch, Frost Blue

$300.00

RMA

#2RXIRXWK

The brand has these settings in place:

Settings

Configuration

Exchange flow

Exchange on AfterShip Returns page

Checkout method

Shopify checkout

Discount flow

Discount On (full return value applied as a discount)

Exchange shipping

Free

Fulfillment control

Shopify Flow 'hold on' new exchange orders

Automation

Auto-release Shopify exchange items when the return is marked to a certain status.

The customer pays the $200.00 difference at checkout.

Decide before you go live

The biggest difference with Shopify checkout is timing: Shopify creates and charges the exchange order the moment the customer submits the return, not when you approve it. Plan your setup around that.

If you need to

Set this up

Avoid shipping the new item before the return is on its way

A Shopify Flow hold on exchange orders, plus Auto-release Shopify exchange items

Ship faster while still waiting for proof of return

Set the auto-release condition to In-transit or Delivered

Keep exchange orders at true sales value for a 3PL or ERP

Discount Off flow

Keep day-to-day Shopify sales figures accurate

Discount On flow (not recommended if your prices include tax)

Hold the exchange order until return conditions are met, with no early order creation

Switch to Stripe checkout with the Exchange on your store flow

Run tax accounting reports

Stripe checkout (on Shopify checkout, use the AfterShip sales adjustment report)

The exchange at a glance

Stage

Customer sees

Shopify

AfterShip Returns

1. Return submitted

Return is being processed

Payment collected

RMA created

2. Original order updated

#1124 moves to Return in progress

3. Exchange order created

#1125 created and paid, placed On hold

Exchange order linked to RMA

4. RMA approved, label added

Package on its way, tracking link

No change to #1125

Return shipment tracked

5. Hold released

#1125 moves to Unfulfilled

6. Return received

Receipt confirmation email

Item graded and restocked

7. Exchange shipped

Shipping confirmation email

#1125 moves to Fulfilled

RMA labeled Exchanged

Walk-through the exchange

Stage 1: The customer submits the return

On your returns page, the customer:

  1. Selects Exchange for other items or refund directly.

  2. Chooses Shop now with $100.

  3. Picks the Garmin watch.

  4. Selects a return shipping method and reviews the summary.

  5. Clicks Pay and submit and pays $200.00 through Shopify checkout.

The returns page then shows Your return request is being processed.

Stage 2: Shopify updates the original order

AfterShip Returns creates a return record on order #1124. The order moves to Return in progress, and a return named #1124-R1 appears with the returned item, return reason, and customer note.

AfterShip Returns also:

  • Unarchives the order, so it reappears in your active order views.

  • Adds the tag AfterShip Returns.

  • Adds a note with the RMA number, returned SKUs, Shopify Return ID, and Shopify Return Name.

Important: Do not click Process and refund on this return record. The customer already used this value as credit on the exchange order, so refunding here pays them twice.

Stage 3: Shopify creates the exchange order

At the same moment, Shopify creates order #1125 for the watch.

Shopify automatically creates an exchange order when the customer buyers a higher-priced variant and pays using the Shopify-checkout. In this scenario, the auto-create exchange order automation rules will not apply.

Line

Value

Subtotal, 1 item

$300.00

Discount, AfterShip Returns exchange

-$100.00

Shipping, Exchange shipping

$0.00

Total

$200.00

Paid

$200.00

AfterShip Returns adds this note to the order:
​

[AfterShip Returns] RMA #2RXIRXWK Exchange for #1124 Checkout: shopify_checkout Upsell revenue: $200.00 USD

It also applies three tags:

Tag

Purpose

#1124

Links the exchange order to the original order

AfterShip Returns exchange order

Identifies the order as an exchange

AfterShip replace item

Legacy resolution tag

Because the Flow hold is in place, the order shows On hold with Flow hold: Awaiting payment. Without a hold, the order would be Unfulfilled and ready to ship before the customer sends anything back.

Note: Your custom exchange order prefix (for example, EXC-) does not apply here. Shopify names the order after payment, so it uses your standard order numbering. Use the note and tags to find exchange orders.

Stage 4: The RMA appears in AfterShip Returns

Open the RMA under Returns. You see:

  • The return item and exchange item listed separately

  • A summary showing return value -$100.00, exchange value $300.00, and Total payment $200.00 USD, marked Paid: Shopify

  • Orders #1124 and #1125 linked in the right column

  • A timeline entry: Exchange order #1125 created by automation

  • Return shipments showing No prepaid label

The timeline confirms the timing.

  • Return request created and Exchange order #1125 created by automation share the same timestamp since both the events happen simultaneously.

  • Status updated to approved comes later.

Stage 5: Approve the RMA and add the return label

  1. Open the RMA detail page.

  2. Approve the request if it was not auto-approved (Requires configuration through the Routing rules settings).

  3. In Return shipments, click Add return label.

After you add the label:

  • The customer receives an email with return instructions and the label.

  • The tracking number appears on the RMA list and detail pages.

  • The return status moves from No prepaid label to Pre-shipment, then Shipped and Delivered as the carrier scans the package.

Enable Returns tracking to receive these updates and use them as automation triggers.

Important: Adding the label does not change order #1125 in Shopify. It stays On hold until the hold is released.

Stage 6: The customer tracks the return

The returns page now shows Your package is on its way with the carrier, tracking number, a Track your return button, and return instructions. It also shows a link to exchange order #1125 and a payment summary.

  • Track your return opens your branded tracking page with the full return journey and carrier checkpoints.

    Note: To allow customers to track their return shipments, you need to first setup your returns tracking page in the Returns Page Editor. You can know how with the help of this detailed guide.

Stage 7: The hold is released

When the return reaches the status set in Auto-release Shopify exchange items, AfterShip Returns releases the hold. You can also click Release hold in Shopify.

Order #1125 moves from On hold to Unfulfilled. The Shopify timeline logs Fulfillment was released.

Note: Releasing the hold makes the order fulfillable. It does not fulfill it. You or your fulfillment provider still need to ship the item. If you release the hold in Shopify, the Release hold option disappears from the exchange order detail page.

Stage 8: The returned item arrives

  1. On the RMA detail page, click Receive items.

  2. Confirm the quantity received.

  3. Click Grade item condition and set the grade.

  4. Under Restock at, choose the location.

  5. Keep Send email notification to customer selected.

  6. Click Submit.

  • To automate this step, use Auto-mark as received with a delay and Auto-restock items when the items are marked as received once the grading conditions are met to give your warehouse time to inspect the item.

Stage 9: The exchange order ships

When you fulfill order #1125, it moves to Fulfilled with a fulfillment record (#1125-F1) and its own tracking number. Shopify sends the shipping confirmation and archives the order.

In AfterShip Returns, the RMA shows Approved, Paid, and Exchanged. You can go ahead and mark the RMA as resolved manually or,

Use Auto-mark as resolved to close it automatically.

How Other Exchange Types Differ

Exchange value

The Shopify flow above stays the same. Only the payment outcome changes.Each example follows the same two rules:

  • Extra credit only reduces the price difference between the new item and the returned item. It can't reduce the cost of return.

  • The shopper always pays the full cost of return, and any extra credit they don't use is lost.

So the formula is: (new item price − returned item price − extra credit used) + cost of return. A positive result is what the shopper pays. A negative result is what they get back as a refund.

Example

Price difference

Extra credit used

Plus cost of return

Result

$100 item for $200 item

$100

$5 (all of it)

$10

Pays $105 ($100 − $5 + $10)

$100 item for $102 item

$2

$2 ($3 unused and lost)

$10

Pays $10 ($2 − $2 + $10)

$100 item for $80 item

−$20

$0 ($5 unused and lost)

$10

Gets a $10 refund (−$20 + $10)

In plain terms:

  • Higher-value item: The shopper owes $100 more for the new item. The $5 extra credit brings that down to $95, and the $10 cost of return brings the total to $105.

  • Similar-value item: The shopper owes only $2 more, so they use $2 of the $5 extra credit and the item difference becomes $0. They still pay the $10 cost of return. The leftover $3 credit is lost.

  • Lower-value item: The new item is $20 cheaper, so there's nothing for the extra credit to cover and all $5 is lost. After subtracting the $10 cost of return from the $20 difference, the shopper gets $10 back.

Exchange flow

Exchange on AfterShip Returns page

Exchange on your store

Where the customer browses

Inside the returns portal

Your Shopify storefront

Checkout methods

Shopify or Stripe checkout only

Shopify or Stripe checkout

Instant exchanges

Not supported

Supported with Stripe checkout

How Stripe checkout works

With Stripe checkout, AfterShip Returns captures the shopper's payment right away but holds the exchange order until your conditions are met. This way, you don't ship new items before you receive the returned ones.

  • Order creation: AfterShip Returns creates the exchange order in Shopify when you select Create order in AfterShip Returns, or automatically based on your settings. New exchange orders start as Unfulfilled.

  • Order number: Exchange orders use your exchange order prefix (EXC by default), followed by the original order number and a suffix.

  • Order value: Exchange orders show the full item value by default. To apply an exchange discount based on the pre-tax value of the returned items, contact AfterShip support.

  • Tags: Exchange orders include exchange tags and a tag with the original order number.

  • Original order: AfterShip Returns marks the original order as returned, but not refunded.

  • Instant exchanges: Stripe checkout supports Instant exchanges, so shoppers can get their new item before they send back the original.

The suffix shows how many exchanges the shopper has made against the original order:

Exchange

Suffix

First exchange against the original order

-1

Second exchange against the same original order

-2

Exchange of an exchange order

-1-1

Common Concerns

1. What if the customer never sends the item back?
​
With Shopify checkout, the exchange order exists before the return arrives. A Shopify Flow hold plus Auto-release Shopify exchange items keeps the item from shipping until the return reaches the status you choose.

2. Why was the exchange order created before I approved the RMA?

This is expected. Payment happens at submission, so Shopify creates the order then.

3. Does Auto-create exchange order in store affect this?

No. With Shopify checkout Shop Now exchanges, the rule has no effect whether it is on or off.

4. What if I reject the exchange?

Cancel order #1125 in Shopify as well. Rejecting the RMA does not cancel the Shopify order.

For any further questions or help, contact our chat support team or email [email protected].

Did this answer your question?