-
Notifications
You must be signed in to change notification settings - Fork 2
Architecture and Capabilities
The connector is a PHP module running inside the store application. Its NetSuite client is ryanwinchester/netsuite-php, using the SuiteTalk SOAP API. It uses the store database for its queue and monitor. There is no separate connector service to host.
| Data | Direction | Implementation and boundary |
|---|---|---|
| Products | NetSuite → store | Item search, attribute mapping, batch catalog import, configurable relationships, kit bundles, related and upsell links. |
| Product images | NetSuite → store | File references in configured custom item fields, downloaded through SOAP. Existing gallery content can be removed. |
| Customer updates | Store → NetSuite | Queued customer saves after the customer has placed an order. Order export also resolves or creates a NetSuite customer. |
| Customer import | NetSuite → store | Person customers with an email, optionally filtered by a configured custom checkbox. Address and password-setup behavior is included. |
| Customer groups | Configuration and mapping | Customer-group metadata and price-level mappings. There is no general customer-group import processor. |
| Orders | Store → NetSuite | New store orders become NetSuite SalesOrder records. |
| Order changes | NetSuite → store | Existing linked order state/status and billed/fulfilled quantities. Full order creation, item edits, addresses, shipping method changes, and totals updates are outside this package. See the eligibility caveat in Known limitations. |
| Invoices | Both directions | Store invoices export as NetSuite CashSale; NetSuite cash sales import as store invoices. A separate NetSuite Invoice import processor is not registered. |
| Refunds | NetSuite → store |
CreditMemo and CashRefund records create store credit memos using custom order-link fields. This does not establish a payment-gateway refund workflow. |
| Shipments | NetSuite → store | Shipped ItemFulfillment records for linked orders, with tracking. Store shipments are not exported. |
| Stock | NetSuite → store | Saved item searches update stock using the selected single or multi-location strategy. |
| Locations | NetSuite → store | MSI source mapping exists for multi mode. The dedicated location command path has an unresolved source defect. |
| Tax and discounts | During sales export | Selectable mapping strategies for orders and cash sales. No tax-rate synchronization. |
Processor registrations and event observers define which operations are active. Feature directories are parts of one Magento module, not separately installable packages.
flowchart LR
A[Store order, customer, invoice events] --> B[Export queue]
B --> C[Export processors]
C --> D[NetSuite SOAP]
D --> E[Changed record search]
E --> F[Import queue]
F --> G[Entity and batch import processors]
G --> H[Store records]
D --> I[Saved stock searches]
I --> J[Stock and source updates]
B --> K[Monitor]
F --> K
Checkout observers enqueue work. Scheduled export processors perform the network calls later. Import searches store record payloads, and a subsequent queue-processing pass applies them. Stock processing uses a separate saved-search path and is not represented as one monitor job per stock row.
An ordinary netsuite:cron --mode=import pass first processes the existing import queue and then fetches more records. New records normally wait for the next pass. importToQueue fetches only, and processQueue processes only. An all pass performs import, export, and the stock plugin's interval check. See Scheduling and CLI.
Queued processing reduces dependence on NetSuite availability during checkout. It does not guarantee zero store load or unlimited fault tolerance. Catalog writes, index updates, growing queues, and database storage still affect the store.
Configure ownership before enabling a flow. Mapped product fields can be overwritten on import. Customer export constructs a replacement address book. Image import reconciles the existing gallery against NetSuite images. Inventory integration changes MSI reservation behavior and disables Magento's shipment source-deduction observer.
These stock hooks are registered when the module is installed. The integration's enable switch is not a universal switch for every plugin and observer declaration. See Inventory and Migration.
- Adobe Commerce B2B company import/export, company membership, and shared catalogs.
- The separate Rocket Web Import Orders add-on and its
netsuite:utils:importordercommand. - Magento 1 shell scripts or the old full-catalog
importproductscommand. - A REST/OAuth 2.0 NetSuite transport, webhooks, or a real-time push feed from NetSuite.
- Store-to-NetSuite product, stock, shipment, or credit-memo export processors.
- A return-authorization/RMA import processor, even though some inherited constants and defaults mention returns.
See Code map for every source area, data structure, and test location covered by the documentation review.
Mage-OS Labs · Source · Reviewed commit fec65e2 · September 9, 2026 · Validation and limitations
Mage-OS NetSuite Connector
Setup
Data flows
Operations and development