Accentra
Shopify to NetSuite

Shopify and NetSuite, properly connected.

Orders, inventory, fulfilments and refunds moving both ways, with GST, multi-warehouse stock and click and collect handled the way Australian operations actually run.

Most Shopify and NetSuite integrations work on the day they go live and degrade from there. The connector was configured for the catalogue you had, the single warehouse you shipped from and the order volume you did last year. Then you added a location, launched click and collect, and started reconciling stock by hand again. We build the connection so that it survives the business changing around it.

What actually syncs

Six data flows carry almost every Shopify and NetSuite integration. Each one has a direction, a trigger and a failure mode, and each one needs deciding on deliberately rather than accepting whatever the connector ships with.

Shopify to NetSuite

Orders

Each order lands as a NetSuite sales order against the right subsidiary, location and tax code. Discounts, gift cards and shipping charges map to their own line types rather than being flattened into the order total.

NetSuite to Shopify

Inventory

Available quantity per location, not a single national number. This is the sync that stops overselling, and it is the one most often set up as a nightly batch when it needs to be event driven.

NetSuite to Shopify

Fulfilments

Shipment confirmations, tracking numbers and carrier details flow back so the customer gets a real despatch notification and your support team stops fielding where-is-my-order calls.

NetSuite to Shopify

Products and pricing

Items, variants, price levels and currency. NetSuite matrix items and Shopify variants model the same thing differently, and reconciling the two is where most builds spend their difficult week.

Both directions

Customers

Customer records matched on email with deduplication rules, so a repeat buyer does not accumulate six NetSuite records across three years of guest checkouts.

Shopify to NetSuite

Refunds and payouts

Credit memos for refunds, and Shopify Payments payouts reconciled against the bank so finance is not matching settlement batches by hand each month.

Three ways to connect Shopify and NetSuite

There is no single right answer, and we will tell you when the cheapest option is the correct one. The choice usually comes down to how much your process differs from the standard case, and who has to maintain the result.

NetSuite Connector

Included with some NetSuite licences

Works well for: Straightforward catalogues, a single location, standard tax. It is the fastest way to get something running.

Where it runs out: Mapping flexibility is limited. Complex variant structures, multi-location availability and non-standard tax handling are where teams typically hit its ceiling and start writing workarounds.

Celigo integration app

Roughly US$1,000 per month and up, before premium connectors

Works well for: Managed field mappings, built-in error handling and an upgrade path Celigo maintains. Ops and finance staff can read the flows without a developer.

Where it runs out: It is a licence cost on top of your NetSuite spend, and the prebuilt app still needs configuring against your actual process rather than accepted as shipped.

Custom API build

No licence, higher build and maintenance

Works well for: Total control over behaviour, and no third-party platform in the middle. Sensible when your requirements are genuinely unusual.

Where it runs out: You own the monitoring, the retries, the error queues and every Shopify API version bump. That maintenance is real and it does not stop.

Why these integrations break

Five causes account for most of the Shopify and NetSuite failures we are called in to fix. None of them are exotic, and all of them are cheaper to design out than to repair later.

SKU and variant mismatch

NetSuite matrix items and Shopify variants disagree about what a product is. Sync fails silently on the ones that do not line up, and nobody notices until stock counts drift.

Duplicate sales orders

An integration retries a failed call without checking whether the order already exists. Without idempotency keyed on the Shopify order ID, one network blip becomes two sales orders and two picks.

Batch inventory on an event problem

Hourly or nightly inventory pushes cannot keep up with a busy storefront. Availability needs to move on a webhook when an order is placed, not when the next scheduled run comes round.

Tax and subsidiary misconfiguration

GST applied at the wrong level, or orders posting to the wrong subsidiary in a multi-entity account. Finance usually finds this at period end, which is the worst possible time.

No monitoring

The integration fails at 2am, retries three times, gives up, and nobody is told. Your customers become the alerting system. Every build should have failure alerts routed to a person before it goes live.

What Australian operations need

Most Shopify and NetSuite integration guidance is written for the US market and quietly assumes sales tax, a single fulfilment model and American carriers. These four are where an Australian build diverges, and they are the parts a generic connector configuration will not give you.

GST that survives a refund

GST has to be right on the order, on shipping and on partial refunds, and it has to agree with what NetSuite posts to the general ledger. Partial refunds are where most integrations quietly get it wrong.

Multi-warehouse and store stock

Australian retailers rarely ship from one place. Per-location availability drives both the storefront and the fulfilment decision, so the inventory feed has to carry location, not just a total.

Click and collect

