Documentation
Shopify Sync: Full Guide & Integration
Shopify Sync (shopify-sync) bridges your LiteShoper catalog with Shopify so you can sync products, inventory, customers, orders, fulfillments, and draft orders from one admin.
On this page: Overview · Prerequisites · Shopify Partners · Create app · Credentials · URLs · OAuth scopes · Protected Customer Data · Install · Settings · Connect shop · Webhooks · Cron · Products & stock · Orders · URLs · Checklist · Troubleshooting
1. Overview
- One LiteShoper-managed Partner app can connect multiple Shopify stores
- OAuth install with Admin API scopes
- Import / export products and link inventory for stock sync
- Orders via webhooks + cron (including draft orders)
- Fulfillments, locations, customers, sync logs
Plugin page: liteshoper.com/plugins/shopify-sync
2. Prerequisites
- LiteShoper store on HTTPS (required for OAuth + webhooks)
- Active
shopify-synclicense / marketplace access - Shopify Sync plugin installed and activated
- A Shopify store (development store or live) — domain like
yourstore.myshopify.com - A free Shopify Partners account to create an app
3. Apply / sign up for Shopify Partners
- Open https://partners.shopify.com/signup
- Create a Partner account (free)
- Optional: create a Development store under Partners → Stores for testing
- Open Apps — you should be able to create an app
You do not use only the Shopify Admin “custom app” flow for this plugin. LiteShoper expects a Partner Dashboard app with Client ID + Client secret and an OAuth redirect URL.
4. Create a Partner app
- Go to partners.shopify.com → Apps
- Click Create app → Create app manually
- Name it (e.g. LiteShoper Sync – YourStore)
- Open the app → Client credentials (or Overview)
- Copy Client ID (API key) and Client secret (API secret)
5. Configure app URLs
In Partners → your app → Configuration (App URL / Allowed redirection URL(s)), set:
| Field | Value |
|---|---|
| Allowed redirection URL | https://YOUR-STORE.com/shopify/callback |
| Webhook callback (registered by LiteShoper) | https://YOUR-STORE.com/shopify/webhook |
Must match exactly (HTTPS). For local testing use ngrok or Cloudflare Tunnel.
6. Enable Admin API OAuth scopes
Go to Partners → your app → Configuration → Admin API access scopes → Select scopes.
These are API permissions (not webhook topics like orders/create). Enable at least:
| Scope | Used for |
|---|---|
read_products / write_products |
Import / export catalog |
read_inventory / write_inventory |
Stock sync |
read_orders / write_orders |
Order sync & updates |
read_draft_orders |
Draft orders → LiteShoper pending |
read_customers / write_customers |
Customer sync |
read_locations |
Multi-location stock |
read_fulfillments / write_fulfillments |
Fulfillment + tracking |
read_merchant_managed_fulfillment_orders / write_merchant_managed_fulfillment_orders |
Fulfillment Orders API |
Save the app. LiteShoper requests these scopes automatically on Connect Shop. After changing scopes, disconnect and reconnect each shop.
7. Protected Customer Data (required for orders)
Shopify blocks order APIs until your app is approved for Protected Customer Data — including custom/dev apps.
- Partners → your app → API access requests → Protected customer data access
- Select Level 1 (order line items / products)
- Select Level 2 if you need name, email, phone, or shipping address in LiteShoper
- Enable optional fields: name, email, phone, address (as needed)
- Save / submit (custom apps often approve immediately; public apps may need review)
- Confirm
read_orders(+read_draft_orders) are enabled - Reconnect each shop under Shopify → Shops
- Retry Orders → Shopify → Sync Shopify Orders
Docs: Protected customer data
8. Install Shopify Sync on LiteShoper
- Subscribe / install from LiteShoper → Shopify Sync
- Activate the plugin
- Open admin menu Shopify
9. Enter credentials in LiteShoper
Shopify → Settings (API & credentials):
- Paste API key (Client ID)
- Paste API secret (Client secret)
- Set API version (default
2026-07, or another supported version — see Shopify versioning) - Confirm OAuth redirect / webhook URLs shown match Partners
- Save credentials
10. Connect a Shopify store
- Open Shopify → Shops
- Enter domain:
yourstore.myshopify.com - Click Connect Shop
- Approve the app on Shopify
- You return to
/shopify/callback; LiteShoper stores the token, syncs locations, and tries to register webhooks
One Partner app can connect multiple shops — repeat with another .myshopify.com domain.
11. Webhooks (event topics)
Webhook topics (e.g. orders/create) are not the same as OAuth scopes (e.g. read_orders).
- Go to Shopify → Settings → Webhooks
- Confirm callback URL:
https://YOUR-STORE.com/shopify/webhook - Tick topics you need (orders, products, inventory, app/uninstalled, etc.)
- Save, then click Register webhooks (shop must be connected)
HMAC verification uses your API secret. Require matching OAuth scopes for each topic.
12. Cron
Schedule every 5–15 minutes using the URL on Shopify → Settings → Cron:
GET https://YOUR-STORE.com/cron/shopify-sync?token=YOUR_CRON_SECRET
Enable tasks (orders, draft orders, inventory/price push, queue, etc.) on that tab. Webhooks = real-time; cron = backup + batch jobs.
13. Products, inventory, locations, customers
- Shopify → Import from Shopify — pull catalog
- Shopify → Export to Shopify — push LiteShoper products
- Shopify → Link Inventory — map variants / SKUs for stock sync
- Shopify → Locations — sync locations; set default for stock
- Shopify → Customers — import / manage customer sync
14. Orders & fulfillment
- View/sync under Orders → Shopify (or Shopify → Orders)
- Optional: draft-order sync from Settings → Sync
- Fulfill with tracking from the order tools (requires fulfillment scopes)
- Check Shopify → Sync Logs if something fails
15. URL reference
| Path | Purpose |
|---|---|
/shopify/callback |
OAuth redirect after merchant installs/approves |
/shopify/webhook |
Signed webhook events (POST) |
/cron/shopify-sync?token=… |
Scheduled worker |
/shopify/print/{type} |
Print documents (admin login) |
16. Go-live checklist
- Partner app created; Client ID + secret saved in LiteShoper
- Allowed redirection URL exact match
- All required Admin API scopes enabled
- Protected Customer Data approved (for orders)
- Shop connected; locations synced
- Webhooks registered; HMAC OK
- Cron scheduled
- Test: import/export 1 product → link inventory → sync 1 order → fulfill
17. Troubleshooting
| Issue | Fix |
|---|---|
| Redirect mismatch | Partners redirect URL must equal https://YOUR-STORE.com/shopify/callback |
| Order sync 403 / protected data | Complete Protected Customer Data access, then reconnect shop |
| Missing permissions | Enable scopes in Partners → Configuration → Admin API access scopes, then re-authorize |
| 401 on webhooks | Same Client secret; keep HMAC verification enabled |
| Wrong API version | Use 2026-07 or another supported version |
| Webhooks empty | Connect shop first, save topics, click Register webhooks |
Official references:
Shopify Partners · Shopify app docs · Protected customer data · API versioning · LiteShoper Shopify Sync