Shopify Setup (A→Z)
The complete guide to connecting IEMSuite to your Shopify store - from installation to testing your first sync.
This guide takes you from zero to a fully operational IEMSuite ↔ Shopify integration. Follow each step in order - skipping steps causes sync failures.
Before You Start
Make sure you have the following ready:
- A Shopify store with admin access (you need to be Owner, Co-owner, or have App installation permission)
- An IEMSuite account - register at app.iemsuite.com if you haven't already
- Your products already in Shopify - IEMSuite imports products from Shopify, not the other way around
- At least one Shopify location enabled in Shopify Settings → Locations
Step 1 – Install the App
Go to the Shopify App Store
Search for "IEMSuite" or use the direct link from iemsuite.com. Click "Add app".
You are redirected to the IEMSuite OAuth screen
IEMSuite will show a login prompt. If you already have an IEMSuite account, log in. If not, you will be prompted to create one.
Link your Shopify store to your organization
After login, IEMSuite links your Shopify store to your existing organization (or creates a new one if this is your first login).
Step 2 – Authorize OAuth Permissions
Shopify will show you a permission screen listing what IEMSuite needs access to. Here is what each permission is for:
| Permission | Why IEMSuite Needs It |
|---|---|
read_products / write_products | Import product catalog and sync variant details. |
read_inventory / write_inventory | Read current Shopify inventory levels and push updated levels after stock movements. |
read_locations | Discover your Shopify locations for location mapping. |
read_orders / write_orders | Import Shopify orders and mark them as fulfilled. |
read_fulfillments / write_fulfillments | Create Shopify fulfillment records when you confirm a shipment in IEMSuite. |
read_customers | Link Shopify customer records to IEMSuite client records. |
Click "Install" on the Shopify permission screen
This grants IEMSuite the OAuth access token for your store.
You are redirected back to IEMSuite
IEMSuite shows a "Connection Successful" confirmation and begins the initial sync.
Step 3 – Initial Product Sync
Immediately after authorization, IEMSuite runs an initial product import from Shopify. This may take 1–5 minutes depending on your catalog size.
What happens during the initial sync:
- Every Shopify product variant is imported as an IEMSuite FINISHED_GOOD product
- The Shopify Product ID and Variant ID are saved on each product for future inventory pushes
- If a product already exists in IEMSuite with a matching SKU, the Shopify IDs are linked to the existing product (no duplicate created)
- Products without a SKU in Shopify get an auto-generated SKU:
SHOPIFY-{variant_id} - Current Shopify inventory levels are not imported - stock must be received through IEMSuite's Inbound Log
Step 4 – Map Inventory Locations
For inventory levels to push to the correct Shopify location, you must map each IEMSuite warehouse to a Shopify location.
Go to Inventory → Locations
Click on the warehouse you want to map.
Find your Shopify Location ID
In Shopify Admin, go to Settings → Locations. Click a location. The Location ID is the number in the URL: /admin/settings/locations/{locationId}.
Enter the Shopify Location ID
Paste the ID into the "Shopify Location ID" field on the IEMSuite location.
Save
Stock movements in this IEMSuite warehouse will now push inventory to the mapped Shopify location.
Step 5 – Test Order Sync
To verify orders flow from Shopify to IEMSuite in real-time:
Place a test order on your Shopify store
Use Shopify's draft orders or create a real test order. Shopify needs to send the orders/create webhook.
Wait 30–60 seconds
IEMSuite processes webhooks asynchronously via a background queue.
Check Orders in IEMSuite
Go to Orders. The Shopify order should appear with source = SHOPIFY and the Shopify Order ID visible.
Verify stock reservation
If the ordered product has available stock, the order should be in PACKED status with a stock reservation created.
If the order does not appear after 2 minutes:
- Re-open the IEMSuite app from your Shopify admin - webhooks are re-registered automatically when the app loads
- Place the test order again
Step 6 – Verify Inventory Push
Receive stock via Inbound Log
Create an inbound log for one of your Shopify-linked products with a quantity > 0.
Check Shopify inventory
Go to Shopify Admin → Products → [product] → Inventory. The available quantity should now reflect what you received in IEMSuite (within 30 seconds).
Verify the mapped location
The inventory should appear on the specific Shopify location you mapped in Step 4, not the default location.
Step 7 – Shopify Embedded App
After installation, IEMSuite appears as an embedded app inside your Shopify Admin. Access it from Shopify Admin → Apps → IEMSuite.
The embedded app gives you access to three Shopify-specific dashboards without leaving Shopify:
| Embedded Page | Plan Required | What It Shows |
|---|---|---|
| QC Dashboard | Growth & Scale | Quality control inspections for lots linked to Shopify products. Pass/fail rates, pending inspections. |
| Cost Analytics | Scale Only | COGS per Shopify product, profit margin trends, production cost breakdown. |
| Production Costs | Scale Only | Manufacturing cost analysis for production batches linked to Shopify orders. |
Troubleshooting
Orders are not appearing in IEMSuite
Shopify webhooks may not be registered. Re-open the IEMSuite app from your Shopify admin (or reinstall it) - webhooks are re-registered automatically when the app is authorized. Then place a new test order.
Shopify inventory is out of sync
Stock levels are pushed to Shopify automatically whenever stock changes in IEMSuite. If products themselves are missing or outdated, use the "Sync Shopify" button on Inventory → Product Catalog to re-import products from your store.
Products show no Shopify Variant ID
Products created from the Shopify import are auto-linked. For manually created products, make sure the SKU matches the Shopify variant SKU, then run "Sync Shopify" on Inventory → Product Catalog so the product is matched and linked.
Fulfillment notification not sent to customer
IEMSuite creates the fulfillment record in Shopify when a shipment is confirmed as SHIPPED. Shopify automatically sends the customer email. If not received, check Shopify Admin → Notifications settings.
I see "Authorization failed" or "Store not connected"
The OAuth token may have expired. Re-open the IEMSuite app from your Shopify admin - if authorization is needed, Shopify prompts you to re-approve and the connection is refreshed.
My Shopify location shows 0 inventory even after receiving stock
Check that the IEMSuite warehouse is mapped to the correct Shopify Location ID (Step 4). Also verify the stock lot status is AVAILABLE, not PENDING_QC or QUARANTINE.
Environment Variables (Developers)
If you are self-hosting IEMSuite or setting up a development environment, you need the following Shopify-specific environment variables:
# Shopify App credentials (from Shopify Partner Dashboard → Your App → API credentials) SHOPIFY_API_KEY="" # Client ID SHOPIFY_API_SECRET="" # Client secret (keep this secret!) # Public-facing URL of your IEMSuite deployment # Shopify uses this as the redirect URL after OAuth SHOPIFY_APP_URL="" # e.g., https://app.iemsuite.com # Same as SHOPIFY_API_KEY - exposed to the frontend for the install button NEXT_PUBLIC_SHOPIFY_API_KEY=""
SHOPIFY_APP_URL and Allowed redirection URL ={SHOPIFY_APP_URL}/api/auth/shopify/callback.