SWAP provides multiple accounting options for reconciling returns, exchanges, and gift cards within Shopify. It was initially created to handle the gap between native Shopify exchanges and has different ways of managing exchange orders. You can choose the one that best fits you, and the transition can be done by requesting it from the support team.
With Shopify's native exchange infrastructure now fully supported, we can utilise Shopify’s native Returns & Exchanges solution, which streamlines the return process by directly connecting exchanges to the original order. We recommend applying this feature to utilise Shopify’s enhanced return capabilities, including better financial calculations, refunding, and restocking, all managed within a unified system. Check here for additional details.
Swap has 2 main accounting types:
- Same Value
- Zero Value
Each type may have different approaches when handling the different return cases. See the below description for each situation.
Â
Â
Refunds
- Changes to original order —> there is a negative order adjustment for the refund amount. The refunded item is removed from the order. In a full refund, the final order value is ‘0’.
- For example, an order was made for 3 items of £10 each.
Â
Same Value and Zero Value are handling refunds the same way. - Â
Â
Â
Credit
When a customer returns an item for store credit, the returned item is removed from the original order, which creates a negative adjustment in the sales report. To balance this, a new order (SGC) is generated for the gift card’s value, ensuring the total sales remain accurate. This method prevents refunds from affecting net sales while keeping financial records aligned.
Â
Â
Exchanges
Shopify processes exchanges differently depending on the accounting type.
Same Value
With Same Value, the original item is removed from the order, and Shopify applies both a negative and a positive adjustment to balance the sales report. A new exchange order is created with the same value as the original item, taking discounts into account. If restocking is enabled, the returned item is restocked using Shopify’s refund API, and this is reflected in the original order.
Zero Value
With Zero Value, the original order remains unchanged, meaning no adjustments are made to it. Instead, a new order is created for the exchanged item with a 100% discount, making the final order value zero. Refunds are not issued automatically and must be processed manually in Shopify if needed. If restocking is enabled, the returned item is added back to inventory using the Inventory API instead of the refund API, ensuring the original order remains untouched.
Â
Overview
 | Same Value Accounting Type | Zero Value Accounting Type |
---|---|---|
Original Order | The item is removed from the order. In the sales report- there will be an additional 2 rows since Shopify are preforming positive and negative adjustments to the order | No change is performed on the original order |
Refund Issued | Refund is issued. A ‘0’ value refund will be placed on the original order, so the the order value will remain with the original value in Shopify sales reports | Not issued. Refund will need to be carried out manually on the original order in Shopify. No return is performed to maintain full integrity of original order |
New Exchange Order | New order is created with the same value as the original order (meaning that we take into account discounts) | New order is created with the value of the new item and a 100% discount, so the final order value is '0' |
Restocking the returned item | If the client is using the restocking feature, the refund API call will be used to restock the item(s) and this will appear on the original order | If the client is using the restocking feature, the re-stock does not use the Refund API call to restock. It instead uses the Inventory API call, adding the return quantity directly to the product stock without touching the original order. This means that, unlike the other accounting methods, no note is added to the original order. |
Â
Sales Report Example:
Accounting Type | order_name | adjustment | sale_kind | gross_sales | discounts | returns | net_sales | total_sales |
---|---|---|---|---|---|---|---|---|
Same Value | #1079 | No | order | 600 | 0 | 0 | 600 | 600 |
Same Value | #1079 | No | return | 0 | 0 | -600 | -600 | -600 |
Same Value | #1079 | Yes | return | 0 | 0 | 600 | 600 | 600 |
Same Value | SW-1079 | No | order | 600 | 0 | 0 | 600 | 600 |
Zero Value | #1075 | No | order | 600 | 0 | 0 | 600 | 600 |
Zero Value | SW-1075 | No | order | 600 | -600 | 0 | 0 | 0 |
Related to