Collection orders need store-level availability on the product page, an order type NetSuite understands, and a fulfilment path that never routes a click and collect order to a distribution centre.

Australian carriers

Australia Post and eParcel, Shippit and StarShipIT. Labels, manifests and tracking need to flow back into both systems, and the carrier layer is usually a third integration rather than an afterthought.

How we build it

We build on Celigo for most Shopify and NetSuite work. The reasoning is maintainability: your team can read a Celigo flow and see what failed, which is not true of a custom middleware service nobody has opened in a year. More on our Celigo capability.

Flows, exports and imports

Each data flow is built as a discrete Celigo flow with its own schedule, filters and error handling, so one failing sync does not take the others down with it.

Lookup caches

Cross-reference data held in memory during a run rather than queried per record. On a large catalogue this is the difference between a flow that finishes and one that times out.

Idempotency and retries

Every write is keyed so a retry cannot create a second record. Failed records land in an error queue that can be corrected and reprocessed without replaying the whole batch.

Monitoring you actually see

Failure alerts routed to email or Slack, a reconciliation report you can read, and a hypercare period after go-live where someone is watching the first cycles.

Timeline and what drives cost

A standard two-way build runs four to eight weeks. Four things move that number, and only one of them is the integration itself.

  • Product data quality. Inconsistent SKUs and variant structures are the single largest cause of overrun. This work happens before the integration, not during it.
  • Number of entities and locations. Multi-subsidiary accounts and per-location stock add mapping and testing, particularly around tax.
  • Fulfilment complexity. Click and collect, 3PL handoffs and multiple carriers each add a flow and a set of edge cases.
  • Historical data. Migrating open orders and customer history is a separate exercise from keeping the two systems in step going forward.

Common questions

How long does a Shopify to NetSuite integration take?

A standard two-way integration covering orders, inventory, fulfilments and customers typically runs four to eight weeks from kickoff to go-live. Multi-entity accounts, click and collect, complex variant structures or a catalogue migration push that towards 8 to 16 weeks. Most of the variance sits in product data quality rather than in the integration build itself.

Should we use the native NetSuite Connector or Celigo?

Use the native connector when you have a single location, a straightforward catalogue and standard GST. Move to Celigo when you need multi-location inventory, non-trivial variant mapping, click and collect, or managed error handling that your ops team can read without a developer. The honest test is whether anyone on your team can explain what happens when a sync fails. If not, you want the managed option.

What does Celigo cost in Australia?

Celigo prices on endpoints and flows rather than transaction volume. Published tiers start at roughly US$1,000 per month for smaller deployments and scale past US$5,000 for higher flow counts, with premium connectors for systems such as NetSuite carrying additional cost. Australian pricing tracks US list pricing, so budget in USD and allow for the exchange rate. Implementation is separate from licensing.

Why does our inventory keep drifting out of sync?

Three causes account for most of it. Inventory pushed on a schedule rather than triggered by a webhook, so the storefront is always slightly behind. SKUs that do not match exactly between systems, so a subset of items silently never syncs. And bundles or kits that deduct components in NetSuite but not in Shopify. All three are fixable, and all three need the mapping corrected before any resync is worth running.

Can you fix an integration someone else built?

Yes, and it is a common starting point. We audit the existing flows, document what actually runs against what was intended, and identify whether the problems are configuration, data quality or architecture. Configuration and data issues are usually repairable in place. Architectural problems, such as no idempotency or point-to-point connections with no error handling, are worth rebuilding rather than patching.

Does this handle click and collect?

It has to, for most Australian retailers. Click and collect needs store-level stock visible on the product page, an order type that NetSuite recognises as collection rather than delivery, and fulfilment routing that never sends a collection order to a distribution centre. It is a specific build, and a generic connector configuration will not produce it.

What happens to GST on refunds and partial refunds?

A refund should create a NetSuite credit memo carrying the same tax treatment as the original order, including on the shipping component. Partial refunds are where this most often breaks, because the tax has to be apportioned rather than recalculated. We test partial refunds explicitly before go-live, since finance tends to discover the problem at period end otherwise.

Do you support Shopify Plus and B2B?

Yes. Shopify B2B introduces company records, price lists and payment terms that need mapping to NetSuite customer hierarchies and terms, which is a materially different build from a B2C store. If you run both B2C and B2B from one Shopify organisation, the integration needs to route them to different NetSuite order types.

Talk to someone who has built this before

Whether you are connecting Shopify and NetSuite for the first time or repairing a build that has stopped being trustworthy, the first conversation is free and we will tell you if the cheaper option is the right one.

Book a free integration consultation