Shopify Sync – Technical Details
What data Synplex reads from your Shopify store, which permissions are required, and how the sync works in detail.
Access scopes (permissions)
When you install Synplex, these Shopify permissions are requested:
| Permission | Why it is needed |
|---|---|
read_products | Read your product catalogue — names, types, vendors, variants, and barcodes |
read_inventory | Read current stock levels across all locations |
write_inventory | Update inventory levels when receiving stock via purchase orders |
read_locations | Identify your warehouses and fulfilment channels |
read_orders | Read completed and historical orders for demand analysis and sales forecasting |
read_all_orders | Access full order history including older orders beyond the default 60-day window |
read_fulfillments | Track which orders have been fulfilled and when |
read_merchant_managed_fulfillment_orders | Read fulfilment data for merchant-managed locations |
read_third_party_fulfillment_orders | Read fulfilment data for third-party fulfilment providers and 3PLs |
read_inventory_transfers | Read inventory transfers between locations |
write_inventory_transfers | Create inventory transfers when fulfilling transfer orders |
write_inventory_shipments | Create inbound shipments when receiving purchase orders |
read_inventory_shipments | Read inbound shipment status |
write_inventory_shipments_received_items | Mark items as received on inbound shipments |
read_inventory_shipments_received_items | Read received items on inbound shipments |
What Synplex never accesses:
- Customer names, emails, or addresses
- Payment information or credit card data
- Admin passwords or API credentials
- Private app tokens
Webhooks (real-time events)
Synplex registers webhooks with Shopify to receive instant notifications when data changes. You do not need to configure these — they are registered automatically on install.
Products and catalogue
| Webhook | When it fires | What Synplex does |
|---|---|---|
products/create | You add a new product | Creates a product record and adds it to the inventory table |
products/update | You edit a product's name, type, vendor, or description | Updates the product record immediately |
products/delete | You delete a product | Archives the record — historical data is preserved |
collections/create | You create a new collection | Syncs collection for use in filtering |
collections/update | You edit collection membership or details | Updates product-to-collection associations |
collections/delete | You delete a collection | Updates product records accordingly |
Inventory and locations
| Webhook | When it fires | What Synplex does |
|---|---|---|
locations/create | You add a new warehouse or channel | Creates a location record and begins tracking inventory there |
locations/update | You edit a location's name or address | Updates location details |
locations/activate | You activate an inactive location | Begins tracking inventory levels at that location |
locations/deactivate | You deactivate a location | Marks as inactive, stops generating reorder recommendations for it |
locations/delete | You delete a location | Archives the location record, preserves historical data |
inventory_levels/connect | A new SKU-location tracking connection is created | Registers the variant-location pairing |
inventory_levels/update | Stock quantity changes — sale, restock, or manual adjustment | Updates on-hand inventory immediately and recalculates statuses |
inventory_levels/disconnect | A SKU is no longer tracked at a location | Stops monitoring that variant at that location |
inventory_items/create | A new variant is created | Creates a variant record |
inventory_items/update | Variant details change — SKU, barcode, cost, or weight | Updates the variant record |
inventory_items/delete | A variant is deleted | Archives the variant record |
Shop and billing
| Webhook | When it fires | What Synplex does |
|---|---|---|
shop/update | Your shop settings change — name, currency, or timezone | Updates shop metadata |
app/uninstalled | You uninstall Synplex | Stops syncing and cleans up all registered webhooks |
app_subscriptions/update | Your billing plan changes or expires | Updates feature access accordingly |
Data Synplex stores
Synplex maintains local copies of the following Shopify objects to power its analysis and recommendations.
Products and variants
Products — product ID, title, type, vendor, tags, status (active or archived), descriptions, and images. Used for inventory management, reporting, and filtering.
Product variants — variant ID, parent product ID, SKU, barcode, option values (size, colour, style), unit cost if available from Shopify, pricing, and weight. Used for SKU-level inventory tracking and purchase order creation.
Inventory items — inventory item ID, variant ID, tracking status, SKU, cost basis, and timestamps. Used for inventory integrity and cost data.
Locations and stock
Locations — location ID, name, type (warehouse, pop-up, etc.), address, fulfilment service details, and active/inactive status. Used for multi-location tracking and supply planning.
Inventory levels — inventory level ID, inventory item ID, location ID, on-hand quantity, available quantity, and last updated timestamp. Used for real-time stock status, stockout alerts, and supply planning.
Inventory quantities — historical snapshots of inventory levels linked to locations. Used for trend analysis and inventory variance reporting.
Collections and orders
Collections — collection ID, title, handle, description, and timestamps. Used for product grouping and filtered analysis.
Collection membership — the association between each product and its collections. Used for collection-based filtering and bulk operations.
Orders — order data is read from Shopify for demand analysis and sales forecasting but is not stored in full detail. Only aggregated demand signals are retained.
Billing
App subscription — subscription plan ID, status (active, expired, or cancelled), and billing cycle details. Used for plan enforcement and feature access.
How the initial sync works
When you first install Synplex, the following happens in sequence:
- You grant the access scopes listed above
- Synplex reads your full product catalogue, all inventory levels, and all active locations
- Historical order data is read and aggregated for demand analysis
- All webhooks are registered automatically
- Your inventory table is populated and ready to use
From that point, all updates flow in real time via webhooks. The nightly reconciliation runs every day overnight to catch anything webhooks may have missed and to recompute all product metrics on a fresh baseline.
Security and privacy
- No customer data — Synplex never accesses customer names, emails, addresses, or payment information
- No passwords — authentication uses Shopify OAuth; you never share a password with Synplex
- Read-only for stock display — Synplex reads Shopify data and only writes back to Shopify when you explicitly action a purchase order receipt or transfer
- Data in transit is encrypted — all webhook payloads and API calls use HTTPS
- Access can be revoked at any time — uninstalling Synplex from Shopify immediately disconnects the integration and cleans up all webhooks
Troubleshooting
A new product isn't appearing in Synplex Check that the product is published and set to Active in Shopify — draft and archived products are not synced. If the product is active and still missing, go to Settings → Sync and trigger a manual sync.
An inventory quantity isn't updating Check that inventory tracking is enabled for the variant in Shopify and that the location is active. If both are correct, trigger a manual sync via Settings → Sync.
A location is missing from Synplex Check that the location is activated in Shopify — deactivated locations are not tracked. If you recently added a location, trigger a manual sync to pick it up immediately rather than waiting for the next webhook.
Related
- Integrations Overview — which integration to use for your needs
- Connection & Data Status — how to check if your sync is healthy
- Stock Data is Read-Only — why stock quantities cannot be edited in Synplex