Introduction
Before you can connect Shopify and NetSuite, you need to lay the foundation. This is the prerequisites phase — ensuring both systems have the right accounts, permissions, tokens, and roles in place.
Skipping or rushing this step often leads to integration errors later. For example:
- Shopify requests failing because of missing API scopes.
- NetSuite rejecting requests due to insufficient role permissions.
- Orders not syncing because sandbox vs. production wasn’t set up properly.
This guide explains everything you need to do in both Shopify and NetSuite before building your integration.
By the end of this page, you’ll have:
- A Shopify custom app with Admin API tokens.
- A NetSuite integration role with token-based authentication.
- A sandbox testing plan to validate before going live.
- Reference mapping tables for inventory, tax, discounts, and payments.
1. Shopify Setup for Integration
1.1. Choosing the Right Shopify Plan
Integration works on all Shopify plans, but capabilities differ:
- Shopify Basic/Standard → Enough for most small stores.
- Shopify Advanced → Gives more API call limits.
- Shopify Plus → Recommended for larger businesses; higher API limits and extra automation tools like Shopify Flow and Launchpad.
👉 If your store processes more than 500+ orders/day, Shopify Plus is strongly recommended for stability.
1.2. Creating a Shopify Custom App
To connect NetSuite, you need a Shopify Custom App. This provides secure API tokens for authentication.
Step-by-step:
- Go to Shopify Admin Dashboard → Settings.
- Select Apps and Sales Channels.
- Scroll down → click Develop Apps for your Store (you may need to enable developer mode).
- Click Create an App.
- Name it something clear like:
NetSuite Integration
. - Assign an app developer (usually your own account).
- Name it something clear like:
- Save the app.
1.3. Assigning API Scopes
Scopes determine what data the app can access. Without proper scopes, you’ll see “403 Forbidden” or “Access Denied” errors.
Here are the minimum scopes for a Shopify–NetSuite integration:
- Customers →
read_customers
,write_customers
- Orders & Fulfillment →
read_orders
,write_orders
,read_fulfillments
,write_fulfillments
- Products & Inventory →
read_products
,write_products
,read_inventory
,write_inventory
- Locations →
read_locations
(needed for inventory mapping) - Refunds & Returns →
read_returns
,write_returns
,read_discounts
- Payments & Transactions →
read_payment_terms
,read_transactions
👉 Tip: Start with read-only access in testing, then add write permissions when you’re ready to push data.
1.4. Generating the API Token
- From the app page → Click Configuration → select the scopes above.
- Click Install App.
- Shopify will generate:
- Admin API Access Token (the key you’ll use in integration scripts).
- API Key & API Secret (needed for OAuth2 flows).
- Store URL (e.g.,
mystore.myshopify.com
).
- Copy and save these values securely.
👉 Warning: Shopify only shows the Admin API token once. Store it in a password manager.
1.5. API Versioning in Shopify
Shopify updates APIs every quarter (e.g., 2025-01
, 2025-04
).
- Always lock your integration to a specific version.
- Otherwise, future updates may break your integration.
Example REST call:
https://mystore.myshopify.com/admin/api/2025-01/orders.json
2. NetSuite Setup for Integration
Now that Shopify is ready, let’s configure NetSuite.
2.1. Working with Sandbox vs. Production
- Sandbox = Testing environment (no risk).
- Production = Live data.
👉 Always build and test in Sandbox first, then promote to Production.
Request a Sandbox refresh if you want real store data mirrored for testing.
2.2. Creating a NetSuite Integration Role
The integration should run under a dedicated role, not your personal account.
Steps:
- Go to Setup → Users/Roles → Manage Roles → New.
- Create a new role, e.g.,
Shopify Integration Role
. - Add permissions:
- Web Services (Full)
- REST Web Services (Full)
- Custom Record Permissions (if you use custom fields/records).
- Transactions → Sales Order, Cash Sale, Credit Memo, Refund.
- Lists → Customers, Items, Locations, Tax Records.
- Setup → Log in using TBA.
- Assign this role to your integration user.
2.3. Enabling Token-Based Authentication (TBA)
- Go to Setup → Company → Enable Features.
- Under SuiteCloud, enable:
- SOAP Web Services
- REST Web Services
- Token-Based Authentication
- Save.
2.4. Creating Integration Record
- Go to Setup → Integrations → Manage Integrations → New.
- Enter:
- Name: Shopify Integration.
- Enable Token-Based Authentication.
- Disable User Credentials (for security).
- Save.
NetSuite will generate:
- Consumer Key
- Consumer Secret
👉 Save them securely.
2.5. Generating Tokens for the Role
- Go to Setup → Users/Roles → Access Tokens → New.
- Select:
- Application = Shopify Integration (from above).
- User = Integration user.
- Role = Shopify Integration Role.
- Save.
NetSuite generates:
- Token ID
- Token Secret
These, plus the Consumer Key/Secret, are what your integration uses.
2.6. RESTlets vs. REST Web Services
You can choose either:
- RESTlets (SuiteScript endpoints):
- Flexible, custom logic, lightweight.
- Best for specific workflows (e.g., creating Sales Orders from Shopify).
- REST Web Services:
- Standard record CRUD operations.
- Best for basic operations (customers, items, inventory).
👉 Best practice: Use RESTlets for complex order logic and REST Web Services for item/inventory sync.
3. Mapping Data Between Shopify & NetSuite
Before coding or connector setup, define mappings.
3.1. Location Mapping
Shopify Location ID | Shopify Location Name | NetSuite Location ID | NetSuite Location Name |
---|---|---|---|
1234567890 | Toronto Warehouse | 5 | Toronto |
9876543210 | US Fulfillment | 7 | Chicago |
3.2. Tax Mapping
Shopify Tax | NetSuite Tax Code |
---|---|
Ontario HST (13%) | HST13_ON |
California Sales Tax (8.25%) | CA_SALES_825 |
3.3. Payment Mapping
Shopify Gateway | NetSuite Payment Method |
---|---|
Shopify Payments | Credit Card |
PayPal | PayPal |
Amazon Pay | ACH |
3.4. Discount Mapping
Shopify Discount Type | NetSuite Mapping |
---|---|
Code “SUMMER10” | Line-level discount |
Automatic 15% Off | Summary discount |
4. Sandbox Testing Checklist
Before going live, always test:
- ✅ Create test products with variants in Shopify → sync to NetSuite.
- ✅ Place test orders (with discounts, multiple items, taxes).
- ✅ Confirm Sales Order is created in NetSuite.
- ✅ Fulfill order in NetSuite → confirm Shopify gets tracking.
- ✅ Refund order in Shopify → confirm Credit Memo in NetSuite.
- ✅ Stress test: 50+ orders in 10 minutes → confirm no API limits hit.
5. Best Practices for Beginners
- Always use Sandbox first → Never test in production.
- Keep API tokens secret → Store in AWS Secrets Manager, Vault, or similar.
- Monitor API limits → Shopify has request limits (2 requests/sec, 40 per app).
- Use logging & error alerts → Don’t silently fail.
- Review permissions regularly → Apply least privilege.
Summary
By now, you’ve:
- Set up a Shopify Custom App with API tokens.
- Created a NetSuite integration role with token authentication.
- Prepared mapping tables for locations, taxes, payments, and discounts.
- Built a sandbox testing plan to validate before going live.
With these prerequisites done, you’re ready to move into the next step of integration: choosing an architecture (Connector vs. Custom API).
👉 Continue to the next guide: Shopify–NetSuite Architectures: Connector vs. Custom
Leave a Reply