Fixed prices, paid once·Written replies within one working day
CheckoutLoom.

Marketing and retentionWin shoppers back

View all marketing →

Support and order careAnswer faster

View all support →

Product contentBetter listings

View all product content →

Inventory and pricingPrices and suppliers

View all inventory →

Finance and riskMoney and disputes

View all finance →

Shopify and WooStore-specific

View all services →

Dropshipping and EtsyMarketplaces and print

View all services →

Explore everything

Pick a way in. Every page has a fixed price and a delivery window.

All services88 automations for storesAll platformsShopify, WooCommerce and moreAll integrations82 tools we connectRequest a quote →

ShopifyStore platform

View all Shopify →

WooCommerceStore platform

View all WooCommerce →

BigCommerceStore platform

View all BigCommerce →

WixStore platform

View all Wix →

AmazonMarketplace

View all Amazon →

EtsyMarketplace

View all Etsy →

eBayMarketplace

View all eBay →

Your platform

Automation built for the store or marketplace you already sell on.

Store platforms8 platformsMarketplaces11 marketplacesAll who we serve363 pagesRequest a quote →

DropshippersSeller type

View all dropshippers →

DTC brandsSeller type

View all dtc brands →

Handmade sellersSeller type

View all handmade sellers →

Subscription boxesSeller type

View all →

B2B and wholesaleSeller type

View all b2b and wholesale →

AgenciesSeller type

View all agencies →

PrintfulPrint-on-demand

View all Printful →

Your kind of store

Pages written for how each type of seller actually works.

Seller types14 types of sellerPrint-on-demand9 platformsPopular audiences20 moreRequest a quote →

Email and SMSKlaviyo, Mailchimp and more

View all email and sms →

Support and chatGorgias, Zendesk and more

View all →

Payments and accountingStripe, QuickBooks and more

View all →

Shipping and suppliersShipStation, DSers and more

View all →

Reviews, ads and creativeJudge.me, Meta Ads and more

View all →

Automation and dataZapier, Make, Sheets

View all →

Marketplace and feed toolsGoogle Merchant, Helium 10

View all →

Works with your tools

We build inside the apps you already pay for.

All integrations82 toolsEmail and SMSKlaviyo, MailchimpPaymentsStripe, QuickBooksRequest a quote →

How-to guidesStep by step

View all 63 how-to guides →

Templates and checklistsCopy and use

View all 68 templates →

ComparisonsTools and options

View all 44 comparisons →

Cost and ROIWhat it costs

View all 34 cost pages →

GuidesLong reads

View all 14 guides →

Compliance and riskRules in plain words

View all →

Glossary and statisticsTerms and numbers

View all 17 →

Learn before you buy

Guides, templates and honest comparisons, free to use.

Resources hub256+ free resourcesBlogPractical articlesStatisticsSourced numbersRequest a quote →
Checkout Loom blog

Inventory sync across sales channels: one count, many shop windows

Why stock counts drift between Shopify, marketplaces and warehouses, the design choices that stop it and the daily checks that catch what slips through.

  • 9 minute read
  • Written for store owners
  • Sources named
1Order2Check3Route4Ship

Selling on several channels multiplies reach and also multiplies the ways stock counts can lie. A customer buys the last blue jacket on your Shopify store at the same minute that someone buys it on a marketplace. Both orders are real, one has to be cancelled, and the cancelled customer leaves a one-star review and a chargeback risk. Stores usually meet the problem as a trickle of cancellations, then conclude that overselling is just part of multichannel selling. It is not; it is a symptom of a design that lets several systems each believe they own the number.

This guide explains how to design inventory sync so that stock stays honest. It covers the source-of-truth decision, how updates should flow, the traps in timing and rate limits, buffers and reservations, bundles and locations, and the reconciliation routine that finds the drift that always happens. It builds on the stock layer described in how to automate a Shopify store and is the technical companion to our inventory sync service. Platform details change, so confirm the specifics in each platform’s current documentation.

Why counts drift

