Skip to main content

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:

PermissionWhy it is needed
read_productsRead your product catalogue — names, types, vendors, variants, and barcodes
read_inventoryRead current stock levels across all locations
write_inventoryUpdate inventory levels when receiving stock via purchase orders
read_locationsIdentify your warehouses and fulfilment channels
read_ordersRead completed and historical orders for demand analysis and sales forecasting
read_all_ordersAccess full order history including older orders beyond the default 60-day window
read_fulfillmentsTrack which orders have been fulfilled and when
read_merchant_managed_fulfillment_ordersRead fulfilment data for merchant-managed locations
read_third_party_fulfillment_ordersRead fulfilment data for third-party fulfilment providers and 3PLs
read_inventory_transfersRead inventory transfers between locations
write_inventory_transfersCreate inventory transfers when fulfilling transfer orders
write_inventory_shipmentsCreate inbound shipments when receiving purchase orders
read_inventory_shipmentsRead inbound shipment status
write_inventory_shipments_received_itemsMark items as received on inbound shipments
read_inventory_shipments_received_itemsRead 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

WebhookWhen it firesWhat Synplex does
products/createYou add a new productCreates a product record and adds it to the inventory table
products/updateYou edit a product's name, type, vendor, or descriptionUpdates the product record immediately
products/deleteYou delete a productArchives the record — historical data is preserved
collections/createYou create a new collectionSyncs collection for use in filtering
collections/updateYou edit collection membership or detailsUpdates product-to-collection associations
collections/deleteYou delete a collectionUpdates product records accordingly

Inventory and locations

WebhookWhen it firesWhat Synplex does
locations/createYou add a new warehouse or channelCreates a location record and begins tracking inventory there
locations/updateYou edit a location's name or addressUpdates location details
locations/activateYou activate an inactive locationBegins tracking inventory levels at that location
locations/deactivateYou deactivate a locationMarks as inactive, stops generating reorder recommendations for it
locations/deleteYou delete a locationArchives the location record, preserves historical data
inventory_levels/connectA new SKU-location tracking connection is createdRegisters the variant-location pairing
inventory_levels/updateStock quantity changes — sale, restock, or manual adjustmentUpdates on-hand inventory immediately and recalculates statuses
inventory_levels/disconnectA SKU is no longer tracked at a locationStops monitoring that variant at that location
inventory_items/createA new variant is createdCreates a variant record
inventory_items/updateVariant details change — SKU, barcode, cost, or weightUpdates the variant record
inventory_items/deleteA variant is deletedArchives the variant record

Shop and billing

WebhookWhen it firesWhat Synplex does
shop/updateYour shop settings change — name, currency, or timezoneUpdates shop metadata
app/uninstalledYou uninstall SynplexStops syncing and cleans up all registered webhooks
app_subscriptions/updateYour billing plan changes or expiresUpdates 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:

  1. You grant the access scopes listed above
  2. Synplex reads your full product catalogue, all inventory levels, and all active locations
  3. Historical order data is read and aggregated for demand analysis
  4. All webhooks are registered automatically
  5. 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.