Stock synchronisation: how not to sell goods you do not have

Selling a product that is no longer in stock costs more than one lost transaction — it means a refund, time spent explaining things to the customer and the risk that they will not come back for future purchases. The solution is to connect the store with the warehouse or wholesaler so that the stock shown on the page matches the real stock, and to leave a small buffer for the time the systems take to exchange data.

Where the problem comes from

When the store and the warehouse are two separate systems updated by hand, there is always a time window in which the stock on the page is out of date — someone sold the last item in the physical shop and the online store does not yet know. The more sales channels (your own store, Allegro, in-person sales), the greater the risk of a mismatch. Automatic synchronisation reduces that window but does not remove it: many integrations exchange data every few minutes or less often, not in the same second.

How to solve it

  • One source of truth. Stock should be counted in one system (the warehouse, a sales program or a panel such as BaseLinker), and all sales channels should only read it, not count separately. Manual corrections are made only in that one place.
  • Automatic synchronisation. Connect the store to the warehouse through an integration that updates stock after every sale and every delivery, instead of retyping numbers by hand. It is worth knowing how many minutes pass between the integration’s data transfers — that is the length of the risk window.
  • A safety buffer. For fast-selling products and slower synchronisation, it is worth showing one or two items fewer than the real stock in the sales channels. You then sell the last items in one, most reliable channel.

Settings worth checking in the store

  • Ordering out-of-stock products. In WooCommerce a product has the backorders option, and in PrestaShop there is a setting for behaviour when the item is out of stock. Unless you deliberately sell to order with a longer lead time, ordering missing products should be switched off.
  • Holding stock for unpaid orders. WooCommerce has in its inventory settings a time for which it holds stock for an order awaiting payment (60 minutes by default). Too short a time releases the item before the customer manages to pay; too long blocks sales to others.
  • Variants. Stock must be kept for each variant (size, colour) separately, not only for the product as a whole.

The last-item test — 10 minutes

Choose a cheap product, set its stock to 1 in the source system and buy it in one channel, for example the online store. Then time with a watch how long it takes for the product to show as unavailable in the other channels. That time is the real window in which someone else can buy the same item. If it is longer than you can accept, you need to shorten the synchronisation interval or increase the safety buffer.

What to do when you do sell goods you do not have

Quick contact with the customer, a clear explanation of the situation and an offer of a way out (a similar product, a refund, priority on the next delivery) limit the damage. Silence, and sending the information only on the day of planned dispatch, works worse.

In short: one source of truth for stock, automatic synchronisation with the store and a small safety buffer are the most effective way not to sell goods that are no longer there. Check it with the last-item test.

We connect stores with warehouses and wholesalers to order — see Custom applications and integrations for your store. More about a panel for many channels: BaseLinker + PrestaShop.

Book a 15-minute call · we call you

When should we call?

We do not sell over the phone. We ask questions and tell you what makes sense.

Related articles

  1. What to prepare before commissioning a website

    Domain, logo, texts or notes, photos, price list, hours and contact details — a list of what is worth having before the first conversation…

    Kartka z napisem „To Do List” i długopis na tle kalendarza
  2. Who owns a website: domain, hosting, code

    Whoever the domain is registered to and whoever has hosting access controls the website — rights to the code depend on the contract. A…

    Dłoń trzymająca klucze przy otwartych drzwiach
  3. How much a business website costs and what it depends on

    The price of a business website depends on its scope — we show our three scopes, sample quotes, the factors that really change the…

    Kalkulator i długopis na kartce z wyliczeniami

All articles

Contact

Let’s talk about your project

Book a 15-minute call — you pick the time, we call you.

Book a 15-minute call

Prefer to write? We reply within 1 working day.

kontakt@initace.pl

Mon–Fri 9:00–19:00

Gdańsk · We work remotely across Europe.

By sending, you agree to be contacted about this. Details in the privacy policy.