CauseWhat happensExample
LatencyAn update takes time to reach other channelsSale on channel A at 10:00:00; channel B still shows stock at 10:00:20
Race conditionsTwo updates overwrite each otherBoth channels set the total after their own sale, and one sale is lost
Failed callsA platform rejects an update and nobody retriesRate limit hit during a sale; the update is dropped
Manual editsSomeone changes stock in one place onlyA warehouse correction typed into the store admin and nowhere else
Returns and cancellationsStock comes back in one system and not the othersA cancelled order restocks on the store but not on the marketplace
Mapping errorsThe same product has different identifiers per channelA variant matched to the wrong SKU

Almost every oversell traces to one of these six causes. The first two are inherent to any system with more than one place to buy, so the design has to expect them rather than hope to avoid them.

Decision 1: pick one source of truth

Choose a single system that holds the authoritative count for each product, and treat every other system as a follower. The source of truth is usually one of three things: your store platform, a warehouse or inventory system, or a dedicated multichannel tool. The right choice depends on where stock physically changes. If a warehouse system scans every receipt and pick, it should own the count. If the store admin is where you adjust stock by hand, the store owns it.

Source of truthChoose whenWatch out for
Store platformOne store plus a few channels, small warehouseMarketplaces must read from it; manual edits happen here
Warehouse or inventory systemBarcode scanning, several locations, purchase ordersNeeds reliable connections to every channel
Multichannel toolMany channels, standard connectorsAnother subscription and another thing that can fail
A spreadsheetVery small catalogues, temporarilyNo audit trail and easy to overwrite

Write the decision down. A one-line statement for each product group, such as stock for all clothing is owned by the warehouse system, settles arguments when a number looks wrong.

Decision 2: send changes, not totals

The most common design mistake is to have each channel send the new total to the others. When two sales happen close together, each channel sets the total after its own sale, and whichever message lands last wins, erasing the other sale. The safer pattern is to send deltas: this channel sold one unit, this return added one unit. The source of truth applies each delta in order and publishes the resulting total back to the followers. Many platforms offer an adjust operation that changes a quantity by an amount rather than setting it, which is the right tool for this.

Overwrite totalsApply changes
  • Use adjust, not set, for routine sales, returns and receipts.
  • Use set only for counts from a stocktake, where you deliberately replace the number.
  • Give each change an identifier so that a retried message is not applied twice.
  • Apply changes in order or make them commutative, so that late messages do not corrupt the total.

Decision 3: how updates travel

Updates can be pushed when something changes or pulled on a schedule. Pushing through events, such as webhooks from the store, is fast. Pulling on a timer is simple and tolerant of missed events. A robust design uses both: events for speed and a scheduled reconciliation as a safety net. Events can arrive more than once or out of order, so processing must be idempotent: applying the same event twice has the same effect as applying it once.

MethodStrengthWeaknessUse for
Event push (webhooks)Near real timeCan be duplicated or missedSales, returns, adjustments
Scheduled pullSimple, catches missed eventsDelay between runsReconciliation, small stores
Queue between systemsRetries and smoothing of burstsMore to build and monitorAnything with several channels

Rate limits, bursts and queues

A sale on a busy day can create hundreds of updates in minutes. Each platform limits how many calls you may make, and exceeding the limit causes errors. A queue sits between the source and each channel, takes updates as they arrive and sends them at a pace the target accepts, retrying failures with growing delays. Without a queue, the first burst drops updates and the counts drift on exactly the days when accuracy matters most. This is part of why jobs spanning several channels are often better built than stitched; see Zapier vs Make vs n8n for Shopify for how workflow tools differ in handling it.

Buffers and reservations

Even a good sync has a delay, so promising the very last unit on every channel invites an oversell. A buffer, also called safety stock, is a number of units you hold back from selling on slower or higher-risk channels. If the source shows three units, a marketplace with a slow sync might be shown one. You can set buffers by channel, by product velocity or by the cost of a cancellation.

Channel typeSuggested buffer approachReason
Your own storeNone or very smallFastest and most controllable
Marketplaces with strict cancellation penaltiesLarger buffer on fast sellersA cancellation costs a rating or fees
Slow or batch-synced channelsBuffer equal to expected sales in the sync gapThe gap is where oversells happen
Wholesale or B2B portalsReserve units for committed ordersLarge orders can empty stock suddenly

Reservations deal with items in a cart or on an unpaid order. Decide whether reserved stock counts as available, and for how long. A reservation that never expires will quietly hide stock, so give it a timeout.

