This article is relevant if you are working with NetSuite and you want a professionally branded ship notification message.
Background
For yet another recent client NetSuite implementation, the customer had specific requirements for the ship notification message. Since the release of NetSuite Advanced PDF templates, our inclination is to solve the problem with this technology. Strange enough, NetSuite does not offer the Item Fulfillment record type as a trigger mechanism. They still make the “legacy” simple HTML approach or, if you have NetSuite Web Store, another simple HTML approach. Yes, via Workflows, you can use a “Send Email” action and the reference a custom template. The challenge with the Workflows approach is that you may not get all the data you need. Typically, you are left with going to SuiteScript for a custom solution.
For our client, they need some information that was not available via this Workflow method. From the item fulfillment, they needed the Bill To Address, the Item Rate (price), Packages and images of the items that were being fulfilled. In this case, we need to get data from 4 sources:
- Item Fulfillment: basics of the actual item fulfillment
- Shipment Packages: the specifics of the packages including shipment tracking information
- Sales Order: provides the Billing address.
- Item Definition: provides references to the URLs of the images. In our case, we will connect it to the sales order lines and use a join to the item table.
Solving the Ship Notification Challenge with the Content Rendering Engine
Triggering the Content Rendering Engine
- Workflow Action Script: if desired, connect it to a workflow to be called when an item fulfillment moves to a desired state (e.g., shipped). See example of how this is done.
- User Event: for the SuiteScript developer who likes to code, trigger via a traditional user event.
- Scheduled Script: if desired, fire the template at a specific time or as part of another larger operation.
- Custom Mass Update: should a bulk operation be desired, fire the profile against many records (e.g., monthly customer statements).
- RESTLet: if an external application needs data or should trigger the content, hook via REST.
Get the Content Rendering Engine
See Related Articles
- Learn the Framework to Extend NetSuite Content Generation
- Learn How to Bring NetSuite Subsidiary Data into Advanced PDFs
- Solved: NetSuite Drop Ship Purchase Accruals
- Video: How to Extend Advanced PDFs with Content Renderer Engine
- Understand NetSuite Item Groups vs. Kits to Produce Superior Reporting
- How To: Create Custom NetSuite Workflow action with SuiteScript
- Supercharge NetSuite Advanced PDF/HTML Templates
- Interrogating NetSuite’s Advanced PDF / HTML Templates
- How To: Leverage NetSuite’s Advanced PDF / HTML Generation Tools
Hello Marty,
I had some doubt regarding the custom address in billing. can you please help me out?
Hello Marty,
I had some doubt regarding the custom address in billing in transaction quotes form. can you please help me out?
Hello Sam,
Are you trying to reach out from the Item Fulfillment record to the Sales Order to grab the address record? If so, then yes, the content renderer engine will solve this.
Marty
We are populating data into a itemFulfillment record. We have the full tracking URL for tracking the package. What is the name of the field to store the full URL for tracking against a package in an itemFulfillment record so that in NetSuite the user can click on it and be taken to the site to track the shipment?
NetSuite does not provide this information easily native. This is something we solve with our tools. You may be able to walk the createdfrom field to go to the sales order and then retrieve the tracking information — NetSuite copies it from the item fulfillment tracking array to the sales order.