Proposal summary
The proposal covers the scope of integrating Netsuite with WMS. This proposal also covers the engagement scope of Jobin and Jismi It Services LLP, as official implementation partner Of Oracle NetSuite.
Requirement
A one way integration between the Netsuite & WMS system should be implemented to send the vendor record, Purchase order, Item receipt. If the record is created or updated in the Netsuite, it should be sent to WMS using API . Also, item receipt data should be created in Netsuite after getting the request from WMS to Netsuite.
Integration will took place for the following data from Netsuite to WMS :
- Vendor Master Data
- Purchase Order
Integration will took place for the following data from WMS to Netsuite
- Item Receipt
Our Solution
Prerequisite
- We need access to WMS and Netsuite sandbox account during the development phase and the production Netsuite and WMS accounts
- We need the API credentials to access WMS
Custom record Set up
A custom record can be created to handle the error while integrating the vendor record, purchase order and item receipt. For every record purchase order creation in Netsuite, there will be one integration custom record created in Netsuite. Any error while integration of purchase order and item receipt will be reflected in the custom record and email notification can be sent to the administrator or a specified employee if any error is created during integration.
Netsuite to WMS Integration
The integration will be one way from Netsuite to WMS. This will be a real time integration.
Vendor Data Sync
A script will be implemented in the vendor record and after every creation in the vendor record in the Netsuite, data will be reflected in the WMS in real time. Also, any update in the vendor record will be reflected in the WMS system
| JSON Request Field | Netsuite Field | Description |
| ownerCode(String) | “Legacy”(Hardocode) | Owner Code |
| supplierCode | entityid | Supplier Code |
| supplierName | companyname | Supplier Name |
| taxIdNumber | vatregnumber | TaxId Number |
| Supplier Address | addr1, addr2, addr3, city, zip, country | Netsuite Default shipping address values in the vendor record will be used. |
| supplierFax | fax | Supplier Fax |
| supplierTel | phone | Supplier Phone |
| supplierEmail | Supplier EMail | |
| remark | memo | Memo |
Purchase Order Sync
A script will be implemented in the purchase order record and after every creation or update in the purchase order record in the Netsuite, data will be reflected in the WMS in real time.
| JSON Request Field | Netsuite Field Internal ID | Description |
| ownerCode(String) | “Legacy” | Owner Code |
| docNo | tranid | Document Number in Netsuite |
| docDate | trandate | Transaction Date |
| supplierCode | vendor.entityid | Supplier Code |
| dueDate | duedate | Due date |
| PId | itemid | Itemid value of the item |
| quantity | quantity | Quantity field of each line item |
| unitCode | units | Unit of Measure |
After getting the response from WMS, we will store the response status in the custom field ‘custbody_wms_infstatus’ in the Netsuite
WMS to Netsuite Integration
Item Receipt Sync
The integration is from WMS to Netsuite for creation of Item Receipt in the Netsuite. A RESTlet script will be implemented in the Netsuite for creating an API for Netsuite to accept the request sent from WMS to Netsuite to create an Item Receipt.
The following table data will describe the request parameters accepted by Netsuite API
| JSON Request Field | Netsuite Field | Description |
| docNo(Mandatory) | custbody_wms_tranid | Custom field in Netsuite |
| basetranid(Mandatory) | createdfrom | Document number of the purchase order in Netsuite |
| docDate(Mandatory) | trandate | Date to be reflected in item receipt and it should be in the format as specified in the Netsuite account |
| remark | memo | Memo |
| pId(Mandatory) | item.itemid | Item Name |
| quantity(Mandatory) | quantity | Quantity of each line item |
| inventorynumber | inventorynumber | Serial number/Lot number |
| orderline(Mandatory) | orderline | Line Number of items in purchase order |
| location(Mandatory) | location. custrecord_locationcode | Location where the item is received |
Sample Format:
{
“docNo”: “PO15060010”,
“docDate”: “2015-06-17”,
“basetranid”: “PO15060010”,
“memo”: “”,
“item”: [
{
“pId”: “080001”,
“quantity”: “”,
“location”: “0000-00”,
“orderline”: 1,
“inventory_detail”: []
},
{
“pId”: “080002”,
“quantity”: “3”,
“location”: “0000-00”,
“orderline”: 2,
“inventory_detail”: [
{
“inventory_number”: “LOT-0000-01”,
“quantity”: “2”,
},
{
“bin_number”: “080002”,
“inventory_number”: “LOT-0000-02”,
“quantity”: “1”,
}
]
}
]
}
Note: We will only be creating a POST request API for creation of Item receipt in Netsuite and we are not updating the already created item receipt.
Response for Item Receipt creation in Netsuite will contain following fields:
| JSON Request Field | Netsuite Field Internal ID | Description |
| docNo | tranid | Document number of Item receipt |
| statusCode | Response status as Success or Failure | |
| message | Message will be Netsuite error or standard message |
Response Status Codes:
- SUCCESS
- FAILURE
Response Messages:
- docNo is missing
- Document number is invalid
- docDate format is invalid
- pId is missing
- quantity is missing
- orderline is missing
- Location is missing
Note:
- We will be validating whether the document number is valid or not
- We will be checking whether the date format is “YYYY-MM-DD”
- For other mandatory fields, we will be checking whether the parameter is present or not and the value is not null
Assumptions
- All items master Data is integrated from Netsuite to WMS (including Unit of Measure) and will be out of the current scope
- WMS mentioned in the requirement is a third party integration and we are not using the Netsuite WMS module
- HTTP POST requests can be send with the custom WMS API and while sending the data in the mentioned format, corresponding records will be formed in the WMS system
- For update and creation of records in Netsuite, we will be using the HTTP POST request method and the WMS system should handle this.
- We will not be considering the deletion of vendor , purchase order or Item receipt record in the Netsuite
- Single master data can only be sent at a time
- We are not considering the exchange rate of transactions in NetSuite
- We will be sending the unit specified in the purchase order
- We will be not be considering multiple currencies and assume that there is only one base currency
- We are only integrating the inbound processes and outbound processes are out of scope of this integration
- Applicable only to inventory items and not applicable to Kit/package, Item group
- Applicable to Lot and serialized inventory item and assuming that there is bin management involved in the warehouse
- We are not considering the any Tax codes while creating and update the record in the Netsuite
- Applicable only for the Item Receipts created from the purchase orders only and we are not considering the intercompany purchase orders.
- If there is an approval (standard approval) in NetSuite, only the approved transactions will be send to WMS
- We will send all records under consideration to WMS regardless of subsidiary/ department/class
- We will be using the date format for sending and receiving data between Netsuite and WMS as “YYYY-MM-DD” Vendor returns is out of scope of this integration
- Modifications of Item receipt cannot be achieved by the Netsuite API
- Inbound Shipment Management and Inventory Detail on Inbound Shipment features are enabled in the Netsuite account
Time
Estimated Effort : 36h