This article is relevant if you are seeking to produce a NetSuite shipment from an item fulfillment request.
Background
My firm is often asked to produce sales order integrations between NetSuite and the warehouse. Oftentimes, a warehouse may be using another business system (abbreviated as WMS for Warehouse Management System) to manage its inventory practices. While I have written on WMS integrations patterns before, a common United States practice is to work with Third-Party Logistics (3PL) companies to outsource the warehouse operations.
NetSuite Driven 3PL Operations
When working with our clients, especially those that are trying to get the maximum value from their NetSuite investment, the idea is to have all orders, from any source (such as eCommerce, phone, or large retailer), centralized into NetSuite. Furthermore, the goal is to run a perpetual inventory so that management can make proper assessments of fulfillment capacity while they plan their supply chain.
Under this model, you can treat a 3PL as a puppet to the explicit directions of the managers of orders and inventory. Under this philosophy, a 3PL should exercise little to no judgment on what to fulfill.
In contrast, I have seen clients have models where the sales order is sent to the 3PL for them to decide what to fulfill. This is often the case where a company did not make NetSuite the order hub; they may have had their Shopify eCommerce orders be sent directly to the warehouse to be fulfilled and we only learn of the order and shipment when the warehouse sends tracking information. I call this a “follower” model and it leaves you vulnerable to the decision-making and practices of another company — generally considered a poor business practice.
NetSuite 3PL Integration Pattern
As such, the basic best practice pattern to fulfill a Sales Order looks as follows:
- Approve Sales Order: in order to fulfill, we need the order to pass business rules so it can be approved; this allows us to obtain item commitments. Readers may be interested in my article, Learn How to Build Scalable NetSuite Sales Order Practices.
- Generate Fulfillment Requests: a relatively recent innovation by Netsuite is the item fulfillment request record. The power of this record is that it more closely connects the story of sending an instruction to a 3PL; a request thus can be rejected or fulfilled.
- Fulfill the Request: a 3PL can send back information about the request including the quantity shipped and the tracking information. This then can produce a conventional NetSuite Item Fulfillment, in Shipped status, to allow us to capture costs of goods sold and decrement inventory. Readers may be interested in my article, Best Practices for Automating NetSuite Invoice Generation, to learn how to auto invoice from shipments.
SuiteScript to Generate Item Fulfillments from Fulfillment Requests
As we produce technical integrations for our clients, we are always close to the SuiteScript API performing our automation. Here, when the 3PL indicates they have shipped, we need to pivot from a Fulfillment Request to an Item Fulfillment. To perform this, you need to do the following undocumented Sales Order transformation:
var ifRec = record.transform({ fromType: record.Type.SALES_ORDER, fromId: soId, toType: record.Type.ITEM_FULFILLMENT, isDynamic: true, defaultValues: { "fftreqid" : ifReqId } });
Here the parameter fftreqid is the Fulfillment Request internalid. Other default values may need to be supplied as well depending on NetSuite’s configuration. Of course, anything undocumented is subject to some risk as later things can unexpectedly change.
Work with NetSuite Experts
The NetSuite business system is comprehensive. In the hands of the right actors, the idea of having a central business system that allows you to lower your management cost and increase your profit is feasible — yet I see many clients struggle with realizing this possibility.
The key is to produce the mixture of the right talent applied against the power of NetSuite’s platform architecture. Our firm is recognized as the leader in tackling complex accounting and business operations through the use of NetSuite innovations and automation. Thus, our clients say they appreciate the ability to solve their NetSuite-related challenges so they can focus on better business operations.
If you found this article relevant, feel free to sign up for notifications to new articles as I post them. If you desire a professional team devoted to your NetSuite-driven business success, let’s have a conversation.
Hello Marty! I believe automation is the need of industries and especially when it comes to the logistics and supply chain industry. The modern-day automated warehouses and inventory management system helps the company to increase productivity. Thank you, keep sharing.