Add Customer Blanket Purchase Order During Sales Order Entry

This article is relevant if you are looking to produce a more convenient way to create customer based blanket purchase orders or you seek understand how you can dynamically drive NetSuite edit forms.


In my article Advanced Practice: NetSuite Customer Blanket Purchase Order Management I describe the process where a customer’s purchase order is managed by allowing multiple sales orders and invoice reference which effectively consume the PO.

After nearly a year of working with this model, our client realized that all sales orders that reference purchase orders need to work under this capacity.  Simply referencing a purchase order number, as provided by NetSuite’s PO# (internal ID otherrefnum), gives no control or management features. The client changed their business process so that all purchase order based work needs to be of type blanket even if there is only one purchase order being consumed. This would give management the ability to see if the sales team was indeed fully selling against the customer intended purchase requests.

Simplification to Quickly Constitute Blanket Purchase Orders

During Sales Order creation, a sale person could reference an existing purchase order that still had sales capacity available (meaning, the PO was not fully consumed). See related image.

However, we need to get blanket purchase orders constituted to start the process. To make this work faster for the client’s sales team, they desired a way to quickly constitute a blanket purchase order during the order entry process without going to NetSuite traditional record edit functions. Popup windows to create separate records was not desired as it too slow and contextually interrupts the data entry thought processes — especially if a customer is on the phone while entering information.

The key to make this work was to use dynamic variables on the sales order that would reveal themselves when the salesperson selected the “– New –” option on the Blanket PO drop down selector. The extra fields became visible and then could be used to collect validated information. While very simple to understand (as it should be), this demands an advanced use case of the NetSuite SuiteScript toolset to create the intended behavior.  The actual software pattern demands both server side UserEvent code to push down the dynamic variables and client side code to show / hide the form elements based on the change of the dropdown selector.  See related image.

Get the Customer Blanket Purchase Order

With the use of SuiteScript, this article illustrates that the NetSuite platform can be pushed to shape the data entry experience. The use of dynamic variables, versus those that are permanently part of the database, can be used to “get records in play” and drive meaningful action.

Furthermore, like all of the algorithms and software constructs we craft for our clients, our goal is to help our clients get more out of their NetSuite investment by bringing them “all we have” to help them succeed.  Our client’s tell us that we have a powerful capacity to listen, design, craft and produce NetSuite solutions.  They appreciate that we give them anything built from our past experience to the creative process. If you would like this customer based blanket purchase order system, or you have special NetSuite data entry requirements, 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 set up a conversation.

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

| Category: CRM, ERP, NetSuite | Leave a comment

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>