Proposal For NetSuite – Lithotone Integration

PROPOSAL SUMMARY 

This proposal outlines the scope of order and fulfilment integration between NetSuite and Lithotone, and also the limitations and drawbacks of this integration. 

REQUIREMENT 

Taycobrace needs to integrate the orders and fulfilment between NetSuite and Lithotone. They need the sales order details created in  NetSuite to generate orders in Lithotone. And they need to create the Item Fulfillment for the Sales order in NetSuite based on the status of the Order in Lithotone. 

OUR SOLUTION 

With the API provided by the Taycobrace, we can connect with the Lithotone from NetSuite. 

1. Custom Record  

We will create a custom record in NetSuite for the error handling. If any error occurs while creating an Order and Item Fulfilment, we will create a custom record. This record will have the fields to store the Order ID and the reason for the error. 

2. Order Creation 

We need to create a custom field in the sales order to store the Order ID from the Lithotone. The order creation in the Lithotone is a scheduled process, we will deploy a scheduled script in NetSuite to send orders to Lithotone.  
We use a saved search to identify all the sales orders in NetSuite that has no value in the custom field (which stores the Lithotone Order ID) and status pending fulfilment.   
We will use the “ Order Header” API to create an order header in Lithotone and its response will be the Order ID, and we will store this value in the custom field. Then we call the “Order Line” API to create the line items for the order in Lithotone.   
If any error occurs, we will create a custom record for the error handling. 

    3. Fulfillment Creation  

The Item Fulfilment record creation in NetSuite is a Scheduled process. We will develop a scheduled script that will run every day. Using saved search we will find the Sales order that has Lithotone Order ID and status pending fulfilment,  and we will use “Order Status” API to get the status of the Order in Lithotone. If the response is “Shipped” then we will  call the “Order Details“ to get the line items in the Lithotone.  In order to get the tracking numbers for the order we will call the “Order Tracking” API. With this information, an Item Fulfilment record for the order will be created in NetSuite.   

 
Note : We use multiple API calls to produce orders and Item Fulfillment, increasing the time required to create a single record. For the creation of an order in Lithotone, two API requests are required. The creation of an Item Fulfillment record in NetSuite requires three API calls.   

PRE-REQUISITES 

  • We require JSON files of all the API requests. The API documentation we have contains only the parameters (and its definition) used by the API; it lacks request and response formats. It would be great if the request can be given in CURL format. 
  • We require the credentials of the NetSuite sandbox instance to develop the script and connect with the Lithotone test environment. 

ASSUMPTIONS   

  • Invoice Creation  

We assumed that when an Item Fulfilment record was created, the invoice had to be made. This invoice will be only for the items in the Item Fulfilment record. Back-ordered items will not be present on the Item Fulfilment, hence it will not be considered in the Invoice. 

  • Order Line API 

The “Order Line” API in order creation will take only one line item from the sales order in NetSuite. So, if a Sales order has more than one line item, we will call the “Order Line” API that many times. 

QUESTIONS 

  • Which shipping career should be assigned to the Item Fulfilment record in NetSuite? 
  • What If a single order has multiple Item Fulfilment records, will they have multiple tracking numbers? 

ESTIMATED EFFORT 

 
Estimated Efforts: 58hours 

Task Time  
Analysis  3hr 
Schedule script for order creation 16hr 
Schedule script for Item Fulfilment 20hr 
Invoice Creation 9hr 
Custom record and custom field creation 4hr 
Documentation and Deployment 3hr 
Testing 3hr 

Leave a comment

Your email address will not be published. Required fields are marked *