
Orders, fulfilment and stock in both directions
Magento Integrations
Magento NetSuite integration for Magento 2 and Adobe Commerce: orders, fulfilment, stock, prices and customers moving both ways on NetSuite's web services and Magento's asynchronous API.
Scope the NetSuite SyncWhy the two drift apart
Both ways orders out to NetSuite, fulfilment and stock back to Magento1 mapping document that says which field goes where, and who owns it
A Magento store and a NetSuite account start in step and drift. An order is keyed into NetSuite by hand on Monday, stock on the storefront is yesterday's count, a price changes in the ERP and not on the site, and the same customer has thirty-day terms in one system and none in the other.
The usual fix is a connector bought off the shelf, configured once by someone who has since left, and never opened again. It syncs what it was built to sync and fails quietly on the rest, which is why the reconciliation still happens in a spreadsheet every Friday.
A real integration has three parts. On one side, NetSuite's REST web services: create, read, update and delete on its records, with OAuth 2.0 tokens rather than a stored password. On the other, Magento's REST API and its asynchronous endpoints, which queue writes to a message queue and hand back an id to check on. In the middle, a mapping document that says which field goes where, in which direction, and who owns it.
Then a reconciliation that runs on a schedule and says what did not sync, by order number, before anyone notices at the warehouse. That is the part the spreadsheet was doing, and the part most connectors skip.
Where it drifts
Each of these costs someone an afternoon a week. Together they are the reason the integration gets rebuilt.

An order placed on the storefront is typed into NetSuite by someone in the office, with a different SKU format, a rounding difference and no link back to the web order number.

The nightly export says twelve in stock; the warehouse shipped the last four this morning. The storefront sells what it does not have and support handles the apology.

The price list changes in NetSuite and someone remembers to update Magento on Thursday. For three days the store sells at the old price, or the new one goes live before the catalog does.

A B2B account has net-thirty terms and a credit limit in NetSuite and pays by card on the website, because the customer record was never matched between the two.

The sync was configured by a vendor three years ago. A new custom field, a second warehouse or a NetSuite update means a ticket, a wait and an invoice, or a workaround in a spreadsheet.

An order with a special character in the address fails to post, no alert fires, and the customer calls two weeks later asking where the parcel is.
What the integration covers

Web orders posted to NetSuite as sales orders with the web order number kept, and fulfilment, tracking and invoices sent back to the customer's account.

Stock by location or warehouse pushed to Magento's inventory sources as it changes, so the storefront sells what the warehouse holds.

Price lists, price levels and currencies mapped to Magento's customer groups and tier prices, updated when NetSuite changes.

Customers and companies matched between the systems once, then kept in step: terms, credit limits, addresses and contacts.

Invoices, credit memos and payment status flowing back, so a B2B buyer sees the same balance on the site as your finance team does.

A monitor that alerts on a failed message and a scheduled reconciliation that lists what did not sync, by record, before the warehouse does.
Map, build, test, run
What moves, and which way
Minutes for a stock change to reach the storefront, on a queue that never blocks an orderYours the mapping, the code, the monitor and the report
The direction of each record is decided in the mapping, not by the tool. Orders go from Magento to NetSuite as sales orders, keeping the web order number so a customer service call can be traced in either system. Fulfilment, tracking numbers and invoices come back to the order the customer sees on the site.
Items, stock and prices flow from NetSuite to Magento, because the ERP owns them: stock per location to Magento's inventory sources as it changes, price levels to customer groups and tier prices on a schedule. Customers move both ways, matched once by email or account number and then kept in step, including terms and credit limits for B2B accounts.
Volume is handled by the queue. Magento's asynchronous endpoints accept a write and hand back an id, a consumer works through the queue in order, and a failed message is retried with a backoff rather than dropped. A spike of stock updates after a goods receipt never blocks an order.
What you keep: the mapping document, the integration code in your repository with its tests, the monitor and its alert rules, and the reconciliation report. Nothing runs on a server you cannot see, and nothing stops working when we are not in the room.
Pick the way in
The full integration: the mapping document, the NetSuite web services client, Magento's asynchronous endpoints and the queue between them, tested against your sandbox and run with a monitor and a reconciliation report. For stores that key orders by hand today or run a connector nobody can change.
For a sync another agency built that fails quietly or stopped after an upgrade: a free two-day read of the code and the logs, the failed messages listed by record, then a fixed-scope first week to stabilise and a plan to rebuild what cannot be fixed.
SAP Business One, Microsoft Dynamics 365 Business Central and Odoo connected to Magento the same way: one mapping document, Magento's asynchronous API and a queue, with the ERP's own API on the other side. The same team builds and runs all of them.
Not our word for it

