Knowledge base
Preparing your store for an ERP integration
The fields, shared API limits and responsibilities to agree before connecting a store to an ERP. A practical guide for webshop agencies.
Updated
Agreeing responsibility for the storefront and integration
An agency that builds stores on Shopify, BigCommerce or Magento delivers the theme, the checkout and the apps. Then the client asks for orders in NetSuite, stock from the 3PL and prices per customer from the ERP. That layer is a different kind of work. A storefront is deployed and then stable. An integration runs every few minutes for years, against systems that change underneath it.
| Storefront | Integration behind it | |
|---|---|---|
| When it runs | on each page view, from code you deployed | continuously, on schedules and events |
| What it depends on | the platform's theme and app APIs | the admin APIs of the store, the ERP, the WMS and supplier files |
| How a failure shows | a broken page that someone reports | a missing order or a wrong quantity that nobody sees for days |
| What changes it | your release | a new API version, a renamed field, a supplier's new export |
The second column is what we build and run. You keep the first, the client and the relationship.
Shared API limits and the fields your store needs
The apps you install and the integration draw on the same limits. Three platform facts decide how much room an integration has:
| System | Limit | Who shares it |
|---|---|---|
| BigCommerce | 150 requests per 30 seconds on Standard and Plus, 450 on Pro | every app installed on the store |
| NetSuite | 5 concurrent requests on a Standard account, 15 on Premium, 20 on Enterprise and Ultimate | every integration and script on the account |
| Shopify | GraphQL cost restored at 100 points a second, 200 on Advanced, 1,000 on Plus | nobody: each app and store pair has its own budget |
A worked example on BigCommerce Standard. The store you built runs a review app and a search app that together use 100 of the 150 requests per 30-second window. The integration has the other 50, which is 100 a minute. Reading 15,000 SKUs at one request each then takes 150 minutes, against 50 minutes on an empty quota. Reading them at 250 per page takes 60 requests: 36 seconds at 100 a minute. The integration reads in pages and only what changed, so the apps you chose keep working.
On NetSuite the shared resource is concurrency. A 3PL connector and the order integration on one Standard account share 5 slots. A sixth request is refused with CONCURRENCY_LIMIT_EXCEEDED, and an integration that does not queue its requests loses orders at peak times. The detail is in NetSuite concurrency limits and Shopify API rate limits.
Fields your build decides
Some values the ERP needs only exist if the storefront collects them. They are cheaper to settle during the build than after launch:
| The ERP needs | Where it comes from in Shopify | Where it lands in NetSuite |
|---|---|---|
| The buyer's purchase order number | poNumber on the order, filled at checkout |
otherrefnum, the "PO #" field on the sales order |
| Company or individual | purchasingEntity on a B2B order |
isperson on the customer record |
| The customer account | customer, which is null for a guest checkout |
the customer the sales order is created for |
A guest checkout on a B2B store is the common case: the order arrives without a customer, and the integration has to find or create the NetSuite customer from the email address and company name. Whether guests may check out is a storefront decision; the matching rule behind it is ours.
Checking the systems in the project
| Side | Systems |
|---|---|
| Store platforms | Shopify, BigCommerce, Magento, WooCommerce, Shopware |
| ERP | NetSuite, Business Central, SAP Business One, Acumatica, Odoo |
| Inventory, 3PL and shipping | Cin7, ShipStation, ShipBob |
| PIM | Akeneo, Salsify |
| Supplier files | CSV, Excel, XML and API feeds, see supplier feeds |
| Retail EDI | X12 orders, ship notices and invoices, see EDI integration |
The five flows these systems exchange with a store are on integrations. The pages per combination, such as Shopify and NetSuite, show the field mapping and limits for that pair.
Testing before the handover
Agree which orders, customers and products will be used for testing, who can approve the results and who will receive failure alerts after launch. Run against a test account or in a dry run before allowing changes to live records. The steps for an existing connection are in replacing an integration. For the work we can deliver under your name, see our service for agencies.
Frequently asked questions
Does it matter whether the storefront is headless?
No. The integration talks to the platform's admin API: Shopify's GraphQL Admin API, BigCommerce's REST API, Magento's REST API. The theme, a headless front end or a custom checkout are on the other side of the platform and do not change the integration.
Tell us what you need
Tell us which systems you use and what needs to work better. We reply personally within one working day. We help you define the work, then agree the price and timing before you commit.
- You know the price and the timeline before you commit to anything
- We work out the connection that takes the work off your hands
- We handle the build, hosting, monitoring and maintenance
- Your team has less information to retype and fewer discrepancies to chase