NetSuite Integration

Overview

NetSuite is an Enterprise Resource Planning (ERP) software offering a cloud-based solution for businesses of any size and in any industry.

You can integrate Sellercloud and NetSuite via API through plugins. NetSuite is highly customizable, and most clients require customizations to the plugins before the integration works for them. These customizations are billable.

We recommend opting in for Premium Support, so you have a dedicated representative to complete the testing for your account and ensure that the setup is done correctly.

The integration supports:

  • Inventory import
  • Order export
  • Tracking export
  • Tracking import

Prerequisites

Sellercloud Prerequisites

To integrate your NetSuite account with Sellercloud:

  1. Designate a Company where you will set up the Custom Company Settings and Scheduled Tasks for this integration.
  2. Reach out to the Sellercloud Support team.
  3. Ask support to install these plugins on your server:
    1. NetSuite Inventory Import
    2. NetSuite Order Export
    3. NetSuite Tracking Export or Tracking Import
  4. Ask support to create the following Custom Company settings:
The Custom Settings can vary because they are heavily dependent on your exact workflow. It’s best to work with the support team to configure the settings optimally. We recommend Premium Support.

Custom Company Settings (Default Company)

  • NetSuiteService_Username – The NetSuite user’s login email.
  • NetSuiteService_Password – The NetSuite user’s login password.
  • NetSuiteService_UserRoleID – The RoleID of the NetSuite user from Setup > User/Role > Roles in NetSuite.
  • NetSuiteService_AccountID – The NetSuite account ID from Setup > Integration > Web Services Preferences in NetSuite.
  • NetSuiteService_ApplicationID – The application ID from Setup > Integration > SellerCloud.
  • NetSuite_WarehouseID – The warehouse ID that the inventory will be updated to.
  • NetSuiteLocations – The NetSuite location IDs the plugin gets inventory from. For more than one location ID, separate the IDs with semicolons.
  • NetSuite_ShippingItemID – To add to order items for shipping charges. The ID would be the actual shipping item ID in NetSuite.
  • NetSuite_PromotionItemID – To add to order items for a discount. The ID would be the actual promotion item ID in NetSuite. Discounts will be added to NetSuite as negative numbers. For example, if the discount is $10, the discount item in NetSuite will be -$10.

Custom Company Settings (Scheduled Task Companies)

  • For each company that exports to NetSuite, create a custom setting for each channel in the following format: NetSuiteCustomer_ChannelName.
    • When exporting an order into NetSuite, the plugin looks for the NetSuite customer that corresponds to the channel of the order and sets it as the customer on order in NetSuite.
    • To map Sellercloud channels to NetSuite customers, you must set up a custom setting for each company/channel that must be exported into NetSuite, such as NetSuiteCustomer_Target.
    • The value should be the corresponding CustomerID in NetSuite.
    • The channel name is case-sensitive and must be spelled correctly. Check the spelling of the channel from the Channel filter on the Manage Orders page.
  • For each company, create a custom setting for each channel in the following format: NetSuiteService_ChannelMapping: channelID-name
    • When you have multiple website channels in Sellercloud, this setting lets you customize the channel name sent to NetSuite.
    • Substitute channelID-name with the channel name. Note that it is case-sensitive and must be spelled correctly. Check the spelling of the channel from the Channel filter on the Manage Orders page.
    • The value should be the channel name to send to NetSuite.

Custom Order Columns

  • NSExported – Shows if the order has been exported to NetSuite.
  • NetSuiteOrderID – Stores the TranID of the NetSuite order in NetSuite.

NetSuite Prerequisites

Additionally, to integrate NetSuite with Sellercloud, complete the following steps in NetSuite:

  1. Log in to NetSuite and create a new user, or use one that doesn’t connect to another platform.
  2. The user must have a license. NetSuite Standard has a 59 user license limit.
  3. Ensure that the user is not an Admin and has all the required permissions – go to Setup > User/Role > Select User > Permissions and enable these:
    1. Transactions
      1. Fulfill Orders (Full)
      2. Item Fulfillment (Full)
      3. Sales Order (Edit)
    2. Lists
      1. Customers (Edit)
      2. Items (Edit)
      3. Perform Search (Full)
    3. Setup
      1. SOAP Web Services (Full)
  4. Add these permissions to a role profile under Setup > User/Role > Roles to get a RoleID for the NetSuiteService_UserRoleID custom setting in Sellercloud.
  5. Go to Setup > Integration and choose the Sellercloud integration.
    1. Set the Authentication to User credentials only – all other options must be unchecked.
    2. The Status must be Enabled.
    3. The 2FA setting must be Not required.
  6. Get the Application ID for the custom setting of the plugin from Setup > Integration > SellerCloud.
  7. The credentials for the Sellercloud custom settings NetSuiteService_Username and NetSuiteService_Password are the NetSuite user’s login details from step 1.
  8. The NetSuiteService_UserRoleID is the RoleID from step 4.
