NetSuite as a Channel

NetSuite as a channel in Flxpoint lets you sync and link product listings, retrieve orders, and keep order data synchronized between NetSuite and Flxpoint for accurate inventory and seamless processing. 

How to Connect

📋 Phase 1: NetSuite Setup Prerequisites+
Enable Features
Setup > Company > Enable FeaturesSuiteCloud tab:
  • SuiteScript
  • SuiteTalk (Web Services)
  • REST Web Services
  • Token-Based Authentication
Role Permissions
  • Setup: Access Token Management, Log in using Access Tokens, REST Web Services
  • Lists: Items, Customers, Vendors
  • Transactions: Purchase Order, Sales Order, Item Fulfillment
  • Reports: SuiteAnalytics Workbook (recommended for Production REST auth)
Tip: Use a dedicated “Flxpoint Integration” role for this connection.
Generate TBA Tokens
Settings portlet → Manage Access TokensNew My Access Token → choose your Integration and role → Save. Copy Token ID and Token Secret.
🔐 Phase 2: Create Your NetSuite Channel Connection+
Add Channel
Go to Channel+ Add Channel → search NetSuite.
Select Type
Choose NetSuite Purchase Order (channel) to enable order flows.
Enter Credentials
  • Connection Name
  • Client ID / Client Secret
  • NetSuite Store ID (Account ID)
  • Token ID / Token Secret
  • Sandbox Store ID (optional)
Note: Leave Sandbox Store ID blank to target Production.
Test & Save
Click Test ConnectionSave Connection. Follow prompts to configure operations.
🧩 Phase 3: Configure Listing Sync+
Sync & Link Listings
Sync updates product quantity, price, and mapped fields. Optionally enable:
  • Allow updating custom quantity — if enabled, the custom quantity in NetSuite can be updated by sync.
Mapping Template
Map custom fields to control which product attributes are updated. Variant attribute sync is supported.
📦 Phase 4: Configure Orders+
Get Orders
Pull Sales Orders (SO) and/or Purchase Orders (PO). Order & item IDs are saved to align future syncs. Map custom fields as needed (e.g., custbody_*).
Sync Orders
Synchronize shipments and optional custom fields. One SO can have multiple POs; each PO is handled as a separate order record.
🛠️ Phase 5: Troubleshooting & Limitations+
Connection checks
  • Confirm role permissions (incl. SuiteAnalytics Workbook in Production).
  • Regenerate tokens if revoked/unknown and re-test connection.
  • Verify correct environment targeting (Production vs Sandbox).
  • If your organization requires IP allow-listing, have IT allow the IPs provided by Flxpoint Support.
Known limitations
  • Listings: no “hide/delist” or inventory tracking config changes via sync.
  • Orders: no order acknowledgement or shipping selection; digital items/donations not supported.
  • Sync Orders: shipments sync at item level; partial shipment flows aren’t supported.
NetSuite Channel Connection

 

Listing Operations

Sync & Link Listings 

  • Sync custom fields
  • Sync variant attributes
  • Update quantity, price, and mapped fields
  • Allow updating custom quantity — when enabled, sync can update a custom quantity field in NetSuite.
  • Use the mapping template to control which product attributes are written.
  • Hiding / Delisting via sync
  • Inventory tracking configuration changes via sync

 

Order Operations

Get Orders 

  • Download Purchase Orders (PO) and/or Sales Orders (SO)
  • Order & payment statuses, receipts/invoices, currency
  • Custom fields (e.g., custbody_*)
  • Weight & dimensions (units)
  • FFL / “Expires At” date field when NetSuite exposes it as a proper date/datetime.
  • Custom FFL Number (String) — map this to a NetSuite custom field containing the FFL licence number. Flxpoint applies rule logic to derive the expiration year and month from the licence-number characters.
  • Derived FFL Expiration Date From FFL Number (Date) — stores the derived expiration date as a proper Date value, regardless of how NetSuite exposes the original field.
  • Palmetto-specific flow: field retrieved via SuiteQL instead of the standard REST call, so the connector gets the value in the correct format.
  • Alignment with the same behavior that is being applied to NetSuite Sales Order → Get Order so both flows handle FFL expiration the same way.
FFL Expiration via Licence Number Derivation. For accounts where NetSuite returns the FFL expiration date as a string (rather than a date/datetime field), use the two mapping fields above with rule logic in the Get Orders mapping template:
  1. Map Custom FFL Number to the NetSuite licence number field.
  2. Add rules on Custom FFL Number to extract the expiration year and month from the licence number (typically characters 9–10 represent the expiration).
  3. Map the output to Derived FFL Expiration Date From FFL Number — Flxpoint stores this as a Date field on the order.
Example: Licence 15709101-2E-05123 → rule derives expiry 2032-05-01 and stores it in Derived FFL Expiration Date From FFL Number.
Note: The previous workaround (temporarily unmapping Expires At and asking the NetSuite admin to change the field type) is no longer required for accounts using this derivation method.
  • Orders are pulled per your configuration (PO, SO, or both).
  • Order IDs and item IDs are saved to keep data aligned.
  • Fetches are filtered by creation date from integration settings.
  • Map NetSuite custom fields to Flxpoint order fields as needed.
  • FFL / “Expires At” handling: the job expects the field as date/datetime. If NetSuite sends it as a string, the job can fail with a “provided string value” error.
  • If that happens: temporarily unmap the Expires At / FFL Expiration field → re-run Get Orders → add the expiration manually or ask the NetSuite admin to expose the field as date/datetime.
  • For tenants configured like Palmetto, the SuiteQL-based query is already deployed, so the field should arrive correctly without extra mapping.
  • Same fix is being rolled into the Sales Order flow so users don’t have to maintain two different mappings for FFL expiration.
  • Order acknowledgement
  • Shipping selection
  • Digital items / donations
  • FFL / expiration values that NetSuite only exposes as plain text without converting to date/datetime on the NetSuite side.

Sync Orders 

  • Sync shipments at the item level
  • Optionally update custom fields
  • Matches use the Order ID and Item ID saved during Get Orders.
  • One Sales Order can have multiple POs; each PO is handled individually.
  • Platform “Notify Customer” flow
  • Partial order or partial item shipments
  • Post-shipment status updates