Learn how to Consolidate Multiple NetSuite Sales Orders to One Purchase Order

This article is relevant if you are seeking to consolidate NetSuite sales orders on to a single purchase order.


A client recently asked us to offer thinking on how they can increase their purchasing power on their product buys. Their vendors offered incentives if order sizes were over a particular amount. In particular, they worked with a couple of suppliers that offered custom product configurations. These configurations came from individual sales orders and the normal course of business was to use NetSuite’s special order feature to take delivery before they were ultimately given to the customer. ¬†NetSuite’s item definition had been modified to distinguish custom configuration products from other products.

The client’s practice was to collect sales orders each week and then manually create a purchase order for each custom configuration supplier. The process involved running saved searches to find new sales order line data with applicable items and then use spreadsheets to help organize the work to manually craft a single purchase order for each related vendor. The process was slow and error-prone. There had to be a better way.

Linking Sales Orders Lines to Purchase Order Lines

Immediately I saw the pattern in the client’s work. ¬†Each sales order line must to link to a respective purchase order line. ¬†NetSuite’s native mechanism is to link sales order lines to respective purchase order headers (main line in NetSuite nomenclature). This was not sufficient in the client’s mind; they wanted to see if delivery on the purchase order line indeed took place —¬†sales people needed to quickly review if a¬†sales order respective line had arrived in the warehouse without having to open the purchase order and find the line.

Auto Sales Orders Line Lookup to Generate Purchase Order Lines

With a structural cross-link between a sales orders line and a purchase order line (by the way, it is really nice that one new NetSuite transaction column can be leveraged across transaction types; this pattern makes the platform very flexible), the key now was to remove the manual work from the process. As orders were entered, my team created some suitescript to look for all outstanding sales orders where candidate line items may be consolidated on to a purchase order. We stamped each sales order line with the purchase order reference; naturally, we also stamped each purchase order line with the respective sales order line.

The suitescript program could be run as often as the client liked. ¬†The algorithm was intelligent to notice if matters changed on respective sales orders and would clean up references as needed. This worked well because information could be gathered on a purchase order over time until order size criteria was met (typically under a week). However, once a purchase orders had been distributed, validation logic prevented the related sales order line from being changed as it was “too late” to make changes.

Note, we have crafted other mechanisms to control purchase order generation.  See article Learn the SuiteScript Pattern to Generate Target Purchase Orders from Sales Orders for how to drive one sales to multiple purchase orders.

Linked Line Displays

Using NetSuite’s sublist feature (this point-and-click customization feature is often under utilized and can be very helpful to provide actionable information on record structures), we made it easy to see linked purchase order and sales order lines. Thus salespeople and purchasing managers could¬†now easily browse the transaction set without having to do manual inquiries. ¬†All of this became natural to the client for their business practice — and of course, saved time and eliminated errors!

Point and Click Customization with Helper SuiteScript

This innovation is a great example of how to use the NetSuite platform to optimize day-to-day operational practices. The client was very satisfied because of all the time saved by all actors. ¬†Should you see an innovation that will¬†streamline your business operation, let’s have a conversation.

Be Sociable, Share!

Marty Zigman

Holding all three official certifications, Marty is Southern California's NetSuite expert and leads a team of senior professionals at Prolecto Resources, Inc. He is a former Deloitte & Touche CPA and has held CTO roles. For over 25 years, Marty has produced leadership in ERP, CRM and eCommerce business systems. Contact Marty to setup a conversation.

More Posts - Website - Twitter - Facebook - LinkedIn - Google Plus - YouTube

| Tags: | Category: NetSuite | 2 Comments


  1. Jonathan
    Posted March 9, 2018 at 1:01 am | Permalink

    We’re drop-shipping items through a dozen of our suppliers. Using the native functionality in NetSuite to generate a Purchase Order off a drop-ship line item in a Sales Order, we send them a copy of our Purchase Order and associated line/item/qty information, etc.

    As you’d be aware, NetSuite requires an Item Fulfilment be created for drop-ships rather than a receipt which can only be initialised off the Sales Order, which is straightforward from the UI, however using SuiteTalk, there doesn’t seem to be a clear mechanism to map from PO line to SO line.

    Could you tell me what is the recommended approach when raising an Item Fulfilment off a drop shipped PO using SuiteTalk?

  2. Posted March 10, 2018 at 10:50 am | Permalink

    Great question Jonathan. We haven’t work that flow before in SuiteScript so I don’t have the answer at hand. Perhaps someone in the community can offer thinking. However, you might consider this pattern which solves many problems for clients who want proper drop ship accounting to line up with revenue recognition. Under this method, you could get complete control via web services.



Post a Comment

Your email is never published nor shared. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>