← Back to the blog
8 min read

How to Sell on Allegro and WooCommerce from One Warehouse

inventorymultichannel

You have one shelf of goods, but two sales operations that “don’t know” about it: your Allegro listings and your WooCommerce store. Physically you reach for the same unit — logically each channel counts it its own way. The result: sometimes you sell something that’s already gone, sometimes you hold stock “in reserve for the store” that Allegro never sees. This guide isn’t about how to run a warehouse for two channels — it’s about how to actually sell and fulfil orders from one shared stock so that the sales channel stops mattering for what happens on the shelf.

The starting point is simple: there is one warehouse, and channels are just shop windows. A unit doesn’t belong to Allegro or to WooCommerce — it belongs to you, and the channel merely raises demand for it. The whole trick is to have both windows look at the same source of truth and to make the fulfilment process identical no matter where an order came in.

One source of stock, two sales windows

The most common mistake is holding stock in two places: a number in the Allegro panel and a second number in WooCommerce. Even with the best intentions those two numbers will drift apart — because each transaction changes one of them before the other has a chance to find out. The fix isn’t “watching them more closely”, it’s a change of model: one master stock number that both channels only read availability from.

In practice this means:

  • You count physical stock once — in one place, for the whole business, not per channel.
  • Channels don’t own the stock — they get a number to display, but they don’t “possess” it. Allegro doesn’t have “its 5 units” and WooCommerce “its 5” — there are 5 units, full stop.
  • A change in one place is visible everywhere — a sale on Allegro lowers the availability the store should immediately see, and vice versa.

This is the foundation everything else stands on. How to technically arrange the number-updating between platforms we broke down in the piece on Allegro and WooCommerce inventory sync — here we focus on what that shared number gives your sales.

SKU as the shared language of both channels

Shared stock only works if both channels talk about the same unit in the same way. That shared language is the SKU — one code per variant, identical on Allegro and in WooCommerce. Without it the system has no way to tell that an Allegro listing and a store product are physically the same goods on the same shelf.

A few rules that will save you hours of cleanup later:

  1. One variant = one SKU. Size M and size L are two different SKUs, not one product “with sizes”. You always count stock and sales at the variant level.
  2. The SKU is stable and unique. Don’t change it when you change price, photos or the listing title. It’s the key that binds the auction, the store product and the warehouse position.
  3. The same code on both sides. If Allegro has MUG-RED-300, then WooCommerce does too — not mug_red_v2. Mismatched codes are the number-one cause of “ghosts” in your stock.

Well-organized SKUs are a precondition for everything we describe below. If you’re only just setting up your catalogue and stock for two channels, start with the basics covered in the guide on inventory for Allegro and WooCommerce.

Reservation settles whose the last unit is

Shared stock and SKUs solve “how many do I have” — but the question “who gets the unit when two channels reach for it at once” remains. That’s what reservation answers: the moment an order comes in (from Allegro or the store), the unit immediately drops out of the available pool and is “promised” to that order, even though it physically still sits in the warehouse.

A simple equation, worth memorizing, works here:

Available stock = physical stock − reserved stock

As long as you calculate availability as “physical minus reserved”, the order of arrivals settles the dispute over the last unit before anyone can sell it a second time. Whoever placed the order first gets the reservation; the other channel already sees a lower number and won’t offer goods that aren’t there. This is exactly the mechanism that keeps selling from one stock across two channels from ending in a “sorry, we’ve actually run out” phone call.

Channel-independent picking

Here’s the heart of the sales perspective: once an order arrives, the channel stops mattering. An Allegro parcel and a parcel to a store customer are, for the warehouse worker, the same process — pull the goods by SKU, pack, ship. If picking looks different for each channel, you’re building two parallel processes that will drift apart.

What channel-independent picking gives you:

  • One queue to pack — all orders in one place, sorted by priority and dispatch deadline, not by “which tab”.
  • The same pull method — the worker operates by SKU and location, not by listing name. They don’t need to know whether it’s Allegro or the store — the unit is the same.
  • Fewer errors and faster handling — one well-drilled process instead of two, each with its own exceptions. Staff don’t switch between the logic of two platforms.
  • Stock settled at dispatch — only shipping actually removes the unit from the warehouse and closes out the reservation. Until then the goods are protected but still counted.

A normalized view of orders — from all channels, in one format — is exactly what an OMS (order management system) does. Instead of two panels and two logics, you get one “to-do” list, independent of where the sale happened.

How to set it up step by step

Collected in implementation order — from foundation to routine:

  1. Clean up your SKUs and make sure the same code describes the same variant on Allegro and in WooCommerce. This is a hard prerequisite — without it the rest won’t work.
  2. Set one source of stock — one physical number per variant that both channels read availability from. Channels lose the right to “their own” stock.
  3. Define the reservation moment — for most stores it makes most sense at order placement; a short cart reservation only for scarce goods.
  4. Unify picking — one queue, work by SKU, the same packing and dispatch process regardless of the channel an order came from.
  5. Close out stock at shipment — only dispatch physically removes the unit and settles the reservation, and the new availability flows back to both channels.

Where Sellaro fits in

Sellaro is an OMS platform that centralizes this scenario: products and orders from all connected channels flow into one normalized view with shared stock and shared SKUs, and the automation engine runs on domain events in a WHEN→IF→THEN model — so, for example, a drop in availability can immediately trigger an email/SMS notification, a webhook or a log entry.

Let’s be honest about status: the ready modules for connecting a store as a channel are today PrestaShop, Sylius and WooCommerce. Allegro is on the roadmap and we add it on request as part of your plan — the rule is “we’ll add a missing integration for free”. All integrations are read-only: Sellaro reads orders and stock, but does not write anything back to the store and does not create Allegro listings. The platform is in active development — we say so plainly.

Frequently asked questions

Do I have to physically merge two warehouses into one?

No. “One warehouse” here means one logical source of stock, not one building. You can hold goods in several locations — what matters is that availability is calculated centrally and that both channels read the same, up-to-date number.

What about different prices on Allegro and in the store?

Shared stock doesn’t force a shared price. Stock (how many I have) and price (what I sell it for) are two separate layers — you can sell the same unit for more or less across channels, while only the stock and SKU stay shared.

How do I avoid double-selling the last unit?

The key is reservation at order placement: the unit drops out of the available pool as soon as a channel raises demand, so the other channel already sees a lower number. As long as availability updates quickly, the double-sell window practically disappears.

Can I work this way without a ready Allegro integration?

The model of shared stock and channel-independent picking is universal — it holds regardless of the tool. In Sellaro, connecting WooCommerce is ready today; Allegro we add on request as part of your plan, since it’s on the roadmap.

Summary

Selling on Allegro and WooCommerce from one warehouse comes down to a single shift in thinking: there is one warehouse, and channels are just windows. The foundation is one source of stock and shared SKUs as the key that binds both sides. On top of that sits reservation, which settles whose the last unit is, and channel-independent picking — one queue, one process, fewer errors. Once you assemble this, where the order came from stops mattering: the fulfilment process is always the same, and the stock always balances.

Want to run shared stock and one fulfilment queue for all your channels? Calculate your cost with Sellaro — we’ll add a missing integration for free as part of your plan.