Businesses keeping NetSuite as the source of truth while moving onto a composable commerce platform
Connecting NetSuite to a Headless Commerce Platform
Six integration domains, event-driven sync
The Challenge
A business runs NetSuite as the source of truth for products, inventory, pricing and orders, and decides to replace a legacy eCommerce platform with a composable stack. The storefront is the visible part of that project. The integration is where it succeeds or fails.
The catalogue carries thousands of SKUs with rich attribute data: colours, materials, dimensions, brand, product manuals and marketing copy. All of it mastered in NetSuite, all of it needed in the commerce platform in a structured form. Stock availability has to reflect real quantity at every location rather than a single aggregate number. Images are usually spread across several systems. Standard, sale, promotional and customer-group pricing all have to land within minutes.
Legacy integrations in this position are almost always tightly coupled. Any change to a NetSuite custom field, or to the commerce data model, means a code change in the integration layer. That coupling is the real problem, because it turns every ordinary merchandising request into a development ticket.
Our Approach
A pub/sub-style architecture on Celigo, split into six domains that deploy independently.
Product core sync. Event-driven from NetSuite item changes. Celigo pulls the full record, transforms it to the commerce platform's product draft format and upserts through the import API. Field mapping is configuration-driven through a NetSuite custom record, so a new attribute does not require code.
Availability sync. Scheduled on short intervals. Queries NetSuite for inventory across every active location, calculates available-to-promise and writes inventory entries per channel. Each location is its own supply channel, which is what makes location-level availability possible on the frontend.
Image sync. Event-driven on image add and update. Downloads the asset, validates dimensions and pushes it with the correct ordering and alt text.
Offer and pricing sync. Pushes NetSuite price levels through to commerce prices. Handles embedded variant prices, promotional prices with date ranges and customer-group pricing for B2B.
The last two domains are the ones that keep the other four honest.
Colour and variant sync. Transformation logic that maps NetSuite matrix items to commerce product variants and keeps swatches and display names consistent.
Integration governance. Every flow carries structured error handling with categorised error types, a dead letter queue, a monitoring dashboard and alerting on critical failures.
Key Metrics
Product sync latency
Before
Overnight batch
After
Minutes, event-driven
Integration structure
Before
One monolithic sync
After
6 independent flows
Inventory visibility
Before
Distribution centre only
After
Every active location
Error handling
Before
Typically unmonitored
After
Categorised, with auto-retry
New attribute lead time
Before
Code deployment
After
Configuration, about an hour
The Outcome
Product changes in NetSuite reach the storefront within minutes instead of waiting for an overnight batch. Inventory reflects real availability at each location, which is the precondition for reliable click-and-collect rather than a separate project later. Adding a product attribute becomes a configuration change rather than a deployment.
Error rates typically settle below one per cent once auto-retry is clearing transient failures. The domain split matters more than it looks: a failure in image sync stops affecting pricing, so one bad asset no longer holds up a promotion.