Exchange Accounting Overview (Advanced)


Exchanges are integral to any return policy because they allow you to retain a portion of your return revenue and allow customers to get a product they love and become a loyal customer. Unfortunately, there is no perfect way to facilitate exchanges in Shopify. 

The purpose of this article is to help you understand why there are limitations with exchanges in Shopify, how Loop facilitates exchanges and the impact of the interaction in Shopify due to the limitations. The Exchange Accounting Options article covers potential options for these limitations; however, reading this article is strongly recommended to help you understand and select the best option for your business. 

In this article, we will cover:

  • How Shopify handles Refunds (important to understand first)
  • How Loop facilitates Exchanges
  • Limitations of Facilitating Exchanges in Shopify

How Shopify handles Refunds

Shopify was built to handle refunds only, so it's important to understand how refunds function in Shopify in order to better understand the limitations of facilitating an exchange in Shopify. Shopify does not have native support for exchanges (returning a product and receiving a new product without receiving a refund) because they do not provide the option to:

  • Swap a product from a fulfilled order with another
  • Transfer a sale from one product to another
  • Refund a payment to anywhere other than the original payment method
  • Associate a new product with an original purchase

When a refund for a product occurs in Shopify, there are two separate interactions that occur simultaneously:

  1. Return - product is ‘marked returned’
  2. Transaction - money is issued back to the customer

Return - product is ‘marked returned’

  • Tells Shopify that a product is being returned
  • Return events are reflected in Shopify reporting in the following manner:
    • Creates a return event (return row): 
      • Removes net sales 
      • Removes tax
    • Creates an order adjustment (+) 

Example: Order + Return rows in Shopify

Transaction - money is refunded to the original payment method

  • This interaction includes money to be refunded to a customer's original payment method
  • Transactions are also reflected in Shopify reporting in the following manner:
    • Creates an order adjustment (-)
      • Decreases net sales
      • Adds a returns value

Example: Order + Transaction row in Shopify.

Refund = Return + Transaction Combined 

Example: Order + Return rows + Transaction row in Shopify 

When executed together as intended by Shopify, the return order adjustment and transaction order adjustment cancel one another out, leaving behind a clean return row and accurate totals.

Why does Shopify use the order adjustment if they just cancel out?

Order adjustments are the mechanism that make it possible to issue partial refunds and allow transactions (money back to customer) that are not tied to a product for scenarios such as: customer forgets to put in discount code, product is not as expected and discount is issued, etc.

How Loop Facilitates Exchanges

As stated above, Shopify does not have native support for exchanges, only refunds. Below is how Loop handles exchanges in Shopify with the objective of preserving a seamless customer experience by enabling exchanges without requiring additional payment from the customer.

When a customer submits an exchange via the loop customer portal, there are two primary components to the exchange: the return and the new exchange order:

  1. When the exchange processes, Loop marks returned products as "returned" in Shopify without refunding money to the customer
  2. When the exchange processes, Loop creates a new order in Shopify containing the product(s) selected in the exchange and marks it as paid, to trigger fulfillment

Limitations of Facilitating Exchanges in Shopify

Now that we understand that Shopify cannot natively facilitate exchanges, how Shopify facilitates refunds and how Loop facilitates exchanges in Shopify, we can outline the potential limitations that may arise:

Limitation 1: Loop marks products as "returned" in Shopify (return) without refunding money to the customer (transaction). This creates an unwanted positive return order adjustment in Shopify reporting without the negative transaction order adjustment to cancel it out. 

Note: This occurs for both exchanges and store credit returns.

Why does Loop do this? Marking products returned in Shopify preserves product accounting, creates a “paper trail” for products, and allows for restock. In other words, it tells a merchant which products came back

How does Loop do this? Shopify’s refund engine is used to tell Shopify that a product is being returned and, if applicable, restocked

Limitation 2: Loop creates a new order in Shopify containing the product(s) selected in the exchange and marks it as paid. Since we are not actually collecting payment for these products, the order does not have a payment method and the actual transaction still lives on the original order.

Why does Loop do this? Loop has to get the new products into Shopify so that they can be processed and shipped to the customer.

How does Loop do this? Loop creates new exchange orders using the Shopify Order API, mimicking the functionality present within the admin.

Limitation 3: When Loop marks products as “returned” in Shopify, the tax is removed on the original order on the return event row, so Shopify will underreport taxes unless tax is accounted for on the new exchange order.

Limitation 4: Upsell payment is captured in Stripe, a third party processor, at the time of return submission. Upsell payment does not flow through a native Shopify payment gateway and Shopify reports on the sale at time of exchange order processing. This requires reconciliation between what was collected in Stripe and what is reported in Shopify.


There is no perfect solution for exchanges in Shopify and we've outlined the primary limitations that can occur. There is not a one-size-fits-all configuration, but Loop has created different options outlined in the Exchange Accounting Options article to help enable the best exchange accounting process for your needs. Please read the article to determine which option works best for you and reach out to if you need any additional support.

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.