• Home
  • NetSuite Tips & Tricks: Processing Internal Sales Orders in NetSuite
Category: Uncategorized

NetSuite Tips & Tricks: Processing Internal Sales Orders in NetSuite

Internal sales orders emanate from requisitions of inventory for sale that are intended for internal use. This process is common to software/tech industries and other company start-ups that heavily engage in product development and other R&D initiatives which require certain departments to continually test and enhance the products they sell to end customers.


The process starts with a purchase requisition sent by the requesting department or employee. Once requisition is approved, the warehouse management team determines whether to procure/build, or source from existing stock. Inventory is then shipped to the requesting department/employee based from the date the request is needed. The inventory stock sent to the requestor is either treated as a fixed asset or expensed outright. The choice to either expense or capitalize the asset is a matter of company policy.


Currently, the challenge with recording the internal sales order in NetSuite is during shipment of inventory to the requestor. This is because when an item fulfillment is recorded against a sales order to record the shipment, it treats the transaction as a sale and therefore Cost of Goods Sold is recognized. Another challenge is how to recognize the expense or capitalization of the inventory stock as fixed asset.

Below is an illustration of the process flow:

The same steps are observed during the purchase requisition process and purchase order receipt. A custom solution is created in order to streamline the process of shipping inventory to the requestor and reclassifying the inventory shipped as fixed asset or expensed outright.


Below is a brief summary of how the process is assimilated into NetSuite:

1. A button is displayed in the approved purchase order that will allow the user to ship inventory to the requesting department/employee:

2. A script is used to determine whether the inventory requested is available or not. If inventory is available, a script will auto-create a transfer order linked against the purchase order and the PO lines are closed. Otherwise, the user will follow the same steps of receiving the order as a regular PO. Once line items are received, the script will auto-create the transfer order and the item fulfillment.

Purchase Order:

3. The item fulfillment is simultaneously created against the transfer order in this stage. Both transactions are auto-created through a script.

4. A sublist field is created in the line item level of transfer order forms. This field is used to determine whether the transaction is an internal sales order or a regular transfer of inventory.

5. A placeholder location is also created to track inventory stock shipped as internal order.

6. The user will have to manually process the item receipt from the transfer order to recognize the receipt of inventory by the requesting department/employee.

A script is used to auto-create a negative inventory adjustment after recording the item receipt. The adjustment is made to either reclassify the inventory asset shipped to the requestor as a fixed asset or as an expense.

Note: The adjustment account used in the inventory adjustment should have a Fixed Asset account type in order for the system to recognize the transaction as a fixed asset and record deprecation. This is also possible only if the Fixed Asset Management bundle is installed in your NetSuite account. The account type should be Expense for internal sales orders that are treated as outright expense.

Some clients may opt to use the inventory transfer to record the shipment if the receipt and shipment are simultaneously performed and there is no need to track the receipt of inventory by the requestor. Other clients may prefer to still create a sales order to recognize the shipment however, there is an additional enhancement needed to reverse the recognition of Cost of Goods Sold during fulfillment.

If you want to know more about this solution, you may email us at: sales@upayasolution.com or call us at: +1.408.899.4577

Hope this quick read was helpful!!!

Till Next Time,

Upaya’s Team

Starting the conversation is easy.

You're just a few keystrokes away from a conversation that could change your business.

Message sent. We'll get back to you soon!

Contact us

Leave us a message, and we will reply shortly.

Required *