The same SKU showing different stock counts across embed vs Instant Site vs Facebook shop indicates a sync logic gap and risks overselling.
At a glance
Counts SKUs whose stock level disagrees across the store’s surfaces - the embed widget saying five in stock while the Facebook Shop still shows twelve, for example. Ecwid’s promise is one catalogue, one stock pool, across every surface. When a surface caches or lags behind the master stock count, customers on that surface can buy items that are already gone, and the merchant ends up cancelling orders and apologising. This card surfaces the drift before the oversell.
| What it counts | The number of SKUs whose available-stock value diverges between two or more enabled surfaces at the moment of the snapshot. |
| API endpoint | Master stock read from GET /v3/{store-id}/products (OAuth2 with read_catalog scope); per-surface stock derived from each surface’s catalogue feed / channel state and compared against the master. |
| What counts as drift | Any SKU where the available quantity reported by one active surface differs from the master catalogue value (or from another surface) beyond a small reconciliation tolerance. |
| Tracked products only | SKUs with inventory tracking enabled. Products set to unlimited / untracked stock cannot drift and are out of scope here - see Products on Unlimited Stock (No Tracking). |
| Disabled surfaces | Ignored. Only surfaces that are currently active and order-capable are compared. |
| Currency | Not applicable. This is a SKU count, not a money value. |
| Time window | RT (real-time snapshot of current per-surface stock). |
| Alert trigger | Greater than 0 SKUs with divergent stock across surfaces. Any drift is worth knowing about because each drifting SKU is a potential oversell. |
| Sentiment | Inverse gauge - any non-zero value is bad. Drift is never desirable. |
| Roles | owner, operations, engineering. |
Calculation
Calculated automatically from your Ecwid data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.Worked example
A small UK candle and home-fragrance maker running Ecwid across four surfaces, snapshot taken 21 Apr 26. A best-selling scent sold down fast over a weekend. The embed and Instant Site updated promptly, but the Facebook Shop catalogue feed lagged and kept advertising stock that was already gone.| SKU | Embed | Instant Site | Master | Drift? | |
|---|---|---|---|---|---|
| Sea Salt 220ml | 3 | 3 | 11 | 3 | YES (Facebook +8) |
| Amber Noir 220ml | 7 | 7 | 7 | 7 | no |
| Fig & Vetiver 220ml | 0 | 0 | 2 | 0 | YES (Facebook +2) |
| Wild Mint refill | 15 | 15 | 15 | 15 | no |
Sibling cards merchants should reference together
| Card | Why it matters next to Inventory Sync Drift | What the combination tells you |
|---|---|---|
| Out-of-Stock Products | The master truth. | A master-zero SKU still showing stock on a surface is an active oversell, the worst drift case. |
| Low-Stock Products | Drift risk leading indicator. | Low-stock fast movers are where drift turns into oversell; watch these surfaces closely. |
| Stock-Out Burst (5+ SKUs in 1h) | The trigger event. | A burst of sell-outs is exactly when feed-based surfaces lag and drift appears. |
| Active Storefront Surfaces | The surfaces being compared. | More active surfaces = more pairs that can drift; risk scales with surface count. |
| Channel-Specific Order Drop | Adjacent surface fault. | A surface stuck on stale stock may also stop selling correctly; the two faults often co-occur. |
| Products on Unlimited Stock (No Tracking) | Out-of-scope set. | Untracked SKUs cannot drift; if a “missing” SKU is untracked, that explains its absence here. |
| Ecwid API Failure Rate Spike | Shared-cause check. | Drift plus an API spike points to a sync pipeline fault rather than a slow feed. |
| Revenue at Risk | The money exposure. | Drift on high-value heroes converts directly into at-risk revenue from cancellations. |
Reconciling against Ecwid
Where to look in Ecwid’s own dashboard:
Ecwid Control Panel (my.ecwid.com) -> Catalog -> Products -> open the drifting SKU and read its master stock figure
Then open the same SKU on each live surface: the embed on your host page, the Instant Site URL, and the Facebook/Instagram shop. Compare the availability each surface shows against the master figure.
For the social surfaces specifically, check the channel sync status under Sell Anywhere (Channels); a feed that last synced hours ago is the usual source of drift.
Why our number may differ from Ecwid’s Control Panel:
| Reason | Direction | Why |
|---|---|---|
| Feed-based surfaces are eventually consistent | Expected | Social and marketplace surfaces update on a feed schedule, so a transient gap right after a sale is normal and may clear before you can confirm it manually. |
| Reconciliation tolerance | Ours sometimes lower | A drift inside the small reconciliation tolerance is not counted; Ecwid will still show the raw per-surface numbers. |
| Untracked products | Ours lower | SKUs with no inventory tracking are excluded here but appear with stock in Ecwid’s catalogue view. |
| Snapshot timing | Either | This is a real-time snapshot; a force-resync between our snapshot and your manual check can make the drift appear or vanish. |
| Disabled surfaces | Ours lower | We only compare currently active surfaces; Ecwid may still display stock on a configured-but-off surface. |
ecwid_inventory_sync_drift = COUNT(DISTINCT sku WHERE stock_on_any_active_surface != master_stock beyond tolerance)