Adobe Certified Expert
7 professionals
Adobe Certified Expert
4 masters
Adobe Certified Expert
9 experts
Adobe Certified Expert
14 experts
Adobe Certified Expert
14 experts
Google Analytics Certification
6 expertsTrusted by 100+ companies
Keep reading



FAQ
Tell us about your store and we will come back with straight answers.
Talk to usEither can work, and the mapping decides. A packaged connector fits a store whose records are standard and whose vendor will still be there when a field changes. Custom code on NetSuite's REST web services and Magento's asynchronous API fits a store with custom fields, several warehouses, B2B terms or a volume that needs a queue. We build the second and will tell you when the first is enough; we do not resell any connector.
NetSuite's REST web services, which give create, read, update and delete on records and SuiteQL queries, authenticated with OAuth 2.0 tokens as NetSuite itself recommends rather than a stored login. Where a record or an action is only reachable through SOAP web services or a RESTlet, we use that for the one case and say so in the mapping. Any NetSuite edition with web services enabled works.
As often as it changes, within the request limits NetSuite sets for your account. Stock updates are event-driven where NetSuite can raise them and polled on a short schedule where it cannot, then queued into Magento's inventory sources. A goods receipt reaches the storefront in minutes; a full catalog resync runs on a schedule you set, usually nightly.
NetSuite locations map to Magento's inventory sources, and Magento's stocks decide which sources serve which website. The mapping lists each location, whether it is sellable online, and which store view sees it. A second warehouse added later is a change to the mapping and the configuration, not a rebuild.
Yes. NetSuite price levels map to Magento customer groups and tier prices; customer-specific pricing maps to shared catalogs on Adobe Commerce. Terms, credit limits and the invoice balance come across to the company account, so a buyer who has net-thirty terms in NetSuite can check out on account on the site.
The message is retried with a backoff, and if it keeps failing it is parked and an alert goes out naming the record and the reason: a missing SKU, a validation error, a NetSuite limit. The scheduled reconciliation lists every parked message by order or item number. Nothing is dropped silently, which is the difference from most connectors.
The mapping takes two to three weeks, because it means sitting with your finance, warehouse and ecommerce people and writing down who owns what. The build and the sandbox testing depend on how many record types move and how custom they are: orders and stock alone is a matter of weeks, a full B2B sync with invoices, price levels and several locations is longer. The estimate names the number after the mapping.
Fixed scope after the mapping. The number of record types, directions and custom fields decides the work, and no two NetSuite accounts have the same customisations. There is no price list on this site; the written estimate follows the mapping document.
Yes, and we prefer it. Your NetSuite partner owns the ERP side: custom records, saved searches, the sandbox and the integration role with its permissions. We own the Magento side and the integration itself, and the mapping document is the contract between the two. Where there is no partner, we work directly with your NetSuite administrator.
Yes. It lives in your repository, with its tests, its configuration and the mapping document, and it runs on your infrastructure or your Adobe Commerce Cloud project. The NetSuite integration record and its tokens belong to your account. If you leave us, nothing stops.
It is built on the public APIs of both, not on database access or private classes, and tested on staging with every Magento release and patch under patch cover. NetSuite's release cycle is watched the same way: a change to a record or an endpoint is caught in the sandbox before your production account updates.
Yes. We read the code and the logs inside two business days, list the failed messages by record and the reasons, and tell you what can be fixed and what should be rebuilt. The Magento project rescue page describes the terms; the integration work is done by the team that builds our own.
Let’s build something great together!
Send us what moves between your store and NetSuite today, and what does not. We come back with the mapping outline and a written estimate.