Ecommerce8 min read
Inventory Sync: Keeping Store, 3PL and Marketplace In Agreement
Oversells happen when three systems each believe they own the stock number. The one-owner architecture, webhook + reconciliation sync patterns, buffer math against overselling, and the habits that survive Black Friday.
BurTech Solution
Engineering team

Every multi-channel seller eventually meets the nightmare: the storefront says twelve in stock, the warehouse says three, the marketplace just sold five, and a customer’s order for the last unit is now three customers’ orders for the last unit. Inventory disagreement is not a software bug — it is the natural state of any system where three databases each believe they own the truth, reconciled by hope and a nightly spreadsheet.
This guide is the engineering cure: the source-of-truth architecture that prevents disagreement structurally, the sync patterns (webhooks, buffers, reconciliation jobs) that implement it, the buffer math for oversell protection, and the operational habits that keep three systems agreeing at 2 a.m. on Black Friday — which is precisely when they most want to diverge.
And the human cost, since spreadsheets hide it: the person reconciling three systems nightly is doing the highest-stakes manual data entry in the company — every error a potential oversell — under the worst conditions (end of day, high volume, repetitive). The architecture below is, among everything else, the retirement plan for that particular anxiety; the reconciler becomes the exception-reviewer, per the pattern every one of these systems follows.
Why inventory disagrees: the three-owners problem
Trace any oversell postmortem and the root is the same: multiple systems with edit rights to the same fact. The store decrements on order; the 3PL decrements on pick; the marketplace decrements on its own sale; a human adjusts the spreadsheet after a stocktake — and each writes its version outward on its own schedule. Add sync delays (the marketplace updating hourly, the 3PL exporting nightly) and disagreement is not a risk; it is the schedule. The fix is never “sync harder” between co-equal owners — bidirectional sync between systems that both edit is how conflicts breed — it is demotion: one owner, everyone else a subscriber.
The vocabulary quickly, because vendors blur it: available (sellable now) versus on hand (physically present, including reserved/damaged/pending) versus committed (sold, awaiting fulfilment) — three different numbers, and half of all sync confusion is systems exchanging one while meaning another. Your registry should name which number each integration carries; the oversell postmortems that stump people usually end at “the marketplace was being sent on-hand.”
The architecture: one owner, many mirrors
Choosing the owner: the system closest to physical reality usually wins — the 3PL/WMS if fulfilment is outsourced (they touch the shelves), the store platform if you self-fulfil from one location, a dedicated inventory system if you run multiple warehouses or heavy B2B. The choice matters less than its consequences being enforced:
- All movements write to the owner: sales from every channel, receipts, returns, damage write-offs, stocktake corrections — one ledger, every event.
- All channels read from the owner: the store, the marketplace and any other surface display what the owner publishes — minus their channel buffer (below) — and never edit stock locally.
- The registry is written down: per data type (stock, price, product content, orders), which system owns it — the same one-page source-of-truth registry that governs every integration, because price and content sync inherit the identical pattern.
The sync patterns: events plus reconciliation
Events (webhooks) are the fast lane: a sale fires a webhook, the orchestrator writes the movement to the owner, the owner’s new level publishes to every channel — seconds of latency, and the pattern every modern platform supports natively (the same n8n-style plumbing as every data bridge, with retries and error alerts non-negotiable because a silently dropped stock event is a future oversell with a timestamp).
The reconciliation job is the safety net: nightly (hourly in peak season), pull every system’s counts, diff against the owner, and produce a report of disagreements. Events get dropped — API outages, webhook timeouts, the marketplace’s occasional moods — and reconciliation is how missed events surface as tomorrow’s fix instead of next month’s mystery. The design rule that keeps you honest: reconciliation flags; humans (or named auto-fix rules) resolve. Auto-accepting the majority count feels efficient and quietly buries the systematic leak the diff was about to reveal — the same flag-don’t-fix principle from our sync automation pattern, because a recurring discrepancy is diagnostic gold: it points at the doorway where truth escapes.
Buffer math: the oversell insurance policy
Channels sell from a published number that lags reality by their sync latency — so you reserve headroom. The working formula per SKU and channel: buffer ≈ (peak hourly sales velocity × worst-case sync latency in hours) + safety unit(s). A SKU selling 2/hour at peak on a marketplace with up-to-hourly updates wants a buffer of 2–3; a slow-mover on a webhook-fed store needs 0–1. Refinements that pay: tier by velocity (your top movers get calculated buffers; the long tail gets a blanket single unit); inflate for events (sale weekends multiply velocity — pre-scale buffers on the calendar, not after the first oversell); and zero-out endgame stock — below a threshold (say, buffer × 2), consider showing the item as low/unavailable on the laggiest channel rather than racing the last units across three surfaces. Buffers cost a little availability; oversells cost apologies, marketplace metrics and reviews. Price both and the math is rarely close.
Where truth leaks: the movements everyone forgets
- Returns: the unit exists again — but only after inspection decides sellable vs damaged. The return flow needs two paths into the owner (restock vs write-off), and “pending inspection” must not count as available.
- Damage and shrinkage: the warehouse dropped a box; nobody told the database. Give the floor a one-tap adjustment path (with reason codes) — friction here is why stocktakes surprise people.
- Manual edits in a mirror: someone “fixes” the store’s number directly, the owner disagrees an hour later, chaos resumes. Lock mirror editing where platforms allow; where they do not, make the reconciliation report name the editor — sunlight fixes habits.
- Bundles and multipacks: the three-pack sells; did three units decrement? Virtual SKUs must map to component stock in the owner, or bundles oversell components invisibly.
- Reserved and B2B stock: wholesale allocations and pending large orders need a reserved state, not a mental note — reserved-but-visible is a slow-motion oversell.
The build sequence: three weeks to agreement
Week one — map and appoint. Inventory every stock movement in the business (sales per channel, receipts, returns, damage, stocktakes, bundles, reservations) and where each currently gets recorded — the audit always finds movements recorded nowhere. Appoint the owner system; write the registry; design the buffer tiers from last quarter’s velocity data.
Week two — wire the fast lane. Webhooks from every selling channel into the orchestrator; movements written to the owner; published levels (minus buffers) flowing back out. Validation on every inbound event, retries and alerts on every write — the standard orchestration discipline, applied to the one dataset where silence is most expensive.
Week three — net and shadow. The reconciliation job runs nightly against all systems while the old process continues; diffs get investigated, leak doorways get their paths built (the returns flow, the floor adjustment tap). Cut over when the diff report has been boring for a full week — boring being the entire objective. Scoped builds of this shape start around $1,500–$3,000 depending on channel count, against oversell apologies and stocktake surprises that quietly cost more every quarter — this is the exact system we wired in the Petcarestore engagement’s operational layer.
Anatomy of an oversell, minute by minute
To make the architecture’s value concrete, here is the failure it prevents, reconstructed from a real (composited) postmortem. Saturday 09:00: four units of a viral SKU remain. The store shows 4 (live), the marketplace shows 4 (last synced 08:30). 09:12: two sell on the store; owner-less architecture means the store decrements itself — marketplace still shows 4. 09:40: three sell on the marketplace against its stale 4. Total sold: five of four. 09:41–10:30: the hourly sync runs, both systems now show −1 in effect, and the seller’s morning becomes triage: who gets cancelled, which platform’s metrics take the defect, which customer writes the review. The counterfactual with this article’s architecture: the 09:12 sales fire events to the owner within seconds; the owner publishes 2 to the marketplace (0 after its 2-unit velocity buffer); the 09:40 marketplace shopper sees sold-out and buys the adjacent SKU instead. Nothing dramatic happens — which cost, in total, two units of displayed availability for forty minutes. That trade, repeated across every spike forever, is the entire business case in one Saturday.
Price and content sync: the same pattern, cheaper stakes
Once the stock architecture exists, its rails carry the adjacent syncs almost free. Prices: one owner (usually the store or an ERP), published outward with per-channel rules (marketplace fees baked in, MAP floors enforced in the pipeline rather than in memory). Product content: the attribute source of truth from our product data guide feeding every channel’s format — titles trimmed to marketplace limits, descriptions adapted per surface, all from one record. The registry gains two rows; the orchestrator gains two flows; and the business gains the version of multichannel that scales: change a fact once, watch it arrive everywhere, correctly, without a Tuesday spreadsheet ritual.
Peak-season protocol
Black Friday is when latency spikes, velocity multiplies and APIs throttle — design for it in October: reconciliation frequency up (hourly), buffers pre-scaled by the event multiplier, a live diff dashboard someone actually watches during peak hours, marketplace API rate limits checked against your event volume (throttled webhooks are dropped events), and a manual kill-switch per channel — the ability to pause selling one surface in thirty seconds when its numbers go wrong is the difference between one bad hour and a weekend of cancellations. Write the runbook line for who pulls that switch and when.
The health metrics for the sync layer
Like every pipeline, this one earns trust through numbers reviewed on a rhythm:
- Diff count and value from reconciliation — trending toward boring. A stubborn recurring diff on one SKU family is a leak doorway announcing itself; investigate the pattern, not the instances.
- Event delivery rate — webhooks attempted versus confirmed written. Below ~99.5%, find the flaky channel before it finds your bestseller.
- Oversell incidents and near-misses — actual cancellations, plus times a channel hit zero within one buffer unit of a sale. Near-misses are your buffer calibration data.
- Stockout minutes on top movers — the cost side of buffers: how long bestsellers showed unavailable while owner stock existed. Rising stockout minutes with zero oversells means buffers are over-fat; trim by tier.
- Adjustment volume by reason code — the damage/shrinkage ledger. Its trends are operations intelligence (a packing station breaking things, a shrinkage pattern) that inventory data uniquely surfaces.
Fifteen minutes weekly with these five, same as every monitoring rhythm we install — and the sync layer graduates from “thing we built once” to instrument panel for the physical business behind it.
The bottom line
Inventory agreement is not a product you buy; it is an architecture you enforce: one owner, subscribed mirrors, events for speed, reconciliation for truth, buffers for latency, and a named path into the ledger for every way stock actually moves. Build it once in three weeks and the 2 a.m. disagreement simply stops being a genre of problem your business has.
Frequently asked questions
Do I need inventory management software, or can my store platform be the owner?
Single location, one or two channels, modest SKU count: the store platform as owner works fine with disciplined wiring. Dedicated systems earn their place with multiple warehouses, heavy B2B reservations, or manufacturing/kitting complexity. Add software when the model outgrows the platform, not when a sync problem appears — sync problems are architecture, and new software with the same three-owner chaos just adds a fourth owner.
How often should inventory sync run?
Event-driven for sales (seconds), plus reconciliation nightly — hourly during peaks. Pure schedule-based sync (every N minutes, no events) is acceptable only for slow-moving catalogues; its latency is exactly what buffers then must absorb.
What causes overselling even with sync in place?
In order of frequency we encounter: dropped events without reconciliation to catch them, buffers set to zero or never scaled for peaks, returns counted as available before inspection, bundle components unmapped, and a human editing a mirror. Every one is covered above; overselling with this architecture in place is rare enough to be a news event.
Should stock levels show on the storefront?
Show scarcity honestly when it is real and motivating (“two left”) — from the owner's published number, never a marketing fiction. Hide exact counts above a threshold; nobody needs to know you have 400 units, and competitors read your velocity from public counts.
What about syncing with a physical retail till (POS)?
A POS is one more selling channel with one more latency profile: modern cloud POS systems fire sale events like any platform (wire them into the owner identically), while offline-capable tills batch their sync — which makes the shop floor a laggy channel deserving its own buffer on shared stock, or better, a reserved floor allocation the online channels never see. The architecture does not change; the shop is just a marketplace with a door.
How do stocktakes fit the one-owner model?
Perfectly — they become the owner's periodic ground-truthing: count physically, enter corrections into the owner with a stocktake reason code, and let publication carry the corrections everywhere. What ends is the old ritual of reconciling the count against three systems separately; with one ledger, a stocktake is an afternoon, not a weekend, and cycle counting (a few SKUs weekly, rotating) becomes practical enough to actually happen.
Why do marketplace sellers feel this problem hardest?
Marketplace metrics make this urgent in a way owned stores never feel: cancellation and defect rates on major marketplaces carry account-level consequences — suppressed listings, lost buy-box share, suspension thresholds — so an oversell there is not one refund, it is a mark against the account that sells everything else. Sellers running thin margins on marketplace velocity should read every buffer and event-delivery recommendation above as account insurance, priced accordingly.
Written by
BurTech Solution
Engineering team
The BurTech Solution engineering team designs, builds and maintains AI automation, ecommerce stores, SaaS and custom software for growing businesses. Everything on this blog comes from work we ship for clients and run ourselves.
Keep reading
More on ecommerce.

Ecommerce10 min read
Product Photography vs Listing Images: What Amazon Rewards
Photography makes a product look true; listing images make it easy to choose. What Amazon actually rewards — the image stack, slot by slot, with the photography baseline, thumbnail-first design rules, compliance lines and how to test with data.
Read the article →
Ecommerce9 min read
Post-Purchase Flows: The Cheapest Revenue in Ecommerce
The customer who just paid you is the cheapest revenue you will ever touch. The full post-purchase machine, flow by flow — confirmations, delivery check-ins, review requests, replenishment and winback — with timing, wiring and measurement.
Read the article →
Ecommerce10 min read
Amazon A+ Content: What It Is and When It Pays
A+ Content replaces the plain Amazon description with rich modules — free with Brand Registry, powerful when designed for mobile doubt-killing, wasted as decoration. What it affects, which modules earn pixels, and when the effort pays.
Read the article →