Bundles, variants and locations

Complexity enters with products that are not one-to-one. A bundle of three items consumes one unit of each component, so selling a bundle must adjust three counts, and the number of bundles available is limited by the scarcest component. Variants need an unambiguous mapping between the SKU in each channel; a single wrong mapping sends an adjustment to the wrong colour. Several stock locations add another dimension: decide whether channels see the total across locations or only certain ones, and how fulfilment chooses the location.

  • Bundles: compute availability from components and adjust every component on sale.
  • Variants: keep one master mapping table of SKU to channel identifiers and check it on every new product.
  • Locations: define which locations are sellable to which channels, and keep returns restocking to the right place.
  • Pre-orders and backorders: mark them explicitly so that negative stock is intentional, not an error.

The daily reconciliation

Whatever you build, counts will occasionally drift, because platforms fail and people make manual edits. The control that makes this tolerable is a reconciliation job that runs daily, reads the count in the source of truth and each channel and compares them, allowing for buffers. It should fix small differences automatically where the rule is clear, and alert a person for large or repeated differences, naming the product, the channel and both numbers.

CheckAction
Count differs by one or two units on one productCorrect from the source and log it
Count differs a lot, or on many productsAlert immediately; likely a failed sync or a bad mapping
A product exists in a channel but not in the sourceFlag for review; possible mapping gap
Negative stock where it is not intendedAlert and pause sales of that product on slow channels
No updates received from a channel for a set timeAlert that the connection may be down

A worked example

Imagine a store selling 200 orders a day across its own site and two marketplaces. Before a proper sync, it overwrote totals from each channel, and about one percent of orders, two a day, had to be cancelled for lack of stock. Each cancellation costs the order’s margin, around eight dollars of lost profit on average, plus ten minutes of staff time and a risk to the marketplace rating. After moving to deltas, a queue and a small buffer, cancellations fall to a handful a month. The saving is roughly sixty cancellations a month, about $480 in margin and ten hours of time, and the more valuable gain is the marketplace rating. These are illustrative figures; the point is that oversell costs are small each time and large in total, and that the fix is mostly design.

Mistakes to avoid

  • No single source of truth. Two systems editing the same count will fight.
  • Overwriting totals. Races lose sales.
  • No retry or queue. Burst days drop updates.
  • Ignoring returns. Stock that returns but is never restocked disappears from every channel.
  • No reconciliation. Without it you learn about drift from angry customers.
  • Mapping by title. Use stable identifiers such as SKU or barcode.

If you want this built and monitored, our inventory sync service starts from a stock ledger and one channel and grows to a full multichannel programme, with alerts on every mismatch. Marketplace-specific versions exist, for example inventory sync for Amazon sellers and for BigCommerce stores. Related reading: Shopify order automation rules for tagging orders that touch stock.

Sources and further reading

Figures and rules in this guide come from the primary pages below. Platform limits and prices change, so open the page before you build on a number.

Questions

8 questions readers ask about this topic

How do I sync inventory between Shopify and other channels?

Choose a source of truth, send stock changes as deltas through a queue, keep a buffer on slower channels and reconcile daily with alerts.

Why do I oversell on marketplaces?

Usually because of sync delay, overwritten totals, dropped updates during bursts or manual edits in only one system.

What is safety stock in multichannel selling?

A number of units held back from slower or riskier channels so that the last unit is not promised twice.

Should I use webhooks or scheduled syncs?

Both. Events give speed; a scheduled reconciliation catches missed or duplicated events.

How are bundles handled?

Selling a bundle adjusts each component, and the number of bundles available is limited by the scarcest component.

Do I need a warehouse system?

Not for a small catalogue. When stock moves through scanning, several locations or purchase orders, a warehouse system is often the right source of truth.

How often should counts be reconciled?

Daily is a good baseline, with alerts for large or repeated differences, and more often on busy periods.

Can automation fix every mismatch?

It can correct small, clear differences and alert for the rest. A person should investigate large or repeated ones.

Stop overselling for good

A stock ledger, queued updates, buffers and a daily reconciliation, built for your channels and handed over.

  • Fixed price, paid once
  • Built inside your tools
  • Thirty days of fixes