The NetSuite user must not be an Admin, or the integration won’t work because of 2FA issues.

Inventory Import

See the following details about the NetSuite Inventory Import plugin:

Items:

  • The plugin searches for these item types in NetSuite with OnHandQty: Inventory Item, Assembly Item, and Serialized Item (however, it doesn’t pull serial numbers). 
  • Item names in NetSuite need to match Sellercloud SKUs exactly because the plugin will try to update Sellercloud products after searching for their SKUs.
  • You must create the scheduled task for Inventory Import under the default company where the custom settings are defined. However, this setup doesn’t limit products updated in Sellercloud to the selected company. The plugin will update any product that matches the NetSuite product ID.

Inventory:

  • If a Sellercloud product is not found in the results from NetSuite, it will update the Physical Qty in the NetSuite warehouse to 0.
  • The plugin uses ranges to update inventory and will set all items within each range to the lower end of the range. For example, an item with an inventory of 5 will be set to 4 in Sellercloud because the plugin currently uses the inventory ranges below (although it can be customized to use other ranges if needed):
    • 0-2
    • 2-4
    • 4-6
    • 6-8
    • 8-10
    • 10-15
    • 15-20
    • 20-25
    • 25-30
    • 30-40
    • 40-50
    • 50-75
    • 75-100
    • 100-150
    • 150-200
    • 200-250
    • 250-500
    • 500-10000000

Warehouses

  • If a product is found in Sellercloud, the plugin will set its Physical Qty in the warehouse defined by the custom setting NetSuite_WarehouseID.
  • The plugin can also support multiple warehouses, checking warehouses in Sellercloud, and sending product quantities to the corresponding NetSuite locations. Ask Sellercloud support for more information.

Automate Inventory Import

To create a Scheduled Task that regularly imports inventory info from NetSuite to Sellercloud:

  1. Navigate to Settings > Scheduled Tasks > Manage Scheduled Tasks.
  2. Click the green + icon: Create New Scheduled Task.
  3. Complete as follows:
    1. Click Task Type and select Import Product Inventory.
    2. Set the Task Name to NetSuite Inventory Import.
    3. Select the Company.
    4. Select the Start Time.
    5. Click CREATE.
  4. The following message appears at the bottom of your screen: “Scheduled task created successfully. Click Here to configure the task details.” – click the link.
  5. Click the Edit button on the top right.
  6. In the Details section:
    1. Click the Import Via menu and select NetSuite Inventory Import.
    2. Select a Warehouse.
  7. In the Import Options section, set Import From to None.
  8. In the Frequency section, specify the task frequency. NetSuite scheduled tasks must never run simultaneously. Schedule each task 20 minutes apart from the others.
    1. For example, you can select Custom, check all days, and then add times so that it runs at 1:00, 2:00, 3:00, etc.
  9. In the General section, click the Enable button.
  10. Click Save on the top right.
Step 8 is of critical importance. NetSuite scheduled tasks must never run simultaneously, or the integration won’t work.


Order Export

Sellercloud orders get exported with the following info in NetSuite:

  • Customer based on the channel and company.
  • TimeOfOrder as the transaction date.
  • OrderSourceOrderID as the reference number in NetSuite.
  • OrderID as the external ID.
  • Status as pending fulfillment.
  • Billing address of the NetSuite customer, or if not found, the billing address on order.
  • Shipping address of the NetSuite customer.
  • Username as email.
  • Each item with quantity. If a product is not found in NetSuite, the order will not be created.
  • Shipping Total as an order item if there is a custom setting defined for this.
  • Discount Total as an order item if there is a custom setting defined for this.

When an order gets exported successfully, an order note with the internal order ID gets added to NetSuite.

If there is a shipping charge or a discount on an order, this is recorded on the NetSuite order by adding an “item” that reflects this, with the amount being the corresponding charge/discount.

Automate Order Export

Before you move on, create a Saved Search for orders filtered by NSExported: FalsePayment Status: Charged, and Shipping Status: Unshipped.

