Item fulfillment
About Item Fulfillment
The Item Fulfillment interface allows a user to fulfill Sales Orders, Transfer Orders, and Vendor Returns. While the term create is used most commonly to describe the process, it is actually considered a Transform transaction because the record is created based on the Sales Order, Transfer Order, or Vendor Return information provided. The process requires function calls via RESTlet calls to complete the process.
Functional Process
The item fulfillment process consists of three main transactional steps: picking, packing, and shipping. Depending upon the customer configuration, any item fulfillment step can be bypassed in the transformation process to go to the next step. Item Fulfillments may also be created at the final SHIPPED phase status.
Note:Item Fulfillment records are transformation records, therefore, changing the original sales order or transfer order into the new record and Item Fulfillment record, cannot be done as a standalone transaction.
In NetSuite, the Item Fulfillment process used is the same irrespective of the type of record (Sales Order, Transfer Order, or Vendor Return) used on the transformative process. The interface is meant to support NetSuite single instance and One World clients using basic and advanced inventory management modules. The interface allows a user to process single and multi-line item fulfillment records for Sales Order, Transfer Order, and Vendor Return records.
The Advanced Inventory application holds and batches data for the transactions and passes the transactional data to NetSuite in batches through the RESTlet calls. However, the process can be modified to allow single threading of orders as required by the customer. The advantage of batching over single threading is that batching requires fewer calls to the NetSuite system, which reduces latency concerns that may be present when using single threaded calls and transaction process. The batch is processed when the user connect or reconnects to the NetSuite system via the Advanced Inventory interface. The processed batch creates an item fulfillment record and sets the status on the item fulfillment to correspond with the desired status state (picked, packed, or shipped) requested by the customer
Environment Considerations
To ensure optimal communication between the NetSuite interface and the Advanced Inventory app, refer to the following recommendations for the Item Fulfillments feature.
Sales Orders and Vendor Return records allow partial item fulfillments and will allow fulfillments in greater quantities than listed on the source transaction. Transfer Order Item Fulfillments will only allow a complete Item Fulfillment to be completed during the transformative process.
Record definitions
The following table provides the names and definitions for fields associated with the Item Fulfillments feature.
Name | Internal ID | Type | nlapiSubmitField | Required |
---|---|---|---|---|
Accessibility | accessibilitytypefedex | select | FALSE | FALSE |
Ancillary Endorsement | ancillaryendorsementfedex | select | FALSE | FALSE |
B13A Filing Option | b13afilingoptionfedex | select | FALSE | FALSE |
B13A Statement Data | b13astatementdatafedex | text | FALSE | FALSE |
backupemailaddressups | text | FALSE | FALSE | |
balance | currency | FALSE | FALSE | |
Booking Confirmation Number | bookingconfirmationnumfedex | text | FALSE | FALSE |
Certified Mail | certifiedmailusps | checkbox | FALSE | FALSE |
Consolidated Balance | consolidatebalance | currency | FALSE | FALSE |
createddate | datetime | FALSE | FALSE | |
Created From | createdfrom | select | FALSE | FALSE |
Custom Form | customform | select | FALSE | TRUE |
Customer | entity | select | FALSE | FALSE |
select | FALSE | FALSE | ||
exchangerate | posfloat | FALSE | FALSE | |
ExternalId | externalid | text | FALSE | FALSE |
Address Line 1 | haladdr1fedex | text | FALSE | FALSE |
Address Line 2 | haladdr2fedex | text | FALSE | FALSE |
Address Line 3 | haladdr3fedex | text | FALSE | FALSE |
HAL FedEx Location | haladdressfedex | select | FALSE | FALSE |
City | halcityfedex | text | FALSE | FALSE |
Country | halcountryfedex | text | FALSE | FALSE |
Contact Phone Number | halphonefedex | sphone | FALSE | FALSE |
State | halstatefedex | text | FALSE | FALSE |
Zip | halzipfedex | text | FALSE | FALSE |
Handling Cost | handlingcost | currency | FALSE | FALSE |
Type | hazmattypefedex | select | FALSE | FALSE |
Hold At Location | holdatlocationfedex | checkbox | FALSE | FALSE |
Inside Delivery | insidedeliveryfedex | checkbox | FALSE | FALSE |
Inside Pickup | insidepickupfedex | checkbox | FALSE | FALSE |
Base Currency | isbasecurrency | checkbox | FALSE | FALSE |
Cargo Aircraft Only | iscargoaircraftonlyfedex | checkbox | FALSE | FALSE |
lastmodifieddate | datetime | FALSE | FALSE | |
Memo | memo | text | TRUE | FALSE |
Packed Date | packeddate | date | FALSE | FALSE |
Picked Date | pickeddate | date | FALSE | FALSE |
Posting Period | postingperiod | select | FALSE | FALSE |
Address 1 | shipaddr1 | text | FALSE | FALSE |
Address 2 | shipaddr2 | text | FALSE | FALSE |
Address | shipaddress | textarea | FALSE | FALSE |
Address Select | shipaddresslist | select | FALSE | FALSE |
Attention | shipattention | text | FALSE | FALSE |
City | shipcity | text | FALSE | FALSE |
Addressee | shipcompany | text | FALSE | FALSE |
Country | shipcountry | select | FALSE | FALSE |
Residential Address | shipisresidential | checkbox | FALSE | FALSE |
Shipping Method | shipmethod | select | FALSE | FALSE |
Override | shipoverride | checkbox | FALSE | FALSE |
Shipped Date | shippeddate | date | FALSE | FALSE |
Phone | shipphone | phone | FALSE | FALSE |
shippingaddress | summary | FALSE | FALSE | |
Shipping Cost | shippingcost | currency | FALSE | FALSE |
State | shipstate | text | FALSE | FALSE |
Status | shipstatus | select | FALSE | FALSE |
select | FALSE | FALSE | ||
Zip | shipzip | text | FALSE | FALSE |
status | text | FALSE | FALSE | |
statusRef | text | FALSE | FALSE | |
subsidiary | select | FALSE | FALSE | |
Terms of Sale | termsofsalefedex | select | FALSE | FALSE |
Date | trandate | datte | FALSE | TRUE |
Ref. No. | tranid | TEXT | FALSE | FALSE |
Create an Item Supply Plan
Creating a supply plan requires both the Demand Planning and Advanced Inventory Management features to be enabled. The DSI_MobileClient_User_Enhanced_Permission role is required to create or edit a supply plan. The standard DSI_MobileClient_User role only has access to view supply plans.
Required fields
Body
-
item
-
subsidiary (required if One World account)
-
location (required if Multilocation is enabled)
Order Sublist
-
orderdate
-
ordertype
-
quantity
-
receiptdate (cannot be earlier than the orderdate)
-
sourcelocation (required if ordertype is TrnfrOrd)
Example Using DSI_RecordCreate
{
"recordcategory": "transaction",
"create": [{
"mc_user": "bruce.banner@dsiglobal.com",
"recordtype": "itemsupplyplan",
"location": "2",
"subsidiary":"1",
"sublists": [{
"sublistid": "order",
"lines": [{
"junk":"MEP bug work around",
"nvpair": [{
"columnid": "orderdate",
"newvalue": "12/14/2016"
},{
"columnid": "ordertype",
"newvalue": "WorkOrd"
},{
"columnid": "quantity",
"newvalue": "10"
},{
"columnid": "receiptdate",
"newvalue": "12/15/2016"
},{
"columnid": "sourcelocation",
"newvalue": ""
}]
}]
}],
"targetfields": [{
"fieldid": "item",
"value": "993"
},{
"fieldid": "units",
"value": ""
},{
"fieldid": "memo",
"value": "Created by Advanced Inventory"
}]
}]
}
Update or edit an Item Supply Plan
The item, location, and units body fields cannot be changed in update operations.
Required fields
Body
-
item
-
subsidiary (required if One World account)
-
location (required if Multilocation is enabled)
Order Sublist
-
orderdate
-
ordertype
-
quantity
-
receiptdate (cannot be earlier than the orderdate)
-
sourcelocation (required if ordertype is TrnfrOrd)
Example Using DSI_RecordCreate
{
"internalid": "155",
"recordtype": "itemsupplyplan",
"mc_user": "david.banner@dsiglobal.com",
"updatefields": [{
"fieldid": "memo",
"newvalue": "Updated by Advanced Inventory"
}],
"updatecolumns": [{
"sublistid": "order",
"lines": [{
"line": "1",
"remove": "",
"nvpair": [{
"columnid": "ordertype",
"newvalue": "TrnfrOrd"
},{
"columnid": "sourcelocation",
"newvalue": "1"
}]
}]
}]
}
Interface activity when processing Item Fulfillment
The following information describes the interface activity when the Item Fulfillment feature is processed.
DSI interface activity
The Advanced Inventory Interface is designed to allow the user to perform the required steps to pull information and to process inventory transfers. The user is prompted to enter a series of data parameters and the Advanced Inventory Interface is designed to process transactions as they are completed or to hold the transactions until the user connects to the NetSuite Interface again. The Advanced Inventory Interface provides the user with the following options and input capabilities and captures the following data points.
NetSuite interface activity
In NetSuite, the end user will initiate the Item Fulfillment process by navigating to the desired Sales Order, Transfer Order, or Vendor Return record. The data used for the Item Fulfillment record is extracted from the source record and pulled into the Item Fulfillment record document. The record is then processed and submitted adding data to associated fields. The associated fields may be a combination of standard NetSuite fields and custom fields created by the customer. The RESTlet is designed as a POST process.
When an end user connects to the NetSuite Interface, the data that has been stored is downloaded into the system which creates corresponding Inventory Transfer transactions. In order for the user to be able to upload the information, they must be logged into NetSuite.
Fields populated in NetSuite
The following fields will be populated in NetSuite if the information is passed in the batch through the NetSuite connectors.
-
Custom Form (required)
-
Ref No.
-
Date (required)
-
Memo
-
Status (required)
-
Priority (if required)
-
Line Item Fulfill checkbox
-
Quantity to fulfill if different than ordered.
-
Shipping Method
-
Shipping Address
-
Package Tracking Numbers
Note:The Ref No. field will auto-populate based on customer configuration. However, the user may enter a custom number if customer configurations and role permissions allow the number to be changed.
When the user connects to the NetSuite Interface, the Advanced Inventory Interface will perform the following actions.
-
Log the Advanced Inventory Interface user into NetSuite using the assigned and stored NetSuite user login information.
-
Accept the input data that the user has stored within the Advanced Inventory Interface.
-
Upload the data and create the corresponding NetSuite Inventory Transfer Transaction(s).
-
Send a success or error message response to the user.
-
Provide the user with the transaction ID(s) created during the process via communication protocols with the Advanced Inventory Interface.
Process a full or partial fulfillment
The item fulfillment is a transformational process and must have a record as the basis to create the item fulfillment. When a user enters information into the Advanced Inventory Application, the data is stored and segmented into to batch files. The batch files are then transmitted to NetSuite via predefined connectors. NetSuite accepts the batched data and uses the base record to transform or create the Item Fulfillment.
The following steps provide a generic outline of the fulfillment process from the Advanced Inventory app through the NetSuite interface.
-
The end user logs into the applicable Advanced Inventory App on a device.
-
The user enters or selects the order to fulfill.
-
The user selects the lines on the order to fulfill.
-
If the user does not select or deselect any lines or changes quantities, the process will assume all lines are to be fulfilled and the item fulfillment will match the base transaction upon NetSuite upload.
-
If a user deselects any item lines or changes quantities, the Item Fulfillment will be created based on the user's selection or input upon NetSuite upload.
-
The fulfillment data is saved/stored in the device.
-
The data is batched and transmitted to NetSuite through the Advanced Inventory NetSuite connectors.
-
NetSuite receives and uploads the batched data.
-
NetSuite returns that internal id for the new Item Fulfillment record.
-
Item Fulfillment records are created from the base transaction.
-
If the predefined item fulfillment status is set to PICKED, NetSuite will return the internal id and await a batch transmission to update the Item Fulfillment status to PACKED.
-
If the predefined item fulfillment status is set to PACKED, NetSuite will return the internal id and await a batch transmission to update the Item Fulfillment status to SHIPPED.
-
If the predefined item fulfillment status is set to SHIPPED, NetSuite will return the internal id, mark the record as SHIPPED and update the Sales Order.
-
Item fulfillment for the selected orders is complete.
Error codes
The following list defines the error codes that are possible when using the Item Fulfillment feature.
Communication Error
A user will receive this error if the communication between the Advanced Inventory Interface and the NetSuite Interface fails and should allow the user to restart the process.
Input Error
A user will receive this error if the input data has been entered incorrectly or the record did not create and should allow the user to restart the process.
Not Found Error
A user will receive this error if the input data is not found during request or processing.
Test an item fulfillment
To test and verify an item fulfillment, complete the following recommended steps.
Process Item Fulfillment in Advanced Inventory App
-
Log into the applicable Advanced Inventory app.
-
Select the order to fulfill.
-
Complete the item fulfillment steps.
-
Submit the item fulfillment.
-
Process the batch to NetSuite.
-
Verify that the Item Fulfillment was created.
Validate record creation in NetSuite
To test and verify that an item fulfillment record has been created in NetSuite, complete the following recommended steps in NetSuite.
Validate Record Creation in NetSuite
-
Log into NetSuite.
-
For search, enter the Item Fulfillment ID.
-
Optional, to use an order number in the validation, perform the following substeps.
-
For search, enter the order number to be fulfilled.
-
For Related Records, enter the transaction ID.
-
-
Select and view the record.
-
Confirm that the item fulfillment has been created and is correct.
-
Close the record.
Validate that the Item Fulfillment has processed
When item fulfillment transactions are completed in NetSuite, transaction records are created with unique transaction ID information.
To validate that the record processed and is accurate, complete the following steps in NetSuite.
-
Log into NetSuite.
-
For search, enter the Item Fulfillment ID.
-
Optional, to use an order number in the validation, perform the following substeps.
-
For search, enter the order number to be fulfilled.
-
For Related Records, enter the transaction ID.
-
-
Open the record in view mode.
-
Review all fields to validate the entries selected in the Advanced Inventory application match the Item Fulfillment Transaction record.
-
Close the record.
Loading...
There was a problem loading this topic