Multichannel Dropshipping Inventory Sync: How to Stop Overselling
Inventory sync keeps every listing on every channel matched to the supplier's real stock and price. Here is why it breaks, how often it should run and how to test it.
Multichannel inventory sync means every listing on every channel shows the stock and price your supplier really has right now. When it fails, you sell goods that are gone or sell below cost. This guide explains why sync breaks, how often it should run and how to test it. GAPLI does this sync for its sellers automatically; GAPLI numbers below are as of 8 Oct 2026.
Key takeaways
- In dropshipping there are three stock records — the supplier's warehouse, your catalogue and the marketplace listing — and each can drift from the others.
- Most overselling comes from partial coverage, mishandled variants and listings that outlive their product, not from a sync that is switched off.
- Frequency matters less than coverage: a sync that runs every five minutes but skips half the catalogue is worse than a slower one that reaches every SKU.
- Price sync is as important as stock sync, because a supplier price rise can turn every sale into a loss.
- Judge suppliers by measured dispatch times, cancellations and stock accuracy, not by what they declare.
- GAPLI updated 1,250,796 catalogue items in the 24 hours before 8 Oct 2026; WooCommerce stores pull changes every few minutes and Shopify every 10 minutes.
What does inventory sync mean in multichannel dropshipping?
Inventory sync is the automatic transfer of the supplier's current quantity and price to every offer in every sales channel. In dropshipping you never see the goods, so the listing is only as accurate as the last successful update. With several channels, one supplier change has to reach several listings before the next customer clicks "buy".
It helps to separate three layers of "truth". Each is updated by a different party and on a different clock, which is why they drift apart.
| Layer | What it represents | Who updates it | Typical failure |
|---|---|---|---|
| Supplier warehouse stock | Goods physically available to ship | The wholesaler | Feed refreshed rarely or irregularly |
| Your catalogue | The platform's record of each product, price and stock | Your sync tool | Import skips products or misreads a changed feed |
| Marketplace or store listing | What the customer sees and can buy | Push from your tool to the channel | Push fails, lags or never removes a dead offer |
Most sellers check layer 2 and assume layers 1 and 3 match. The better question is how old the data the customer sees on each channel is right now. The GAPLI glossary entry on inventory sync gives the short definition.
Why do dropshippers oversell even when sync is switched on?
Because a sync that "runs" is not the same as a sync that covers everything. Overselling usually comes from quiet failures: batches that never reach part of the catalogue, variants updated at the wrong level, supplier feeds that change format, and listings that stay live after the product disappears. None of these necessarily produce an error message.
Batches that never reach part of the catalogue
Large catalogues are processed in batches. If the batch order is not fixed, a job can keep picking the same subset of products and never reach the rest. Everything looks green, yet a slice of your listings carries stock and prices from days ago. Ask your tool provider how it guarantees that every SKU is updated within a known time window.
Variants updated at the wrong level
A T-shirt in five sizes is one parent product and five sellable variants. If the sync updates the parent but not each variant, the store shows "in stock" for a size the supplier sold out days ago. This failure is easy to miss, because the product page looks normal.
Supplier feeds that change without notice
Wholesalers rename columns, change delimiters or switch encoding. An import that misreads the new structure may load partial data or set available products to zero. Both outcomes hurt: one causes overselling, the other switches off offers that could have sold.
Several processes writing the same data
When one job updates stock while another updates descriptions, they can block each other, and a job may report "finished" although its import was aborted. Logs that record only successful runs will never show it.
Listings that outlive their product
The most dangerous case is a live offer for a product that no longer exists at the supplier. Many tools handle updates (10 units to 5) but not removals. The next section covers what should happen instead.
Why are product variants the riskiest part of sync?
Variants multiply the number of stock records that must stay correct. One product in five sizes and three colours has 15 variants; listed on three channels, that is 45 separate stock values. A single duplicated or mistyped variant SKU in a supplier feed can block the update of the whole product, so the error spreads quietly.
Three variant problems cause most of the trouble:
| Problem | What the customer sees | How to catch it |
|---|---|---|
| Parent updated, variants not | "In stock" for a sold-out size | Compare 10 random variant SKUs against the supplier feed |
| Duplicate variant SKU in the feed | Whole product stuck on old data | Run a SKU uniqueness check before connecting a supplier |
| Variable product treated as simple | Sizes missing or not selectable | Check that product type matches between feed and channel |
Channels also differ in what they accept. At GAPLI, products sent to a WooCommerce store include their variants, and import works by SKU, so sending a product again updates it instead of duplicating it. The Shopify integration currently sends each product as a single variant — sizes are not yet sent to Shopify. Knowing such limits per channel stops you from listing products a channel cannot represent correctly.
What should happen to a listing when the product disappears?
The listing should stop being buyable automatically — on every channel, for every variant — as soon as the supplier stock reaches zero or the product leaves the catalogue. It should come back on its own when stock returns. Anything that relies on a person noticing the problem will fail at scale.
The lifecycle of a "ghost" listing usually looks like this:
- The supplier adds a product and you list it on several channels.
- The supplier discontinues the product or one variant and removes it from the feed.
- Your catalogue updates correctly.
- The marketplace offer stays live because the removal was never pushed.
- A customer buys it, the order cannot be fulfilled, and you cancel and refund.
Step 4 is the weak point. A good setup compares live listings with the catalogue regularly and ends offers that have no product behind them. This is how GAPLI handles it per channel, according to its integration pages:
| Channel | When stock runs out or the product leaves the catalogue |
|---|---|
| Allegro | The offer is ended when stock runs out and reactivated when it returns |
| Erli | Offers whose product has left the catalogue are switched off |
| WooCommerce | Out-of-stock products can be set to zero, moved to draft or to trash, and come back when stock returns |
| Shopify | Stock, including zero, is pushed to the store every 10 minutes |
Overselling is not only a ratings problem. Under Polish consumer rules a seller must deliver goods without undue delay and no later than 30 days after the contract, unless agreed otherwise, and a buyer facing a delay may set an extra deadline and then cancel the contract (UOKiK). An unfulfillable order always ends with a refund.
How often should you sync stock and prices?
As often as your suppliers' data changes, with no product left out of a cycle. In practice that means minutes rather than hours for channels where customers buy around the clock. Correctness beats frequency: a five-minute cycle that keeps skipping the same products just repeats the error more often.
At GAPLI the sync runs without any action from the seller: GAPLI pulls prices and stock from the wholesalers and applies the changes to published listings. In the 24 hours before 8 Oct 2026 it updated 1,250,796 catalogue items (GAPLI database). The schedule depends on the channel:
| Channel | How stock and prices reach it | Orders back to GAPLI |
|---|---|---|
| WooCommerce | The store pulls stock and price changes every 5 minutes by default, adjustable from 1 to 60 minutes | Every 5 minutes by default |
| Shopify | Stock and prices pushed every 10 minutes | Webhooks, plus a back-up check every 15 minutes |
| Allegro | Stock changes reach Allegro automatically; price and handling time are synced too | Every 15 minutes by default |
| Erli | Stock on a schedule; prices updated with stock | On a schedule and through Erli webhooks |
Two practical notes. First, a WooCommerce store needs WP-Cron or a server scheduler running every 5 minutes — without it stock and orders stall. Second, when a product shows as available at the supplier but unavailable on a channel, do not just re-run the sync; find out why that product was skipped. The FAQ on price and stock updates summarises how GAPLI handles it.
Why does price sync matter as much as stock sync?
Because a correct stock level with an outdated price can make every sale a loss. If the supplier raises the wholesale price and your listing keeps the old selling price, the marketplace commission and delivery costs come out of a margin that no longer exists. Orders keep flowing, so nothing looks wrong until you settle.
The risk is higher on marketplaces, because commission is charged on the selling price. On Allegro the commission is calculated at the moment of purchase, on the price including delivery paid by the buyer (Allegro Help). A price that is profitable in your own store can therefore lose money on a marketplace.
What a sound price sync does:
- recalculates the selling price after every supplier price import, not when someone remembers to check;
- includes the channel's commission in the calculation, separately for each channel;
- treats sudden, very large price drops from an import as suspicious until checked, so a feed error does not put goods on sale for almost nothing.
At GAPLI an Allegro offer price is built from the wholesale price, markup and Allegro commission, and prices on allegro.cz, .sk and .hu are converted at the NBP exchange rate. On Erli the commission is recalculated on every price change. Suspiciously large wholesale price drops from imports are held for review before they reach Allegro.
How do you judge suppliers by data, not declarations?
Measure what suppliers actually do over a meaningful number of orders, and compare it with what they declare. Declared handling times, "99% availability" and promised feed frequencies are claims; dispatch timestamps, cancellations caused by missing stock and return rates are evidence. Your offers should carry the measured values.
Marketplaces already work this way. Allegro shows buyers an estimated delivery time that is the sum of the dispatch time and the carrier's transit time, and it estimates transit with a model based on roughly one month of historical data (Allegro Help). If your supplier dispatches more slowly than your offer declares, you lose points in the On-time dispatch and Fast dispatch metrics, which together are worth up to 200 of the 400 sales-quality points (Allegro Help).
| What to measure | Declaration-based view | Measurement-based view |
|---|---|---|
| Handling time | "Ships in 24 h" | Median time from payment to carrier scan, last 30 days |
| Stock accuracy | "Always in stock" | Share of orders cancelled because goods were missing |
| Feed freshness | "Updated hourly" | Actual time between feed changes you observed |
| Price stability | "Stable prices" | Number of price changes in 30 days |
| Returns | "Low return rate" | Returns per 100 delivered orders |
| Tracking | "Tracking provided" | Time from payment to an active tracking number |
How to start measuring, even without special tools:
- Record order-to-dispatch time per supplier for at least 30 orders.
- Check when tracking numbers become active, not just when they are generated.
- Count cancellations caused by missing stock, per supplier.
- Before connecting a new supplier to every channel, run a small batch of orders and measure them.
- Review the figures monthly and adjust handling times, safety buffers or the supplier list.
With GAPLI you do not run these supplier relationships yourself: GAPLI manages the wholesalers, does not publish their names, and syncs the handling time to Allegro offers automatically. Who is responsible for what is set out on the How GAPLI works page.
Which 8 checks show whether your inventory sync actually works?
Run these eight checks before you trust any sync setup, and repeat them after adding a supplier or channel. Each one targets a failure mode described above. If you cannot complete a check with your current tools, treat that area as unmonitored.
| # | Check | How to do it | Warning sign |
|---|---|---|---|
| 1 | Full catalogue coverage | Export the supplier feed and your live listings, match by SKU | Products in the feed with stale data on a channel |
| 2 | Variant integrity | For each parent, compare every variant's stock on every channel | One variant out of line with the others |
| 3 | Handling time | Compare declared handling time with actual dispatch over 30 days | Actual dispatch regularly slower than declared |
| 4 | Profitability per channel | Compute break-even price per SKU per channel, including commission | Listings priced below break-even |
| 5 | Price propagation | Note a supplier price change and time its arrival on each channel | Changes reaching some channels much later than others |
| 6 | Duplicate SKUs | Search the catalogue and feeds for repeated SKUs | Any SKU used more than once |
| 7 | Error logs | Read 7 days of sync logs | No errors at all on a large catalogue — errors may be swallowed |
| 8 | Ghost listings | List live offers with no product or zero stock behind them | Any live offer without a catalogue product |
Check 7 is counter-intuitive. Real supplier feeds always contain anomalies, so a large catalogue with a perfectly clean log usually means failures are not being recorded.
How does GAPLI keep stock and prices in sync across channels?
GAPLI is a Polish full-dropshipping platform: the seller connects an Allegro, Erli or Aderlo account or a WooCommerce or Shopify store, and GAPLI supplies products from partner wholesalers, forwards orders, tracks parcels, issues customer invoices and settles the money. Price and stock sync is part of that service, not a separate add-on.
What that means in practice, as of 8 Oct 2026:
- Catalogue: 980,891 products available for sale from 161 active wholesalers (GAPLI database).
- Updates: 1,250,796 catalogue items updated in the last 24 hours (GAPLI database).
- Live channels: Allegro (selling to Poland, Czechia, Slovakia and Hungary), Erli, Aderlo, WooCommerce and Shopify. eMAG, Empik, TikTok Shop and eBay are in beta, and access is not yet open to everyone.
- Removals: offers are ended or switched off when stock runs out or the product leaves the catalogue, as shown in the table above.
- API: every plan includes API access, so you can read stock and prices into your own tools; there is also an n8n node, n8n-nodes-gapli.
One shared catalogue feeds every channel attached to your store, so you do not maintain supplier feeds yourself. Opening an account and the Start plan are free (1 store, 1,000 products per store, no payment card); see GAPLI pricing. For how delivery promises and tracking fit in, read the delivery optimisation guide. You can create a free account to connect your first channel.
Frequently asked questions
Can I sell the same product on Allegro and WooCommerce without updating stock by hand?
Yes, if one catalogue feeds both channels and the sync covers every SKU and variant. With GAPLI both channels draw on the same catalogue: Allegro receives stock changes automatically and a WooCommerce store pulls them every 5 minutes by default. Your WordPress hosting must run scheduled tasks reliably.
What is a ghost listing in dropshipping?
It is a live offer for a product the supplier no longer has, usually because the removal never reached the channel. The customer can buy it, but the order cannot be shipped, so it ends in cancellation and refund. The fix is regular comparison of live listings with the catalogue and automatic ending of unmatched offers.
Should I keep a safety buffer below the supplier's stock?
For suppliers whose feeds update rarely or prove inaccurate, a buffer reduces overselling at the cost of a few missed sales. Base the size of the buffer on what you measure — cancellations caused by missing stock and feed freshness — rather than a fixed rule. Reliable, frequently updated suppliers need little or none.
Does a faster sync interval solve overselling?
Only if every product is actually included in each cycle. Frequency helps when the supplier's data changes quickly, but it cannot fix skipped products, broken variants or offers that are never removed. Check coverage first, then tune the interval.
Sources
- GAPLI data (catalogue size, active wholesalers, items updated in 24 hours, channel status, sync schedules): GAPLI database and GAPLI integration pages, as of 8 Oct 2026
- UOKiK, consumer rights portal — delivery of goods
- Allegro Help — how sales commission is calculated
- Allegro Help — estimated delivery time
- Allegro Help — how points are awarded for each sales quality metric
Related Content
GAPLI Team
E-commerce automation & dropshipping insights.