Data Sync
RevoStock pulls your product catalog, order history, and inventory levels directly from Shopify, then runs its forecasting and replenishment math on top of that data. This guide explains exactly what gets synced, how the two sync types differ, how to trigger a manual refresh, and what to do when the stale config banner appears.
What RevoStock syncs from Shopify
Each sync operation reads the following data from your connected Shopify store:
| Data type | What is pulled |
|---|---|
| Products and variants | Product titles, variant titles, SKU codes, vendor, and product images |
| Orders and sales history | Order line items and quantities used to calculate sales velocity and feed the demand forecast |
| Inventory items | Current stock-on-hand quantities across your locations |
| Store info | Store timezone (IANA format), currency, and your active Shopify plan |
RevoStock uses your store timezone for all schedule calculations — including when Low Stock Alert emails are delivered — and your currency for all GMV figures shown in the Dashboard and Buying Table.
RevoStock reads inventory at the store level. If you have multiple Shopify locations, stock quantities are aggregated across all active locations.
Two types of sync
Initial (full) sync
The initial sync runs once, automatically, at Step 2 of the RevoStock onboarding flow. It pulls your complete product catalog, full order history, and current inventory levels from scratch.
- Typical duration: several minutes for most stores. Large catalogs with thousands of variants or many years of order history can take up to around 30 minutes.
- What triggers it: completing the connection step during onboarding. You can also re-run it manually by selecting Re-sync all data in Settings (this is rarely needed).
- During the initial sync, the Dashboard will show a "No data has been synced yet" message until the sync completes.
Recurring (recent) sync
Once onboarding is complete, RevoStock automatically syncs your store every hour in the background. You do not need to do anything to keep this running.
- Each recurring sync picks up new and updated orders, products, and inventory since the previous sync.
The hourly sync keeps your Shopify data — orders, inventory, products — up to date and recomputes planner outputs like reorder quantities and stockout dates. The demand forecast itself is re-trained weekly on its own cadence. See Forecasting → When forecasts refresh.
- Syncs are distributed across the minute to spread load, so the exact time within each hour varies slightly.
- A per-integration lock prevents two syncs from running against the same store simultaneously, so there is no risk of duplicate or conflicting data even if something retries.
Running a manual sync
You do not need to wait for the next hourly run. There are two ways to trigger an immediate recent sync:
- Click the Refresh button next to the data-sync indicator in the page header. The indicator shows "Last synced X minutes ago" so you always know how current your data is.
- Click Recalculate now on the stale config banner (see below).
Both actions kick off the same recent sync: new orders, updated products, and current inventory levels. The Dashboard, Buying Table, and Live SKU Config view all refresh once the sync completes.
Shopify webhooks
In addition to the hourly sync, RevoStock subscribes to one Shopify webhook:
| Webhook | What it does |
|---|---|
ORDERS_DELETE | Propagates order deletions immediately, rather than waiting for the next hourly sync |
All other changes — new orders, inventory adjustments, product edits — are caught by the hourly recurring sync.
The stale config banner
If you edit your Replenishment Config (lead times, safety stock, reorder points) after the last sync ran, the Dashboard shows a banner:
"Replenishment config has changed since your last sync. Numbers shown may be outdated."
This does not mean your Shopify data is out of date. It means the replenishment calculations — reorder points, days to stockout, KPI card statuses — have not yet been recomputed using your new settings.
Click Recalculate now on the banner to trigger a sync immediately and bring all figures up to date.
Banner states at a glance
| Banner message | What is happening |
|---|---|
| "No data has been synced yet" | First install — the initial sync has not run yet |
| "Recalculating..." | A sync is currently in progress |
| "Replenishment config has changed since your last sync. Numbers shown may be outdated." | Config was edited after the last sync; manual recalc available |
The banner disappears automatically once the sync or recalculation finishes.
After a sync completes
When any sync finishes, the following parts of RevoStock update automatically to reflect the new data:
- Dashboard — KPI stat cards, Demand & Revenue chart, ABC Distribution donut, Top SKUs table.
- Buying Table — reorder suggestions, days-to-stockout figures, sales velocity.
- Live SKU Config view — current stock levels and replenishment status per SKU.
The data-sync indicator in the page header updates its timestamp to "Last synced just now."
Common issues
The Dashboard still shows old data after I clicked Refresh. The sync may still be running. Wait a few seconds and reload the page. If the "Last synced" timestamp in the header has not updated after a minute, check your Shopify connection under Settings > Integrations.
The initial sync seems stuck. For large catalogs the initial sync can take up to around 30 minutes. If the "No data has been synced yet" message persists for more than 45 minutes, disconnect and reconnect your Shopify store from Settings > Integrations, which will restart the sync from the beginning.
My stock levels in RevoStock do not match Shopify. The most common cause is that your last sync ran before a recent inventory adjustment in Shopify. Click Refresh to pull the latest levels. If the mismatch persists after a sync, confirm that the affected location is active in your Shopify store settings.