NetSuite Integration by SoftXone

Complete setup and reference documentation for the NetSuite Integration plugin. This connects WooCommerce to NetSuite ERP so orders, customers, inventory, prices, refunds, and fulfilment tracking move between the two systems automatically.

Quick start

↑ Back to top
  1. Install and activate from WooCommerce → Marketplace.
  2. In NetSuite, create an Integration record and an Access Token.
  3. Paste your 7 credentials into the Connection tab, click Test Connection.
  4. Set your defaults on the General tab, run a manual test sync.
  5. Turn on the sync channels you need in Settings.

Most stores are live in under 30 minutes. Full detail on each step below.

Requirements

↑ Back to top
RequirementMinimum
WordPress6.4
WooCommerce8.0
PHP8.1
NetSuiteProduction or Sandbox, Token-Based Authentication enabled

Checked automatically on activation; a clear notice shows if anything’s missing.

Installing the plugin

↑ Back to top
  1. WooCommerce → Marketplace → search “NetSuite Integration by SoftXone.”
  2. Buy → Install → Activate.
  3. The setup wizard opens automatically.

Note: historical orders aren’t backfilled on activation (avoids flooding NetSuite) — use the per-order Re-Sync button for one-off backfills. Your full NetSuite catalog isn’t auto-imported either — choose what to bring in from the Item Catalog tab.

Connecting to NetSuite

↑ Back to top

Open Connection tab. You’ll need:

FieldWhere to find it
Host URLYour SuiteTalk URL, e.g. https://1234567.suitetalk.api.netsuite.com
Account IDSetup → Company → Company Information
Consumer Key & SecretSetup → Integration → New Integration record
Token ID & SecretSetup → Users/Roles → Access Tokens → New
Signature AlgorithmDefault HMAC-SHA512 unless told otherwise

Click Test Connection. Failures show exactly what’s wrong — bad credentials, wrong account ID, or a missing permission. Wrong signature algorithm is auto-detected and retried.

Connection tab — TBA credentials, Test Connection.

NetSuite role permissions

↑ Back to top
CategoryRecordAccess
ListsItems, Locations, Currencies, SubsidiariesView
ListsCustomersView, Create
TransactionsSales OrderFull
TransactionsCash SaleFull (if used)
TransactionsItem FulfilmentView
TransactionsCredit MemoView, Create
SetupWeb Services, REST Web ServicesFull
OAuthTBA enabled + User Access Token—

If a permission’s missing, the Connection tab names it directly.

Initial setup

↑ Back to top

General tab: Default Subsidiary (OneWorld accounts), Default Currency, fallback customer for guest checkouts. Save, then run Manual Sync to confirm the connection end to end.

General tab — subsidiary, customer, currency defaults.
Every field has inline help — click any “?”.

Order sync

↑ Back to top

Orders push to NetSuite as a Sales Order or Cash Sale, triggered by a status you choose (default processing). Customer, currency, and subsidiary resolve automatically from the order — subsidiary from the customer’s own record, not one global default. Coupons post as a NetSuite Discount line; shipping posts as a line item or via NetSuite’s native shipping cost field.

Customer sync

↑ Back to top

Fires on registration, profile update, or checkout. Sends Individual or Company records. Missing required fields are caught before sending, so NetSuite never returns a vague error.

Inventory sync and reconciliation

↑ Back to top

Stock pulls from NetSuite on a schedule (Hourly / Every 6 Hours / Twice Daily / Daily) or on demand. Once enabled, it overwrites your WooCommerce stock numbers â€” that’s the point. Configure the Location matrix first if you want to control which warehouses count.

Reconcile compares WooCommerce against NetSuite per warehouse and shows exactly where a mismatch is. Direction: Pull only / Push only / Hybrid, with a conflict policy (NetSuite wins / WC wins / newest wins / quarantine for review).

Direction and conflict policy.
Tick which warehouses count.
Per-warehouse stock reconciliation.

Price sync

↑ Back to top

Pulls from a NetSuite price level you choose (default Base Price), filtered to your store currency. Never overwrites a sale price you’ve already set.

Item catalog

↑ Back to top

Discover pulls your NetSuite item master into a staging area — no products created yet. Select what you sell and Import to create real WooCommerce products with price, stock, and image. Inactive NetSuite items excluded by default.

Browse and selectively import.

Refund sync

↑ Back to top

WooCommerce refunds post to NetSuite as Credit Memos, mapped line by line, against the original order. One-way: WooCommerce → NetSuite only — a NetSuite-originated credit memo isn’t pulled back as a WooCommerce refund.

Fulfilment tracking

↑ Back to top

NetSuite Item Fulfilments pull tracking number and carrier onto the order automatically, with an optional customer email (off by default). Doesn’t change order status on its own.

Field mapping

↑ Back to top

Drag-drop rules for Customer, Order, and Product data: map a NetSuite field to a fixed value, a WooCommerce field, or a value conditional on a WooCommerce field (IS / IS NOT / CONTAINS / DOES NOT CONTAIN). First-match-wins. Most stores don’t need this tab.

