Learn how retailers can process in-store returns for online orders seamlessly with HotWax Commerce.
Shopify retailers can efficiently manage in-store returns for online orders in two scenarios:
When Using Shopify POS: In this case, Shopify POS is already linked with Shopify e-commerce, providing access to online order IDs within the POS system. When in-store returns are created in Shopify POS for online orders, these return details are stored in Shopify. HotWax Commerce utilizes the 'Import Order Return' job, which works seamlessly for both Shopify e-commerce and Shopify POS, to download refund information and transfer transaction details to the ERP.
The key difference is that when in-store returns occur in Shopify POS, HotWax Commerce captures the facility ID where the returned inventory is received, alongside the refund information. Subsequently, HotWax Commerce manages the inventory restocking based on the facility ID.
When Using Non-Shopify POS: For retailers using non-Shopify POS systems, there is no inherent information about online orders, including online order IDs in the POS system. Consequently, creating returns against these online orders becomes a challenge. HotWax Commerce, as an Omnichannel Order Management system, retains records of online orders on Shopify. Therefore, in-store returns against online Shopify orders can be easily generated in HotWax Commerce.
Store associates can create In-store returns through HotWax Commerce by following the steps:
Store associates can quickly find the relevant sales order by entering essential details such as the Shopify order ID, order name, or external ID on the Create Returns page.
Store associates select the appropriate return facility where the returned items will be processed. They specify the reason for the return and the type of return for each item, such as refund, exchange, or store credit.
After verifying the returned items and ensuring they meet return policy requirements, store associates create the return by entering their unique Employee ID.
Once store associates create a return, the status of the ordered item is changed to “return requested” in HotWax Commerce. Subsequently, store managers have the authority to accept or reject these returns.
Once returns are accepted, all the returned order details are seamlessly pushed to Shopify from HotWax Commerce through the ‘Refund’ Job. The 'Refund' job initiates an API request to Shopify to change the order status to “Returned” in real time. The recommended frequency for this job is 15 minutes to ensure prompt processing of customer refunds.
Store associates can configure whether to accept the return of the product with or without restocking it, depending on the specific requirements set by the retailer. If the decision is to restock in-store order items immediately upon receipt, the inventory changes are updated in HotWax Commerce instantly. These inventory updates are then synced with Shopify through the 'Upload recent inventory changes' job.
Discover how HotWax Commerce efficiently handles exchanges. Simplify your exchange processes seamlessly.
Retailers have the flexibility to create exchanges both in-store and on Shopify. In HotWax Commerce, exchanges are recognized during the process of importing refunds from Shopify when the order information includes the user ID and order line item details but lacks the transaction amount.
Customers we have worked with, use Shopify as their eCommerce platform, NetSuite as their ERP system, Loop as their RMS, and HotWax Commerce as their OMS.
Exchange orders that are created in Shopify are imported into HotWax Commerce just like regular sales orders. Given that exchanges are created by Loop in Shopify, they are assigned the sales channel Loop Exchange
within Shopify. Additionally, these exchange orders have a discount code labeled loop-discount
applied to them.
Consequently, all exchange orders imported from Shopify into HotWax Commerce have a Loop Exchange
sales channel as well as the discount code labeled loop-discount
applied to them.
When a customer exchanges an item for another, it's crucial to link it to the original order against which the new item is purchased. References to the original order stored in Shopify notes are saved in HotWax Commerce as a communication event
. This helps ensure that the continuity of the transaction is maintained and accurately tracked.
The downloaded exchange orders are then brokered to the optimal fulfillment locations by HotWax Commerce.
These exchange orders are also synchronized to NetSuite for further processing. Learn more about synchronization of exchange orders from HotWax Commerce to NetSuite ERP.
Restocking Item from the Original Order
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.
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 ERP systems like NetSuite.
POS exchange sales are similar to other POS sales as both the transactions recorded in Shopify POS. POS exchange sales created in Shopify POS are imported into HotWax Commerce just like regular POS sales.
Given that POS exchanges are created in Loop POS and synced by Loop to Shopify, they are assigned the sales channel Loop Exchange
within Shopify. Consequently, all POS exchanges imported into HotWax Commerce have a Loop Exchange
sales channel as well.
When POS sales are downloaded in HotWax Commerce, POS sales have a Completed
status, the sales channel is set to POS_Channel
, and shipping method is set to POS_COMPLETED
. While, in the case of POS exchange sales, although they also have a Completed
status, their sales channel is Loop Exchange.
Due to this distinction, HotWax Commerce is unable to assign their shipping method as POS_COMPLETED. Instead, it is designated as Two-Day Shipping
as default.
Similar to web exchanges, in case POS exchanges references to the original order stored in Shopify notes are also saved in HotWax Commerce as a communication event
.
These POS exchange sales are also synchronized to NetSuite for further processing. Learn more about synchronization of POS exchange sales from HotWax Commerce to NetSuite ERP.
Restocking Item from the Original Order
When an item from the original order is returned on Shopify POS, HotWax Commerce downloads the return data, including the facility ID where the returned items are received. If the restocking flag is enabled, HotWax Commerce also restocks the inventory based on the captured facility ID.
Explore how Shopify retailers provide diverse options for online product returns with omnichannel retail.
In the world of omnichannel retail, Shopify retailers offer their customers two distinct options for returning online products: Mail Returns and In-Store Returns. HotWax Commerce plays distinct roles in handling these two types of returns:
Mail Returns: Mail returns could be initiated by customers, or by the customer service representative (CSR) team in response to customer requests, which can be received through email or phone calls. Returns are created in Shopify and retailers often utilise third-party return management apps like Happy Returns, Loop Returns, or Returnly to facilitate the management of returns..
Here, HotWax Commerce does not serve as a Return Management System. HotWax Commerce downloads the return data once the return process is successfully completed in Shopify. This downloaded information is seamlessly sent to the ERP systems for financial and accounting purposes without the need for direct integration between ERP and Return Management Systems. This streamlined integration is made possible by HotWax Commerce's built-in capabilities for seamless data transfer between Shopify and ERP systems. In-store returns: For in-store returns of online orders, retailers using Shopify POS can create and manage returns efficiently through the POS system. Shopify POS is well-equipped to handle in-store return requests for online orders, simplifying the process. For retailers using non-Shopify POS systems, HotWax Commerce provides the necessary tools and functionality to create and manage returns effectively through HotWax Commerce.
Explore how HotWax Commerce efficiently manages appeasements to streamline customer service processes effortlessly.
Retailers often provide appeasements in various scenarios, such as:
Appeasement for orders lost in shipment.
Appeasement for a poor fulfilment experience.
Appeasement due to customer dissatisfaction with the product
HotWax Commerce does not have a direct feature for retailers to create appeasements. Instead, Customer Service Representative (CSR) teams can create appeasements to address customer concerns in Shopify. When an appeasement is generated, HotWax Commerce downloads this information along with refund details. In appeasements, the order information contains a User ID and a transaction amount, but it does not contain any data on the order line item. HotWax Commerce syncs the appeasement information for reporting purposes. Retailers can offer appeasement through two methods: A. Offering Another Product: In this scenario, the original product remains marked as ‘completed’ in HotWax Commerce and ‘fulfilled’ in Shopify. However, a new order is generated with a 0 sales total in Shopify, which is downloaded in HotWax Commerce for fulfilment. B. Offering Refunds Without Creating a Return: Some retailers opt to provide a full or partial refund as compensation for post-sale satisfaction. In this case, the customer retains the product, and the order remains “fulfilled” in Shopify and ‘Completed’ in HotWax Commerce. When HotWax Commerce imports refunds, it imports the refunded amount to the customer and includes it in the order details for reporting to the ERP system.
Many times customers visit their preferred store location to return or exchange their online order. Perhaps they received the wrong size, the item is defective, or they simply changed their mind. Shopify provides a streamlined process for returns and exchanges. Store associates can directly process returns using Shopify POS, specify the items customers wish to return and the reason for the return. If they'd like to exchange the item for a different product, Shopify allows them to select the new item directly within the return process.
Shopify has streamlined the returns and exchange process for both customers and retailers. When there is an exchange order in Shopify POS, it creates a return for the items the customer doesn’t want and adds the new items the customer purchased in exchange to the order
This seems straightforward for the initial exchange process, as the transaction details and order information are consolidated within the original order. However, this approach creates complexities for ERP systems like NetSuite or other accounting systems that hold a repository of all the financial records.
Here's where the challenges arise:
Multiple Return Scenarios: Customers may want to return items from their order, the exchanged item, or even a combination of both. Shopify will continue to update the same order with this new return information.
Missing Transaction Details: While Shopify reflects the exchange within the order itself, it doesn't inherently link all transaction details (refunds and additional captures) to specific return/exchange items. This makes it difficult for ERP systems to accurately attribute these financial transactions to the correct returned or exchanged items.
Accounting Discrepancies: ERP systems rely on clear and accurate financial data for GL accounting and posting. The consolidated order structure in Shopify, while user-friendly for returns processing, can lead to discrepancies for downstream systems trying to record the financial trail for each returned or exchanged item.
HotWax relies on unique payment methods like Exchange Credit
and Exchange Payment
to distinguish between the original item value and any additional charges associated with an exchange. This ensures accurate financial records in HotWax and eliminates confusion for integrated ERP systems. These attribution payment methods are internal to HotWax Commerce and are used to handle the attribution logic.
Exchange Credit: This is the amount the customer has already paid for the original item being returned. It's used towards purchasing another item in the exchange order.
Exchange Payment: If the customer exchanges for an item of higher value, they pay the difference. This additional payment is known as exchange payment.
Exchange Refund: After deducting any exchange payment, any remaining amount from the original payment is refunded to the customer for returned items.
HotWax Commerce connects the attribution payment method with the Parent Payment Reference
, linking the exchange order to the Shopify transaction on the original order. This helps track Shopify transactions under one main order and manage financial credits or additional payments related to exchange orders, facilitating the movement of credits and capturing extra payments during exchanges.
HotWax keeps a unified transaction history to keep track of all Shopify transactions in the original order while managing financial attribution to exchange orders. This approach helps avoid cross-order transactions and ensures that all financial activities are accurately recorded and easily traceable. To balance out the payment transactions on the original order, HotWax negates the amount of the exchange order from the original order.
HotWax doesn't simply accept the consolidated order structure from Shopify. Instead, it separates returns and exchange items, creating distinct order records for each action. This provides a clear historical record for each return or exchange, simplifying financial tracking in HotWax and for any downstream ERP integrations.
HotWax Commerce uses a multi-step data fetching strategy to import refunds and exchange data from Shopify. A scheduled job in the HotWax Commerce integration platform fetches all returns and exchanges from Shopify and generates a returns and exchanges feed.
Another job in the HotWax Commerce integration platform reads and transforms this feed. The platform sorts the return and exchange orders, and then HotWax Commerce imports the returns and exchanges into the system.
The two independent jobs in HotWax Commerce then process these orders: the Create Return Order
job imports the returns from the SFTP path, and the Create Exchange Order
job imports the exchanges.
To illustrate how returns and exchanges are managed, let's explore two common scenarios:
When the exchanged item is of greater value than the returned item.
When the exchanged item is of lesser value than the returned item.
Let's consider an example where a customer places an online order on Shopify for three items: Item A, Item B, and Item C, each priced at $10. This order, when imported into HotWax Commerce, will have a corresponding payment transaction of $30 (Shop Pay 1).
Now, suppose the customer returns Item A and opts for an exchange with Item D, valued at $20. In this scenario, the item A was worth $10, while the exchanged item is worth $20. Therefore, the customer will need to pay an additional $10 for the exchange.
This additional payment will be recorded in Shopify under the same order to ensure proper transaction reconciliation. Now there are two transactions recorded on this order in Shopify: the initial transaction of $30 and a second transaction of $10 for the newly exchanged item.
The newly exchanged item in Shopify will be imported into HotWax Commerce as a new exchange order. The $10 (Shop Pay 2) payment for this exchanged item will be recorded on the original order, which includes Item A (returned), Item B, and Item C. Keeping transactions linked as they are in Shopify allows finance teams to easily reconcile their payouts from Shopify with payments on individual orders, as the transactions are logged directly without additional calculations.
Adding all Shopify transactions to the main order, however, inflates the payment captured on the original order. To handle this, HotWax Commerce creates balancing attribution transactions that serve as counterparts to the payments associated with exchange orders.
The two exchange credit transactions show that $10 from Shop Pay 1 and $10 from Shop Pay 2 were taken from the original order and applied to the exchange order. The purpose of the exchange credit transactions is to ensure the payments for the original order are balanced.
Here, a challenge is that Shopify doesn't specify how much credit is applied to new items. To address this, HotWax Commerce calculates this attribution. To determine the value of the payment carried over, we calculate it as follows:
(Exchange Order Total) - (Sum of Exchange Payments Captured) = Credit from Original Order
$20 - $10 = $10
With this handling, HotWax ensures accurate financial records in HotWax and eliminates confusion for integrated ERP systems.
In the event that the customer decides to return item D, an exchange item, they’d be receiving a refund of $20. When this return happens, Shopify will use a refund attribution algorithm that will find the largest payment transaction and attempt to refund the entire amount against it. This ensures that no unnecessary transactions are created and offers easy traceability within Shopify.
In this scenario, when a customer returns an exchanged item, according to the Shopify algorithm, the refund will be issued using the initial $30 transaction (Shop Pay 1), while the payment for the exchanged item is processed separately through a different transaction (Shop Pay 2).
In the event that the customer returns item D along with items B and C, Shopify links refund transactions to the original payment being refunded using a “parent ID”. Since HotWax Commerce has two different orders, it uses the Shopify transaction ID to identify which order the payment was captured on. This ensures that the refund is posted on the same order, maintaining traceability.
In Shopify, all payment captures are against the same order, whether it be for originally purchased items or exchange items. Due to this mixing of transactions in Shopify, refunds are also processed fluidly, where an exchange item may be refunded against a payment captured when making an initial purchase. The end result is that Shopify links the refund transaction to the capture transaction it is refunding, but the payment being refunded is not always the actual payment the customer made for the item being returned.
Original Order : Has a total payment of $40 in Shopify ($30 + $10).
Exchanged Order : Requires allocating $20 from the original order to ensure consistency in HotWax as in Shopify.
In Shopify :The order is refunded through two payments: $30 and $10, totaling $40. When refunds are processed, Shopify allocates them across these payments.
In HotWax Commerce: HotWax needs to split these transactions to match Shopify’s transaction records. For the $40 refund, HotWax splits it into: $20, $10, $10.
There are two valid ways to allocate these amounts
Attribute the two $10 amounts to the exchanged order and attribute the $20 amount to the original order
Attribute the $20 amount to the exchanged order and attribute the two $10 amounts to the original order.
Both methods are valid but create ambiguity in automatically deciding how to allocate these values in HotWax. This ambiguity makes it challenging for HotWax to match refunds accurately with Shopify’s payment transactions. Therefore, HotWax Commerce creates a record of the exchange refund attribution when the exchanged item is returned to balance the payments on both the original order and the exchange order. Importantly, the attribution refund transaction is not linked to a Shopify refund transaction since there are multiple correct ways of attributing refunds. The amount of the exchange refund will always be equal to the amount of the returned items in the exchange order.
When a customer returns item A, valued at $10, and opts for an exchange with another item D priced at $5, they will receive a refund of $5 to compensate for the price difference between the two items. In the event that the customer subsequently decides to return both the exchanged item and all the items from their original order, they will receive a total refund of $25, encompassing the combined value of all the returned items (Item B, Item C and Item D).
In this case, there will be an attribution of $5 to the exchange order with the payment method as Exchange Credit
and as there is no payment captured from the customer thus there will be no Exchange Payment
on the exchange order. By managing all these scenarios, HotWax Commerce ensures that all financial transactions are accurately recorded, facilitating seamless integration with ERP systems and providing a clear audit trail for returns and exchanges.
How does HotWax Commerce ensure accurate inventory updates from Returns and Exchanges?
When a customer returns an item in Shopify POS and exchanges it for another item, the inventory of the exchanged item is decreased in Shopify POS. Once this order syncs to HotWax Commerce in the completed status, HotWax automatically reduces the inventory for the exchanged item. For items returned from the original order, Shopify POS sends the return data to HotWax Commerce, including the facility ID where the returned items are received. If the restocking flag is enabled, HotWax Commerce will restock the inventory at the specified facility based on the captured facility ID.
Order Items
A: $10
B: $10
C: $10
Transactions
ShopPay1: $30
Order Items
Exchange Item
A: $10
D: $20
B: $10
C: $10
Transactions
ShopPay1: $30
ShopPay2: $10
A: $10
D: $20
B: $10
C: $10
Transactions
ShopPay1: $30
ExchangeCredit: $10 parentPaymentRef: ShopPay1
ShopPay2: $10
ExchangeCapture: $10 parentPaymentRef: ShopPay2
ExchangeCredit: $10 Status: Refund parentPaymentRef: ShopPay1
ExchangeCredit: $10 Status: Refund parentPaymentRef: ShopPay2
A: $10
D: $20
B: $10
C: $10
Transactions
ShopPay1: $30
ExchangeCredit: $10 parentPaymentRef: ShopPay1
ShopPay2: $10
ExchangeCapture: $10 parentPaymentRef: ShopPay2
ShopPayRefund1: $30 Status: Refund parentPaymentRef: ShopPay1
ExchangeRefund: $20
ShopPayRefund2: $10 Status: Refund parentPaymentRef: ShopPay2
Original Order
$20
Shop Pay 1
Exchange Order
$10
Shop Pay 1
Exchange Order
$10
Shop Pay 2
Original Order
$10
Shop Pay 1
Original Order
$10
Shop Pay 2
Exchange Order
$20
Shop Pay 1
A: $10
D: $5
B: $10
C: $10
Transactions
ShopPay1: $30
ExchangeCredit: $5 parentPaymentRef: ShopPay1
ShopPay1 Refund1: $5
ShopPay1Refund2: $25 Status: Refund parentPaymentRef: ShopPay1
ExchangeRefund: $5
Discover how HotWax Commerce seamlessly imports returns from Shopify for online returns.
The process of importing returns from Shopify to HotWax Commerce typically involves the following steps:
Retailers can schedule the "Import Order Returns" job in HotWax Commerce to efficiently manage the import of order returns. HotWax Commerce initiates this process by sending an API request to Shopify, specifically targeting orders with a "Refund" status in Shopify, provided they were created after the last job run. In response, Shopify returns detailed return data in JSON format, facilitating the integration of return information. The frequency at which the "Import Order Returns" job is executed can be configured, but a recommended time interval for this job is 6 hours.
Shopify allows the download of up to 250 returns per API call. To ensure data accuracy and prevent potential issues arising from multiple orders within a single return, HotWax Commerce restricts each API call to download a maximum of 100 returns.
Retailers can subscribe to Shopify's real-time return updates webhooks from HotWax Commerce's Job Manager app. However, Shopify warns that these webhooks might not consistently deliver real-time data. For a more reliable method, Shopify advises setting up reconciliation jobs to periodically retrieve return data directly from the platform.
Once the return information is downloaded, HotWax Commerce processes the JSON files by reading them from the file system. Through the 'Process Bulk Imported Files' job, refund records are meticulously created within HotWax Commerce's database. This process ensures that return data is accurately integrated into the system. In cases where data discrepancies or issues may arise, error logs are generated, allowing for subsequent analysis and corrections to be made.
The refund total may differ from the actual sales total of the order. This variance can be attributed to scenarios where customers have paid shipping and handling charges on the order, which are sometimes excluded from the refund amount.
HotWax Commerce operates with a specific inventory management approach for restocking online returns. When inventory 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 in its system 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 the updated inventory count is received from Warehouse Management Systems (WMS) or Enterprise Resource Planning (ERP) systems.