ShipWave Channels

How inventory sync works

Understanding real-time and periodic inventory synchronization across channels.

Shopify as the source of truth

All inventory management flows from Shopify. ShipWave does not maintain its own inventory count—it reads from Shopify and transforms the quantity based on your channel settings. This means:
  • Restock in Shopify → All channels update
  • Sell on any channel → Shopify inventory decrements → All other channels update
  • Manual adjustment in Shopify → All channels update

Real-time sync via webhooks

When inventory changes in Shopify, Shopify sends a webhook to ShipWave:
  1. Shopify fires inventory_levels/update webhook
  2. ShipWave receives the webhook (typically within 1-2 seconds)
  3. ShipWave verifies the webhook signature (HMAC)
  4. ShipWave updates the internal inventory record
  5. For each active marketplace channel with auto-sync enabled:
  6. — Apply inventory buffer (subtract units or percentage)
  7. — Apply inventory floor (if below floor, set to 0)
  8. — Call marketplace API to update quantity
Total latency: Usually under 10 seconds from Shopify change to marketplace update.

Periodic reconciliation

Every 15 minutes, a cron job runs to catch any missed updates:
  1. Query all channels with autoSyncInventory = true
  2. For each channel, get all active listings
  3. For each listing, compare current Shopify quantity to last-pushed quantity
  4. If different, push the updated quantity
  5. Log results to sync log
This is a safety net for webhook failures, network issues, or edge cases.

Sync triggers

Inventory syncs are triggered by:
  • Shopify webhook: Any inventory change in Shopify (sale, restock, adjustment)
  • Marketplace order import: When an order is imported, cross-channel deduction runs immediately
  • Cron job: Every 15 minutes for reconciliation
  • Manual sync: You can trigger a sync from the channel settings

Sync log

Every sync operation is logged:
  • Timestamp
  • Sync type (inventory_push)
  • Items processed
  • Success/failure count
  • Error details (if any)
  • Duration
View logs at Admin → Marketplace → [Channel] → Sync Logs.

Handling sync failures

If a sync fails:
  1. Error is logged with details
  2. Channel continues processing other items
  3. Next cron run will retry failed items
  4. Persistent failures show as channel errors
Common failure reasons: API rate limits, invalid credentials, marketplace outages.

FAQs

How quickly do marketplaces reflect inventory changes?
ShipWave pushes within seconds. Marketplace display varies—eBay updates almost instantly, Amazon can take up to 15 minutes to reflect changes in search results.
What if Shopify webhooks are down?
The 15-minute reconciliation cron catches any missed updates. You can also trigger a manual sync.
Does ShipWave poll Shopify for inventory?
No. ShipWave relies on webhooks for real-time updates and stores the current quantity. Polling would be too slow and resource-intensive.
Can I see what inventory was pushed to each channel?
Yes. The sync log shows exactly what was pushed, including the quantity after buffer/floor adjustments.

More in ShipWave Channels