NetSuite is an enterprise resource planning (ERP) system for managing ecommerce, customer relationships, finances, and more. ShipStation connects to NetSuite using OAuth 2.0 authentication through the ShipStation Native SuiteApp.
To set up your NetSuite integration with ShipStation:
-
Enable the required settings in NetSuite.
-
Install the ShipStation Native SuiteApp in NetSuite.
-
Choose the Import Fulfillment Workflow that best fits your needs.
-
(Optional) Create an Order Filter in NetSuite.
-
Connect your NetSuite store to ShipStation.
-
(Optional) Customize your store settings and custom field mapping.
If you do not already have an account with NetSuite, contact NetSuite for a Free Demo.
Connection Requirements:
-
Your NetSuite account must have SuiteCloud Client and Server SuiteScript enabled.
-
NetSuite Account ID
-
The NetSuite role you use to connect to ShipStation must have the required OAuth 2.0 permissions.
Order Import Requirements:
-
Orders must have a Ship-To address
-
Orders in the Pending Approval status will not import
A NetSuite administrator must enable the required SuiteScript and OAuth 2.0 settings before connecting NetSuite to ShipStation.
A NetSuite administrator must complete the following steps before connecting to ShipStation:
-
Log in to your NetSuite administrator account.
-
Go to Setup > Company > Setup Tasks > Enable Features.
-
Click the SuiteCloud tab.
-
Under SuiteScript, enable both:
-
Client SuiteScript: Select I Agree when prompted to accept the Terms of Service.
-
Server SuiteScript: Select I Agree when prompted to accept the Terms of Service.
-
-
Under Manage Authentication, select OAuth 2.0, then select I Agree.
-
Click Save.
The NetSuite role used to connect ShipStation must have the Log in Using OAuth 2.0 Access Tokens permission.
To configure the role used for the ShipStation integration:
To install the native SuiteApp:
-
Go to SuiteApps > Install ShipStation Native.
-
Select the ShipStation app.
-
After installing the ShipStation Native SuiteApp, the ShipStation menu appears in the NetSuite navigation bar. Depending on your screen size, you may need to select More (...).
You can access the following settings from the ShipStation menu:
|
Setting |
Navigation path |
|---|---|
|
Order Filters |
|
|
Shipment Configuration |
|
|
Custom Field Mapping |
|
To connect your NetSuite store to ShipStation:
-
Select NetSuite.
-
Select a Workflow from the dropdown menu.
See Import Fulfillment Workflows for guidance on choosing a workflow. You can change this setting later from your store settings.
-
(Optional) Enter an Order Filter Name if you created an order filter in NetSuite. If no filter is specified, all eligible orders will import.
-
Click Connect. ShipStation will redirect you to NetSuite to authorize the connection using OAuth 2.0.
-
Review and approve the permissions request in NetSuite. You will be redirected to ShipStation.
-
Click Save.
ShipStation supports four NetSuite import fulfillment workflows. Each workflow determines how orders import into ShipStation, how statuses are mapped, and how shipment notifications are handled.
-
Sales Order: The default workflow for most merchants. Supports additional ShipStation features, including the pick and pack process.
-
PickPackShip - Picked: Imports Item Fulfillment Records (IFRs) in the Picked status. This workflow uses NetSuite to manage the pick and pack process and ShipStation for fulfillment.
-
PickPackShip - Packed: Imports Item Fulfillment Records in the Packed status.
-
Transfer Orders: Imports Item Fulfillment Records for transfer orders. This workflow is useful for businesses transferring inventory between warehouses.
Order filters control which eligible NetSuite orders import into ShipStation. If you don't specify an order filter, ShipStation imports all eligible orders.
To create an order filter:
-
Go to ShipStation >Configurations > Order Filters.
-
Create an order filter using your preferred criteria.
-
Select Save.
Order Filter Notes:
-
Filter names can contain letters, numbers, hyphens, and underscores. Other characters may cause syncing issues.
-
Filter values must exactly match those in NetSuite.
-
Only one order filter is supported per connection.
-
You can filter orders by location, class, or department.
-
If no order filter is specified, all eligible orders import.
ShipStation's Native NetSuite integration supports importing up to three additional fields from NetSuite to custom fields 1, 2, or 3. The following fields can be mapped to standard order fields or any custom body field (custbody_*).
To configure custom field mapping:
-
In NetSuite, go to ShipStation > Configurations > Orders > Export Configuration.
-
Under Custom Mappings, select the NetSuite field you want to map to Custom Field 1, Custom Field 2, or Custom Field 3.
-
Click Save.
Supported Fields
|
Field Name |
Description |
|---|---|
|
(createddate) |
Create Date |
|
(currencyname) |
Currency |
|
(email) |
Customer Email |
|
(entityname) |
Customer Number |
|
(custbody_cp) |
Customer Priority |
|
(exchangerate) |
Exchange Rate |
|
(custbody_fmt_finance_app) |
Finance Approved |
|
(custbody_fmt_finance_app_date) |
Finance Approved Date |
|
(custbody_fmt_finance_declined) |
Finance Declined |
|
(lastmodifieddate) |
Last Modified Date |
|
(locationname) |
Location |
|
(memo) |
Memo |
|
(trandate) |
Order Date |
|
(tranid) |
Order Number |
|
(total) |
Order Total |
|
(custbody_pfc_pfitemid) |
Picture Frame Item ID |
|
(otherrefnum) |
PO / Reference Number |
|
(custbody_cust_priority) |
Priority |
|
(custbody_promisedate_2) |
Promise Date (2) |
|
(custbody_reasonforreturn) |
Reason for Return |
|
(custbody_fmt_req_financial_app) |
Requires Finance Approval |
|
(custbody_fmt_req_sales_manager_app) |
Requires Sales Manager Approval |
|
(custbody_fmt_sales_manager_app) |
Sales Manager Approved |
|
(custbody_fmt_sales_manager_app_date) |
Sales Manager Approved Date |
|
(custbody_fmt_sales_manager_declined) |
Sales Manager Declined |
|
(custbody_fmt_senior_executive_app) |
Senior Executive Approved |
|
(custbody_fmt_senior_executive_app_date) |
Senior Executive Approved Date |
|
(custbody_fmt_senior_exec_declined) |
Senior Executive Declined |
|
(shipdate) |
Ship Date |
|
(shipmethodname) |
Ship Method |
|
(custbody_shpst_carrier) |
ShipStation Carrier (2) |
|
(source) |
Source |
|
(status) |
Status Code |
|
(taxtotal) |
Tax Total |
Order status mapping between NetSuite and ShipStation depends on the selected fulfillment workflow.
Pick, Pack, Ship (PPS) workflow
|
NetSuite Item Fulfillment Status |
ShipStation Status |
|---|---|
|
A (Picked) |
Awaiting Shipment |
|
B (Packed) |
Awaiting Shipment |
|
C (Shipped) |
Completed |
Sales Order workflow
|
NetSuite Sales Order Status |
ShipStation Status |
|---|---|
|
A (Pending Approval) |
*Not Supported |
|
C (Cancelled) |
Cancelled |
|
B (Pending Fulfillment) |
Awaiting Shipment |
|
D (Partially Fulfilled) |
Awaiting Shipment |
|
E (Pending Billing & Partially Fulfilled) |
Awaiting Shipment |
|
F (Pending Billing) |
Completed |
|
G (Billed) |
Completed |
|
H (Closed) |
Completed |
|
All other status codes |
Completed |
Orders in Pending Approval status do not import into ShipStation.
The NetSuite integration does not support custom status mappings. To use different mappings, you must implement a custom plugin for order export and shipment notifications.
The ShipStation integration with NetSuite supports the following standard features:
|
Feature |
Supported? |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Your fulfillment strategy determines how NetSuite is updated when you create a shipping label in ShipStation.
To configure your fulfillment strategy, go to ShipStation > Configurations > Shipment Configuration in NetSuite.
The available fulfillment strategies include:
ShipStation Default
Uses the workflow selected when connecting your NetSuite store to ShipStation.
-
Sales Order: The default workflow for most merchants. Supports ShipStation features such as pick and pack.
-
PickPackShip: Updates an existing Item Fulfillment Record. This workflow does not support multiple ship-from or ship-to destinations. Use the Sales Order workflow if your fulfillment process requires multiple addresses.
-
Transfer Order: Creates a new Item Fulfillment Record.
Multi-Ship-To Orders
When Multi-Ship-To is enabled in NetSuite, ShipStation separates an order into multiple fulfillments based on the ship-to address.
For example, an order containing two T-shirts shipping to Texas and one mug shipping to Florida creates two fulfillments, each with its own ship-to address and items.
Multi-Ship-From Orders
NetSuite allows you to assign a Preferred Location to each item. However, ShipStation cannot view inventory levels across locations or prioritize locations within a single sales order.
As a result, ShipStation does not split fulfillments based on different Preferred Locations within the same sales order.
The sales order location appears as a read-only field in the order details.
Item Fulfillment Record
ShipStation displays multiple fulfillments for a sales order based on existing Item Fulfillment Records in NetSuite.
For example, if one item has already shipped in NetSuite and another still needs to ship, ShipStation imports both fulfillments with their respective statuses.
This allows you to create a label for the remaining item without shipping an already fulfilled item again.
ShipStation supports advanced customization through NetSuite's plugin system.
The integration includes default workflows for transferring data between ShipStation and NetSuite. If your business requires different behavior, you can develop custom plugins to:
-
Change how order or shipment data is imported or exported.
-
Trigger additional actions in NetSuite based on ShipStation events.
-
Apply custom validation or business logic.
-
Handle different fulfillment workflows.
For the current list of supported customizations, setup steps, and technical reference, see the NetSuite Plugins Customization Repository on Github.
OAuth 2.0 Reauthentication
NetSuite requires you to reauthenticate your ShipStation connection every 30 days. When your authentication token expires, ShipStation displays a store connection error.
To reconnect your NetSuite store:
-
In ShipStation, go to Settings > Selling Channels > Store Setup.
-
Select the Actions (...) menu next to your NetSuite store and select .
-
Reenter your NetSuite Account ID and authorize the connection using OAuth 2.0.
-
Reenter your order filter settings. Order filter settings are not saved between authentications.
Sales Order Workflow and Complex Inventory Rules
The Sales Order workflow may not work correctly if your NetSuite account uses complex inventory rules, such as BIN numbers, serial numbers, lot numbers, or kit items.
If you experience shipment notification failures, consider using the PickPackShip - Picked or PickPackShip - Packed workflow instead.
To change workflows, disconnect and reconnect your NetSuite store, then select the appropriate PickPackShip option during setup.