Multi-Fulfillments: A NetSuite Item Fulfillment Challenge


This article is relevant for organizations where creating drop shipments or multiple fulfillments derived for one sales order is commonplace and the native per-line shipping is insufficient to support the needs of the organization.


Over the past year, many organizations were forced to change tactics and adjust their business processes to tackle the numerous challenges they were faced with.  Many of our clients processing sales orders to deliver goods have historically created a single item fulfillment to ship products to a single ship-to destination. Of course, all of that changed last year as offices were shuttered, in-person events were canceled and so many people were now working from home.  

As a result, the requirement to create multiple item fulfillment records quickly and easily for a single sales order became an increasing challenge.  Now, just to be clear… I’m not talking about having to create 5 or 10 item fulfillments for different ship-to locations.  For some, it meant having to create hundreds or even thousands of item fulfillments; one for each distinct ship-to location.  One common use case was a sales order was placed by a corporate buyer that wanted to send an item, kit or collection of various items to each of their employees working from home.

One key challenge is that the client would need to generate purchase orders and begin the production process before all of the addresses were known or received. It was impossible to get these ship-to addresses all entered into the lines of the sales order anytime early in the process and prior to the transaction transformations. This only increased the pressure on our clients to ensure that the list of ship-to addresses are correct and complete so that the products can be shipped on time. Oh, what to do… 

Pre-Fulfillment Records

Prior to the NetSuite item fulfillment records being created, our approach to handling this scenario was to start with a distribution of the goods contained on a sales order across several fulfillment groups consisting of pre-fulfillment records (PFs). 

We provided two (2) different methods to handle the distribution and routing of the items and quantities to be shipped to the various locations. For sales orders with a variety of products being shipped to less than fifty (50) ship-to locations, we enhanced the sales order user interface to enable a manual entry method with rapid copy and cloning features to make the UX easy to handle.

For larger scale multi-fulfillments, we developed a template (Excel) to enable a simple drag and drop into NetSuite to create all the required pre-fulfillment records.

Fulfillment Group Creation (UI)

For the manual entry method, we added a new subtab on the sales order to allow users to enter those pre-fulfillment product definitions and shipping details.

When the user clicks on the Specify Pre-fulfillment Details button, a pop-up window appears that enables the user to easily break-down and split the items and quantities to be shipped to each distinct ship-to address. 

This intuitive entry overlay will track how many pieces still require distribution as you create the fulfillment groups. Fulfillment groups contain independent ship dates, ship methods, ship address, and the item(s) to be shipped to each destination. 

With simple “Add” and “Copy” operators on both the fulfillment group level and the item level, the entry is quite rapid for the user.

If a user enters an item quantity greater than the available quantity, then the field will highlight in error to prevent over distribution.

Check out this video demonstration of creating multi-fulfillments via the UI.

Fulfillment Group Creation (Import)

For orders with many ship-to locations, we built a separate drag-and-drop upload method that is able to consume either a CSV-formatted file or an Excel (.xlsx) file to automatically create pre-fulfillment records.  Of course, we provide a template that users can download from this page to ensure that the data is properly aligned for upload. 

Here is a video of the fulfillment group generation via CSV import

UPDATE: We have enhanced the import UI to allow for pre-classifications and no longer require a single item fulfillment prior to upload.

Before this upload process actually kicks-off, some basic data validations are first executed to help avoid common user errors when handling these lists.  These pre-upload validations include  confirming required fields are populated and that data types of each field match the respective column heading.  We also perform address validation checks for US-based shipping addresses. 

Once the upload process is complete, the pre-fulfillment records can immediately be viewed from the Sales order record.

Auditing and Reconciliation

Now that pre-fulfillments are loaded, there are several sub-tab searches and auditing tools available to allow for reconciliation of every item being shipped and to ensure no items are left behind. In the image below, you can see mismatch summary searches, status of the import processing, and all of the items compared to both lines on the sales order vs. pre-fulfillment records.

Fulfillment Transformation (Map/Reduce)

Now that the pre-fulfillment records have been uploaded, a MultiFulfill function can be kicked-off by the user via a custom button on the sales order.  This action will launch a Map/Reduce script in the background to create native NetSuite item fulfillment records; one for each ship-to address containing the items and quantities to be shipped to each location.


Multiple drop shipments and item fulfillments can be challenging to manage within the native constructs due to high transaction line counts and coordinating items to all shipping addresses, where you need to enter the same address on multiple lines. Three (3) items per fulfillment for five hundred (500) destinations yields a 1500 line sales order when using native means. This is simply unmanageable in our eyes.  The problems are often further compounded when these shipments are not handled by an internal warehouse, but instead are  being drop-shipped by vendors and/or third-party logistics providers (3PLs).

These operations have matured and run to scale with certain clients performing thousands of fulfillments per sales order on a regular basis. Defining the addresses and items is a challenge no matter what tool you use, but we strive to make it as least painful as possible with our toolsets.

If you’re a high volume shipper looking to order bulk quantities and then automatically transform them into multiple shipments, drop us a line via our contact us to see if some of our common practices and solutions would work for you.

Share on facebook
Share on twitter
Share on linkedin
Share on pinterest