When companies manage their inventory in NetSuite, there are times when it is misstated due to miscounts, inventory spoilages, theft, or any other reason. When this occurs, they use NetSuite’s native inventory adjustment transaction to adjust the quantities to the correct level.
On this transaction, it is required that the NetSuite user selects the GL Account that the transaction is going to be tagged to. For most companies, the users creating the inventory adjustments are not aware of the correct GL account to select, as they are supply chain users and not traditional accounting users. This can cause delays in the inventory adjustments being created, as the supply chain users have to reach out to the accounting team to confirm that the correct GL account is being selected. To avoid these delays and potential account selection errors, companies can leverage NetSuite’s custom record and custom workflow capabilities to create Inventory Adjustment Reason Codes.
The reason code is a custom field that lives on the inventory adjustment transaction, in which the supply chain user selects a value in its dropdown list each time they are creating an inventory adjustment. When that value is selected, it automatically populates the GL account and the segments on the transaction. The supply chain user no longer has to worry about the GL account, and just has to make sure to select the correct reason code value. To configure Inventory Adjustment Reason Codes in your NetSuite, there are going to be 5 steps.
- Create the reason codes file.
- Create the custom record.
- Import the reason codes.
- Create the custom field.
- Create the custom workflow.
Reason Code File
- As stated previously, when the reason code is selected on the inventory adjustment transaction, it automatically populates the header fields that you want it to (except for subsidiary).
- If you want the reason code to populate GL account, department, and class, then you will need to create a CSV File with the first column being Reason Code Names, and the next 3 columns being GL Accounts, Departments, and Classes.
- This file should be created by your supply chain team and finance/accounting team together, so that the reason code and associated GL account are correct.
- Example:
- Reason Code Name: Scrap
- GL Account: 55000 Scrap Inventory
- Department: Supply Chain
- Class: Product A
- Save the CSV File.
Custom Record
- In NetSuite, create a new record type and name it Inventory Adjustment Reason Codes.
- On this record, we are going to add 3 fields.
- GL Account
- Department
- Class
- The only field needed here is GL account, but if you want the reason code to populate other fields on the inventory adjustment transaction like department and class, you’ll need to add them to the custom record.
- When creating the GL Account new field, type GL Account in the Label field, make the Type = List/Record, and the List/Record = Account. Repeat this process for department and class but change the Label and List/Record to Department and Class. We recommend that you make the GL Account field mandatory on this custom record.
- Save the custom record.
- Now we have a record type set up with 4 total fields.
- Name (this is the reason code name)
- GL Account
- Department
- Class
Reason Code Import
- Now, we will want to import the reason code CSV File to create the reason code records that store the reason code name, GL Account, Department, and Class.
- In NetSuite, navigate to Set up > Import/Export > Import CSV Records.
- Import Type: Custom Records.
- Record Type: Inventory Adjustment Reason Codes.
- Map the fields on your CSV to the fields on the inventory adjustment reason code record.
- Once the import is successful, navigate to the list of custom record types, locate Inventory Adjustment Reason Codes, click the associated List link, and you will see the list of reason code records.
Custom Field
- Now, we will create the reason code custom field that will live on the inventory adjustment transaction form.
- In NetSuite, navigate to Customization > Lists, Records, & Fields > New.
- Label: Reason Code.
- Type: List/Record.
- List/Record: Inventory Adjustment Reason Code
- In the Applies To subtab, select Inventory Adjustments.
- Press Save & Apply to Forms and then ensure the Inventory Adjustment form is selected.
- Then, customize the Inventory Adjustment form by moving the new Reason Code field towards the top of the form.
Custom Workflow
- Create a workflow, name it Inventory Adjustment Reason Codes Workflow, and configure the setting below.
- Record Type: Transaction.
- Sub Types: Inventory Adjustment.
- Events: On Create, On View Or Update.
- In the workflow, create one state and name it Reason Code Actions.
- In that state, configure the actions to match the ones in the screenshot below.
- For the first 3 After Field Edit trigger actions, the Triggering Field is the Reason Code field.
- Cost Center is equivalent to Department and Business Unit is equivalent to Class.
- For the last After Field Edit trigger action, the Triggering Field is Subsidiary.
- How these actions look on the inventory adjustment transaction form:
- The first 4 actions disable the fields so that the user is led to manually select the Subsidiary field first.
- Once the subsidiary is selected, the Reason Code field is changed to Normal, in which the user selects a value for that field.
- Once the reason code is selected, the GL Account, Department, and Class are automatically populated, but left as disabled because the supply chain user won’t have to fill them out.
- Then, the supply chain user fills out the adjustment line items and saves the inventory adjustment transaction.
Takeaways
- Now that your inventory adjustment reason codes are configured in NetSuite, your supply chain users will no longer have to reach out to the accounting team to confirm that the right GL Account is selected on their inventory adjustment transaction. All they will need to be trained on is selecting the correct reason code. If you would like more information on configuring these reason codes, reach out to NetSuite consultants at RSM US LLP.