To create a scheduled task that regularly exports orders from Sellercloud into NetSuite.

  1. Navigate to Settings > Scheduled Tasks > Manage Scheduled Tasks.
  2. Click the green + icon: Create New Scheduled Task.
  3. Complete as follows:
    1. Click Task Type and select Export Orders.
    2. Set the Task Name to NetSuite Order Export.
    3. Select the Company.
    4. Select the Start Time.
    5. Click CREATE.
  4. The following message appears at the bottom of your screen: “Scheduled task created successfully. Click Here to configure the task details.” – click the link.
  5. Click the Edit button on the top right.
  6. In the Details section:
    1. Click the User ID menu and select your account.
    2. Click the Saved Search menu and select your saved search.
    3. Click the Export Via menu and select NetSuite Order Export.
  7. In the Export Options section, leave Export To on None.
  8. In the Frequency section, specify the task frequency. NetSuite scheduled tasks must never run simultaneously. Run this task 20 minutes after the previous one.
    1. For example, you can select Custom, check all days, and then add times so that it runs at 1:20, 2:20, 3:20, etc.
  9. In the General section, click the Enable button.
  10. Click Save on the top right.
Step 8 is of critical importance. NetSuite scheduled tasks must never run simultaneously, or the integration won’t work.


Tracking Export

This plugin exports the tracking information of shipped orders from Sellercloud to Netsuite, including shipping details.

Automate Tracking Export

Before you move on, create a Saved Search for orders filtered by NSExported: True and Shipping Status: FullyShipped.


To create a scheduled task that regularly exports order tracking from Sellercloud to NetSuite:

  1. Navigate to Settings > Scheduled Tasks > Manage Scheduled Tasks.
  2. Click the green plus icon: Create New Scheduled Task.
  3. Complete as follows:
    1. Click Task Type and select Export Orders.
    2. Set the Task Name to NetSuite Tracking Export.
    3. Select the Company.
    4. Select the Start Time.
    5. Click CREATE.
  4. The following message appears at the bottom of your screen: “Scheduled task created successfully. Click Here to configure the task details.” – click the link.
  5. Click the Edit button on the top right.
  6. In the Details section:
    1. Click the User ID menu and select your ID.
    2. Click the Saved Search menu and select the saved search you created earlier.
    3. Click the Export Via menu and select NetSuite Order Tracking.
    4. Check the This Is Tracking Export box.
  7. In the Export Options section, set Export To to None.
  8. In the Frequency section, specify the task frequency. NetSuite scheduled tasks must never run simultaneously. Run this task 20 minutes after the previous one.
    1. For example, you can select Custom, check all days, and then add times so that it runs at 1:40, 2:40, 3:40, etc.
  9. In the General section, click the Enable toggle button.
  10. Click Save on the top right.
Step 8 is of critical importance. NetSuite scheduled tasks must never run simultaneously, or the integration won’t work.


Tracking Import

Sellercloud also supports an alternative workflow regarding fulfilled orders. For example, if you have integrated NetSuite with a third-party software you use to ship your orders, we offer a Tracking Import plugin that can pull the Shipping information into Sellercloud.

This workflow requires a different plugin from the one mentioned above. Please inform Sellercloud Support about this so they can install the correct plugin on your server.

This is an Order Export type plugin that exports orders based on your criteria and then checks if they have tracking and shipping information on NetSuite. If they do, it imports that info to Sellercloud, following this logic:

  • If there is no tracking or shipping method, it skips the order.
  • If the shipping carrier is not defined properly in NetSuite, the plugin will try to extract it from the shipping method. If it can’t extract it, it will set the carrier to Other.
  • If there is one tracking number, the plugin will generate one order package and apply the tracking number for all items to this package.
  • If there is more than one tracking number (NetSuite doesn’t apply items for each tracking): 
    • If there is only one unit (that is not a kit) in the order, the plugin cannot apply more than one tracking to this order and will only store the first one.
    • If there are the same amount of order items and tracking numbers, the plugin will apply each item to another tracking number.
    • If there are more items in the order than tracking numbers, the plugin will apply each unit to another tracking until the plugin is finished applying each tracking. The remaining units will automatically be set to the last package in the order. All main component kits will be broken down by component as well.

Automate Tracking Import

To create the scheduled task for automation, follow the exact same steps listed in the Automate Tracking Export section above. The only difference is that you must create and use a Saved Search for orders filtered by NSExported: True and Shipping Status: Unshipped, and set a different plugin than the one mentioned in the sections above for the Export Via field.


Was this article helpful?

Need Support?
Can't find the answer you're looking for?
Contact Support