Exchanges involve customers purchasing a new item as a replacement for a returned one. Our customers use Loop as their RMS to process the returned item and create a new exchange order on eCommerce platform.
For both web returns and in-store exchanges, HotWax Commerce being an OMS takes the responsibility of downloading and processing new exchange orders from eCommerce as well as synchronizing them with ERP systems such as NetSuite.
We are currently in the process of designing the workflow for in-store exchanges when Shopify POS is used. In the meantime, let's delve into how the lifecycle of web and in-store exchanges is managed with these systems in play:
The Web Exchange Lifecycle BPM illustrates how exchanges are processed between RMS, eCommerce, ERP, and HotWax Commerce.
In the context of returns, an exchange refers to a transaction in which a customer returns a purchased item and, instead of receiving a refund or store credit, opts to swap the returned item for a different product. This lets the customer exchange the initially purchased item for another one.
To explain the exchange lifecycle, we've taken Loop as the RMS, Shopify as the eCommerce platform, and NetSuite as the ERP system, while HotWax Commerce serves as the OMS.
As discussed in Web Returns Lifecycle, Loop lets customers directly initiate returns against their web orders. If customers want to buy another product by returning an item, the Loop customer portal lets them submit an exchange request.
When customers complete their exchange process, a Return Merchandise Authorization (RMA) is created in Loop in the “Open” status against the return item.
Loop updates the order details in Shopify by creating a return under order, reflecting that a return has been requested by the customer.
Loop also generates an RMA in the “Pending Receipt” status in NetSuite using a third-party integration app like Novamodule. This gives the warehouse teams a heads-up that an order item will be coming back.
To receive the requested new order item in exchange, customers must return the original order.
Customers print the shipping label provided by Loop and prepare the return package to ship their items back to the retailer so that they can receive the new item they requested.
When the return package reaches the warehouse, the warehouse teams initiate receiving of the return item against the RMA and the following actions take place:
Item receipt records are created in NetSuite against the RMA, and the returned inventory is restocked.
The status of RMA is updated from “Pending Receipt” to “Pending Refund”.
Item receipt records created in NetSuite are synchronized to Loop using a third-party integration app. Consequently, return receipt records are generated in Loop.
When item receipt records are generated in Loop, multiple actions take place in NetSuite and Shopify, let’s understand them in detail:
Creating refund records is essential to mark the completion of the return process and closing RMA in NetSuite.
Return receipt records trigger the creation of refund records in Loop.
Customers receive their refund amount when they return an item. In the event where they are returning an item in exchange for another, refunds will not be issued to them because that amount is used as payment for the exchanged product.
Once refund records are created, Loop creates a credit memo in "Open" status of $0 in NetSuite using a third party integration app. This marks the completion of RMA in NetSuite, with its status updating from “Pending Refund” to “Refunded”. Loop also creates a customer refund record against the credit memo and then the status of the credit memo is updated from “Open” to “Fully Applied”.
The creation of refund records in Loop also marks the completion of RMA in Loop, with its status updating from “Open” to “Closed”.
Return receipt records in Loop trigger marking the original order as “Returned” in Shopify and creating a new order in the “Unfulfilled” status. Loop also applies a 100% Loop discount on the new order and links the original order in the extended fields.
Exchange orders are basically new web orders that require fulfillment, so HotWax Commerce processes them similar to how regular web orders are fulfilled.
A dedicated Import Orders
job in HotWax Commerce downloads web orders from Shopify. These downloaded orders are automatically assigned a "Created" status in HotWax Commerce, including exchange orders.
An important aspect to note is that for an exchange order, Loop saves details of the original order in the extended fields in Shopify. Therefore, when downloading exchange orders from Shopify, HotWax Commerce also retrieves these details of the original order and saves them in the communication event.
Learn more about how HotWax Commerce fulfills web orders
HotWax Commerce synchronizes all web orders to NetSuite in the “Created” status and similarly, exchange orders in the “Created” status are also synchronized to NetSuite. When NetSuite imports them, they are automatically assigned a “Pending Fulfillment” status and the details of the original order are saved in the memo.
Learn more about order synchronization between HotWax Commerce and NetSuite
Inventory synchronization process remains the same for the returned item that we discussed in the Web Returns Lifecycle.
When an item from the original order is returned on Shopify, it provides an option to enable the restock returned inventory flag. However, HotWax Commerce does not automatically increase the inventory count even if the restocked return flag is enabled on Shopify. This is because HotWax Commerce lacks visibility into the specific location where the inventory is received. Instead, inventory is updated only when new item receipt records are synchronized to HotWax Commerce from NetSuite.
A scheduled job in HotWax Commerce performs a daily sync of inventory data from NetSuite which means new receipts from returns are automatically synchronized to HotWax Commerce. HotWax Commerce also performs regular inventory synchronization to Shopify which means that any changes in inventory in HotWax Commerce, such as increases resulting from returns, are also synchronized to Shopify.
Upon downloading an exchange order from Shopify, HotWax Commerce automatically reduces inventory from the online sellable count once the exchange item enters the brokering queue. Subsequently, it decreases the quantity on hand once the exchange item is fulfilled, just like HotWax Commerce updates inventory for other web orders.
HotWax Commerce also sends fulfillment updates to NetSuite which updates inventory levels in NetSuite, and provides regular inventory updates to Shopify which also keeps inventory up-to-date in Shopify.
The In-Store Exchanges Lifecycle BPM illustrates how in-store exchanges are managed between RMS, eCommerce, ERP, and HotWax Commerce.
The process of returning an item mirrors the steps previously discussed in the. More specifically, customers visiting the store location, store associates looking up the customer’s order in the Loop POS App, and initiating the return process remains the same.
Often, customers opt to purchase alternative products by returning an item, especially when there are size-related concerns. In this scenario, while processing in-store return, store associates add new items that are being purchased as replacements for the returned item and complete the return process.
Once new exchange items are added, store associates initiate refunds against the returned item and then the return status is marked as "Processed".
Once the return process is completed in the Loop POS Returns App, multiple actions take place in Shopify and NetSuite, let’s understand them in detail:
Loop creates a return under the order in Shopify POS and marks the returned item as “Returned”, restocks the returned inventory and updates the payment status as “Refunded”. In case of exchanges, Loop also creates a new “Fulfilled” order in Shopify POS.
Loop creates a cash refund record in NetSuite and also adds the associated cash sale ID in the memo so that the original order can be easily looked up. When cash refund records are created, returned inventory is automatically restocked in NetSuite.
As discussed earlier, for exchanges, Loop creates a new exchange order in Shopify POS. Exchange orders that are created in Shopify POS are downloaded in HotWax Commerce just like regular POS sales. A scheduled job downloads exchanges from Shopify POS in the "Completed” status and also reduces the inventory for the item sold as part of the exchange process.
A scheduled job in HotWax Commerce synchronizes exchanges in the form of new POS sales to NetSuite and cash sale records are created in the “Deposited” status. Once cash sale records are created, the inventory for the exchange item is automatically reduced in NetSuite.
This process again mirrors the steps discussed in the . The only additional step performed is creating a new exchange order.
Web exchanges with Loop
In-store exchanges with Loop