This article is relevant if you are using NetSuite to drive returns processing.
Background
NetSuite acts as a general-purpose inventory management system and is especially well suited for distribution-based operations. The record structures supporting inventory operations are fundamentally organized to reliable model real-world operations and accrual-based accounting.
This is all well and good. However, the challenge often becomes that some record operations are cumbersome due to the number of records that are required to complete a business transaction. The classic cumbersome record operation is returns and exchanges due to the number of possible situations to account for. Please see my 2017 article, NetSuite Driven Returns Flow Design Considerations, including the classic challenge for returns accounting in my 2020 article, Get Control over NetSuite Sales Returns General Ledger Accounting.
We have clients that use native NetSuite ERP in retail operations — meaning, they are not using special point-of-sale software that is highly tuned to a customer retail experience. When working in retail, the customer is standing in front of you seeking to tender an operation. In the customer’s mind, this operation is a single transaction — yet NetSuite is going to need many record-save operations to complete the entire commercial narrative.
Modeling Exchanges in NetSuite
An exchange is fundamentally a return and a new sale. In NetSuite’s world, there is no concept of an “exchange”. Instead, you reach for a Return Authorization Record for the goods to be returned. Then subsequent records must be generated which include an item receipt and a credit memo. You then must reach for a new Sales Order to start the distribution of the new good. The sales order and the return authorization are independent and effectively float (no linkage) from each other. While keeping track of what you are doing, from a sales order, subsequent records must be generated which include an item fulfillment and an invoice. The credit memo in the return authorization process can then be applied to the sales order-driven invoice. More monies may be due on the invoice; or the remaining amounts available on the credit memo can be refunded.
I hope I did not lose you. Click the image for a typical flow.
It is in this scenario that we can see the value of the SuiteClould Development Platform. With NetSuite customization, we can streamline the process to hide all the record details.
A Simplified Retail NetSuite Exchange
Our client appreciated my firm’s capacity to understand accounting and build high-performance NetSuite customizations and applications. As such, Boban D., Senior Technical Analyst, went to work to build a simplified NetSuite retail exchange flow.
Return Authorization (RMA)
In this flow, we start with the Return Authorization (often called an RMA in merchandise-based organizations) and enhance the record for the following:
- Refund Method: we want to know the refund method the customer seeks to use up front. This helps set up the situation to handle monies.
- Item Modified: we need to know if the item being returned is going to need special inspection requirements. If not, we can simply return it to stock quickly.
- Return is Exchange: we need to know if the item is going to be replaced with something else. If not, we can drive an immediate refund. However, if so, we need to drive the replacement side of the transaction (the thrust of this article).
- Auto Receipt and Credit Memo: once the record is saved, behind the scenes, we automatically create an item receipt to put the item back in stock and then we create a corresponding credit memo.
- Auto Transport to Invoice: once the record is saved, we transport the user to the next major step: the invoice.
Click on the image to see it full size.
Invoice Generation
Given we are working with the customer standing in front of us, we do not need a sales order. We can make an immediate sale. We use an invoice versus a cash sale because we need the maximum flexibility to handle what the customer wants in exchange while handling monies.
Thus, we enhance the invoice record for the following:
- Returns Messaging: Although the user is on an invoice record, we show the user that they are in a Returns process flow to give them guidance on the next steps.
- Undo or Cancel: In case the customer changes their mind in the middle of the transaction, we provide a button to unwind all the previous return authorization work completed above. We need this because we are “halfway there” and going backward is messy.
- Custom Return Authorization Link: we create a custom link between the return authorization and the invoice so that we know these two records represent an exchange. Now it is easy to know where we are and the story of the return and invoice is bound together.
- Funds Available: we clearly show the user the remaining funds available so it is easy to keep track of.
- Custom Payment Option: should the value of the items desired exceed the value of the return, we enhance the payment tab to allow recording payment information, such as a new credit card. This is where the NetSuite native Cash Sale record has more built-in capacity over the Invoice — yet the Cash Sale is too rigid for all the possible situations we must deal with.
With this enhanced invoice record ready, the user then can use the standard NetSuite invoice features to record the items that the customer desires.
Click on the image to see it full size.
Invoice Save
When the invoice is saved, additional processing automation completes the transaction:
- Credit Memo Application: the invoice is then paid with funds available from the return authorization credit memo.
- Customer Payment: if more funds are due, a customer payment record is created for the additional amounts and automatically applied so the invoice is “Paid in Full”.
- Refund Generation: assuming no additional funds are required, the invoice is “Paid in Full” but now the remaining amounts on the return authorization credit memo are refunded to the customer.
- Refund/Payment Messaging: clear messaging to the user indicates a refund was auto-generated with a link to get to the details.
- Exchange Receipt: a button is provided to generate a custom PDF receipt.
Click on the image to see it full size.
Exchange PDF Receipt
The customer would like a printed receipt of the exchange transaction. NetSuite’s native Advanced PDF tools are not strong enough to provide all the data needed to generate a complete receipt. No problem! Prolecto’s free of license charge tool, Content Renderer Engine, can easily supply all the data to create a dynamically branded message expressing the exact details of the transaction in a single coherent receipt.
Click on the image to see it full size.
Automate your NetSuite Returns and Exchange Processes
This article is a great example of how to use the NetSuite platform to automate otherwise cumbersome record operations. Returns are an interesting challenge because there are so many different considerations to contemplate. Thus, it is important to plan, model, prototype and test logic in a sandbox environment before attempting to automate something this complex.
If you found this article relevant, feel free to sign up for notifications to new articles as I post them. If you are ready to work with high-caliber professionals that carefully think through business concerns and demonstrate NetSuite software development prowess, let’s have a conversation.