The NetSuite B2B connector sends your orders from the app to NetSuite as sales orders, and brings your B2B customers, locations, and item fulfillments from NetSuite into the app. It uses NetSuite token-based authentication and the Pipe17 SuiteApp. You control each flow with its own toggle, so you can turn on only the flows you need.
With this connector, you can:
- Create and update NetSuite sales orders from orders in the app, filtered by order source and order status.
- Match each order to a NetSuite customer by email, company, or your own lookup logic, or use a generic customer.
- Create customer deposits with sales orders, and sync payment status and customer deposits back from NetSuite.
- Import NetSuite companies, company locations, and their contacts as B2B customers, along with price-level catalogs.
- Import NetSuite locations and item fulfillments into the app, and send fulfillments from the app to NetSuite as item fulfillments.
Setup
Before you begin, make sure you have:
- A NetSuite account with administrator access.
- The Pipe17 SuiteApp installed in your NetSuite account. To find it, search for Pipe17 in the NetSuite SuiteApp marketplace.
- Your NetSuite account ID or account URL.
- A consumer key and consumer secret, and a token and token secret, for token-based authentication in NetSuite.
- A NetSuite role for the token that includes the Accounting Lists permission, if you plan to import customers with price levels.
To connect NetSuite B2B:
- Navigate to Integrations in the app.
- Click Add Integration, and then select NetSuite B2B.
- Select the I have installed the Pipe17 SuiteApp in my NetSuite account check box. Select it only after the SuiteApp is installed.
- Enter your NetSuite account ID or URL in the Account field.
- Enter your consumer key in the Consumer Key field.
- Enter your consumer secret in the Consumer Secret field.
- Enter your token ID in the Token field.
- Enter your token secret in the Token Secret field.
- Click Connect.
- After you connect, toggle on the flows you want to use: Push orders to NetSuite, Pull customers from NetSuite, Pull locations from NetSuite, Pull fulfillments from NetSuite, and Push fulfillments to NetSuite. All are off by default.
When you connect, the app checks the connection to NetSuite. It then loads reference data from your NetSuite account, such as subsidiaries and search fields, for use in the connector settings. The app refreshes this data once a day.
Settings
| Setting | Description | Options/Default |
|---|---|---|
| Push orders to NetSuite | Sends orders from the app to NetSuite as sales orders. | On/Off. Default: Off |
| Pull customers from NetSuite | Imports NetSuite companies, company locations, and contacts into the app as customers. | On/Off. Default: Off |
| Pull locations from NetSuite | Imports NetSuite locations into the app. | On/Off. Default: Off |
| Pull fulfillments from NetSuite | Imports NetSuite item fulfillments into the app as fulfillments. | On/Off. Default: Off |
| Push fulfillments to NetSuite | Creates item fulfillments in NetSuite from fulfillments in the app, such as fulfillments from a 3PL. | On/Off. Default: Off |
| Filter order creation by source: | Sends only orders from the sources you list, such as shopify or Brandboom. To see the source values, check the orders list in the app. |
Optional. Empty sends orders from all sources |
| Create Sales Order when order status is | Creates a sales order in NetSuite only when the order has one of the statuses you choose. Orders in Draft are never sent. | Optional. Empty creates orders in any status except Draft |
| Exclude orders created before this date if there is no order out checkpoint. | Skips orders created before this date. If you leave it empty, the app uses the date you created the integration. After syncing starts, the app processes orders as they change, so an older order is sent only after you update it. | Date. Optional |
| Order push concurrency | The number of orders the app sends to NetSuite at the same time. | Number. Empty sends one order at a time |
| Decompose the bundle to only pass bundle components when pushing orders to NetSuite | Replaces bundle line items with their components on the sales order. | On/Off. Default: Off |
| Look up products on orders by: | The NetSuite field that matches the SKU on the order. Choose Item Name/Number if your sales channel SKU matches the NetSuite item name or number, or UPC if it matches the NetSuite UPC. | Item Name/Number or UPC. Default: Item Name/Number |
| Group of Customer Lookup Logics | Rules for matching each order to a NetSuite customer. Each rule has a Customer Category, the Source and Tags it applies to (in the format source or source:tag), a Customer Subsidiary Filter, a Customer match method, a Generic Customer Id, and optional Specify Customer Lookup Logic. The Customer match options let you match by email, by company, or by your own lookup logic, and then either create the customer or fall back to the generic customer. |
Default: a D2C rule and a B2B rule |
| Create Customer Deposits with Sales Orders In NetSuite | Creates a customer deposit in NetSuite for each successful payment on the order. Use this when orders are paid up front. | On/Off. Default: Off |
| Update Pipe17 order status to 'Sent to Fulfillment' when order is sent to NetSuite | Changes the order status in the app to Sent to Fulfillment after the app creates the sales order. Use this when NetSuite handles fulfillment instead of a 3PL. | On/Off. Default: Off |
| Send order updates into NetSuite | Sends changes to orders that already exist in NetSuite. When it's off, the app doesn't overwrite manual changes made in NetSuite. | On/Off. Default: Off |
| Update Sales Order when order status is | Updates a sales order in NetSuite only when the order has one of the statuses you choose. | Optional. Empty updates in any status |
| Sync Order Payment Status and Customer Deposits from NetSuite | Brings customer deposits and the fully paid status of NetSuite sales orders back into the app. | On/Off. Default: Off |
| Item Fulfillments filter | Filters which NetSuite item fulfillments the app imports. | Optional filter |
| Pull fulfillments into Pipe17 only when it’s routed to a NetSuite location | Attaches imported fulfillments to the order's existing shipping requests at NetSuite locations. | On/Off. Default: Off |
| Exclude fulfillments created before this date | Skips item fulfillments created before this date. If you leave it empty, the app uses the date you created the integration. | Date. Optional |
| Use bundle components on Item Fulfillments | Uses bundle components instead of the finished bundle item on item fulfillments that the app creates in NetSuite. | On/Off. Default: Off |
| Set the IF location with the shipping request location | Sets the location on each item fulfillment line to the shipping request location. Make sure each 3PL location maps to the correct NetSuite location. | On/Off. Default: Off |
| Skip 0 committed order line when submitting IF in NetSuite | Leaves out sales order lines with 0 committed quantity from item fulfillments. | On/Off. Default: Off |
| Skip closed order line when submitting IF in NetSuite | Leaves out closed sales order lines from item fulfillments. | On/Off. Default: Off |
| Skip back-ordered line item when it’s partial fulfillment | Leaves out back-ordered lines from partial item fulfillments. | On/Off. Default: Off |
| Item type whitelist to submit even the committed is Null | NetSuite item types to include on item fulfillments even when the committed quantity is empty. By default, the app skips those lines. | Optional. List of NetSuite item types |
| Customer Inbound Filters Saved Search ID | A NetSuite saved search that limits which customers the app imports. Enter the internal ID (a positive number) or the script ID (starts with customsearch). |
Optional |
| Use UPC code instead of SKU to identify products | Uses the NetSuite UPC as the SKU for catalog products imported with customers. | On/Off. Default: Off |
| Location Filter | Filters which NetSuite locations the app imports. | Optional filter |
Flows
| Flow | Direction | Notes |
|---|---|---|
| Orders | Pipe17 → NetSuite | Runs every 5 minutes when Push orders to NetSuite is on. Creates a sales order in NetSuite, or updates the existing one when Send order updates into NetSuite is on. Orders in Draft, orders from sources not in Filter order creation by source:, and orders in statuses you didn't choose are skipped. When Create Customer Deposits with Sales Orders In NetSuite is on, the app also creates customer deposits. Cash sales and refunds aren't supported. |
| Payment status and customer deposits | NetSuite → Pipe17 | Runs every 5 minutes when Sync Order Payment Status and Customer Deposits from NetSuite is on. Updates only orders that the app sent to NetSuite. Adds customer deposits created in NetSuite as payments on the order, and marks the order as paid when the NetSuite sales order is billed. Deposits are supported in USD, GBP, CAD, and EUR. |
| Customers | NetSuite → Pipe17 | Runs every 5 minutes when Pull customers from NetSuite is on. Imports each NetSuite contact whose parent is a company location, and whose company location's parent is a company. The app creates the company, company location, and individual customers and links them. It also creates a catalog from the company location's price level and item pricing. |
| Locations | NetSuite → Pipe17 | Runs every 5 minutes when Pull locations from NetSuite is on. Imports up to 200 locations that match Location Filter. |
| Fulfillments | NetSuite → Pipe17 | Runs every 5 minutes when Pull fulfillments from NetSuite is on. Imports item fulfillments for orders that exist in the app, with tracking and carrier details. |
| Fulfillments | Pipe17 → NetSuite | Runs every 5 minutes when Push fulfillments to NetSuite is on. Creates an item fulfillment on the matching NetSuite sales order. If the item fulfillment already exists, the app skips it. Fulfillments for transfer orders aren't sent. |
Troubleshooting
-
The connection fails with a "Connectivity check failed" error
The account ID or one of the token-based authentication values is wrong, or the Pipe17 SuiteApp isn't installed. Check the Account, Consumer Key, Consumer Secret, Token, and Token Secret values in NetSuite, and then update them in the connection settings. -
An order has an exception that says it can't find a source channel setting for this order in customer search
No rule in Group of Customer Lookup Logics includes the order's source or source and tag. Add the source to Source and Tags in a rule, and then update the order to send it again. -
An order has an exception about a customer that doesn't exist in NetSuite, or a generic customer that can't be found
The app couldn't match a customer with the rule's Customer match method. Check that Generic Customer Id is a valid NetSuite customer internal ID, or choose a Customer match option that creates the customer if it doesn't exist. -
An order isn't sent to NetSuite and has no exception
The app skipped it. Check that the order's source is in Filter order creation by source: and its status is in Create Sales Order when order status is. For orders already in NetSuite, check Send order updates into NetSuite and Update Sales Order when order status is. Orders in Draft are never sent. -
A customer has a PriceLevelError exception about the Accounting Lists permission
The NetSuite role for your token can't read price levels. Add the Accounting Lists permission to the role in NetSuite. The app resolves the exception on its next run.
Need Help?
If you need additional assistance:
- Use Ask Pippen, our AI agent, located at the top of the platform page.
- Submit a support request with as much relevant detail as possible. Learn how to submit a request.
We’re here to help you succeed with your operations.
Comments
0 comments