Drag-drop field mapper. 

Sync log and reliability

↑ Back to top

Every API call is logged with the request, NetSuite’s exact response, and a plain-language error naming the field or permission at fault. Retry or cancel per row; bulk cancel available. Retention is configurable — failures are kept until cleared.

Failed syncs retry automatically (up to 5 attempts, Aggressive/Standard/Conservative presets), honoring NetSuite’s rate limits. A notification email goes out if an entity exhausts its retries.

Every API call, filterable, retry/cancel.
Full request/response per entry.

Settings reference

↑ Back to top

Six sub-sections: General, Inventory & price, Item catalog, Customer, Order, Refund & fulfilment. Each sync channel has its own on/off switch and schedule.

6 sub-sections, sticky sub-nav.

Data storage and security

↑ Back to top

Settings and stats: WordPress options table. Sync status and NetSuite IDs: stored on the order via HPOS-compliant methods. Customer/product links: user meta and product meta. Sync log: private, non-public records — no custom database tables.

NetSuite credentials are encrypted at rest (AES-256-CBC) and never shown in full — only a masked last-4, with an explicit “Show” to reveal. Every REST endpoint requires store-manager capability. Tokens and passwords are stripped before anything is logged.

Uninstalling

↑ Back to top

Deactivate: stops syncing, keeps everything. Reactivating resumes normally.

Delete: keeps your data by default. To fully remove it, turn on “Delete plugin data on uninstall” in Settings → Advanced first — off by default so nothing’s lost by accident. Your NetSuite account itself is never touched.

Known limitations

↑ Back to top
  • No NetSuite → WooCommerce customer import (WC → NS push only).
  • Fulfilment sync pulls tracking info; doesn’t auto-complete the order.
  • Refund sync is one-way (WC → NS).
  • No sub-second real-time sync — runs on WooCommerce’s background scheduler.
  • Multisite works, but each site’s settings and sync history are independent.
  • No historical order backfill on activation — new orders only, by design.
  • Currency-handling code is real, but multi-currency plugin interoperability (Aelia, WPML/WCML, WOOCS) hasn’t been independently tested.

Glossary

↑ Back to top
  • TBA: Token-Based Authentication — NetSuite’s secure connection method.
  • OneWorld: NetSuite’s multi-subsidiary edition.
  • Subsidiary: one legal entity inside a OneWorld account.
  • Credit Memo: NetSuite’s record type for a refund.
  • Item Fulfilment: NetSuite’s shipment record, with tracking info.
  • Price Level: a named pricing tier in NetSuite (e.g. “Base Price”).
  • SuiteQL: NetSuite’s query language, used internally for data pulls.
  • HPOS: WooCommerce’s modern order-storage system.

Troubleshooting

↑ Back to top
SymptomCauseFix
Test Connection fails, login errorToken revoked or Account ID mismatchReissue token, re-paste credentials
Test Connection fails, permission errorRole missing a permissionPlugin names it — add in NetSuite, retry
Order status changed, nothing in NetSuiteBackground task hasn’t firedVisit any page on your site to trigger it
Customer missing company nameNetSuite requires it for this typeCollect at checkout or adjust record type
Inventory pull returns nothingNo warehouse tickedLocation matrix → tick at least one
Imported items show $0 priceRole can’t see pricingGrant Items View, refresh catalog
Sync log entry stuck “pending”Background task interruptedRefresh — stuck entries auto-flip to failed
Mapping rule not applyingWrong comparison typeCheck IS vs CONTAINS on the rule

Support

↑ Back to top

Email: support@softxone.com.
30-day money-back guarantee. Support covers the plugin — NetSuite-side configuration work (custom roles, SuiteScript) is outside scope and can be arranged separately.

FAQs

↑ Back to top

Does it work with NetSuite OneWorld?

  • Yes — subsidiary resolves per customer automatically.

One-way or two-way sync?

  • WC → NS: orders, customers, refunds. NS → WC: stock, prices, fulfilment tracking, item catalog.

Do I need middleware like Celigo or Boomi?

  • No — direct connection, no iPaaS subscription.

Will it slow down checkout?

  • No — syncing runs in the background, not during checkout.

Will it overwrite my stock numbers?

  • No — syncing runs in the background, not during checkout.

What about Subscriptions or Bookings?

  • Renewal/booking orders sync like any other order. Subscription-specific metadata isn’t auto-mapped — use the Mapping tab if needed.

Is my data secure?

  • No — syncing runs in the background, not during checkout.

Related Products

Offer add-ons like gift wrapping, special messages or other special options for your products.

WooCommerce Subscriptions is a WooCommerce extension that lets customers subscribe to your products or services and pay on a weekly,...

Use of your personal data
We and our partners process your personal data (such as browsing data, IP Addresses, cookie information, and other unique identifiers) based on your consent and/or our legitimate interest to optimize our website, marketing activities, and your user experience.