How to Connect Sales, Inventory, Invoices and Shipping in One Tool
In most e-commerce stores, sales, inventory, invoices and shipping live in separate tools that know nothing about each other. Orders land in one panel, stock levels are tracked in another (or in a spreadsheet), invoices go out from a third, and labels print from a fourth. Each of those tools works fine on its own — the problem is the gap between them, which you fill every day with manual copy-pasting.
This article isn’t about a specific plugin or a “magic button”. It’s an architectural view: how to design one tool that ties the entire order-to-shipment process together around a single axis — and in what order to assemble it so you don’t get stuck.
Why scattered tools cost more than the invoice shows
The cost of separate systems is rarely visible up front. You don’t pay for it in your subscription — you pay in handling time and in errors. The three most common losses:
- Data drift. The same product has one stock level in the store, another in a spreadsheet, and yet another in the head of whoever is packing. Sooner or later you sell something you don’t have.
- Manual work that scales linearly. At 20 orders a day, copy-pasting data is a tolerable annoyance. At 200 it’s a full-time job that creates no value whatsoever.
- No single picture. Nobody can see in one place what’s paid, packed and shipped. Answering a simple customer question — “where’s my parcel?” — means checking three systems.
The common denominator of these problems is the lack of a single source of truth about the order. And that is exactly the heart of the whole architecture.
A central OMS as the axis of the operation
The solution isn’t yet another plugin bolted on the side — it’s shifting the center of gravity. At the core you put an OMS (Order Management System): a system that collects orders from all channels and carries them through their entire lifecycle. Sales, inventory, invoices and shipping stop being four islands and become layers around a single axis.
The key role of the OMS is normalization. An order from a marketplace and an order from your own store land in one consistent format: the same statuses, the same address layout, the same fields. That way the downstream layers — inventory, accounting, courier — don’t need to know where an order came from. They handle one normalized order object.
One system doesn’t mean one program that does everything. It means one axis that everything else arranges itself around.
The four layers of one process
Once the OMS is the axis, the whole sales process breaks down into four logical layers that you connect to it as sources and consumers of data:
- Sales (channels). Marketplaces and your own stores connect as channels. The OMS pulls orders and products from them into a shared queue. Multiple accounts and multiple platforms are simply more channels — the fulfillment process stays the same.
- Inventory (shared stock). Since you sell the same goods across several channels, you need one stock level that drops after every sale before overselling can happen. The OMS knows about all orders at once, so it’s the natural guardian of stock — ideally reserving a unit at the moment of order and at the variant level (size, color).
- Invoices (accounting). The document is built from order data the OMS already has — buyer, line items, amounts. There’s no need to retype anything into the accounting software.
- Shipping (couriers). The label is generated from the same order: address, delivery method, pickup point. The tracking number returns to the order, and the status flows on — to the panel and to the customer.
Notice that one thing unites the layers: they all read from the same order. That eliminates copy-pasting at the source — you enter the data (or pull it from the channel) once.
Rollout order — what not to do all at once
The biggest mistake when building “one tool” is trying to wire everything together in a single step. The proven order is incremental, and each stage delivers a separate, measurable benefit:
- First, collect orders in one place. Connect your sales channels to the OMS. The shared order view alone eliminates switching between panels.
- Sort out inventory. Turn on shared stock and synchronization to stop overselling — this is usually the most painful problem, so it delivers the fastest payoff.
- Automate the flow of events. Rules like “when an order is paid → send a notification, change status” take the routine off your team’s plate before you even add invoices and couriers.
- Add invoices and shipping. Finally you connect accounting and couriers — because only once orders and inventory are in order does the automatic document and label have something to build from.
Each step can be launched independently and none of them blocks sales. That matters: you build “one system” evolutionarily, not with a revolution that stops the store for a week.
What works today, and what’s on the roadmap
Being honest about status, because architecture is one thing and feature readiness is another. In Sellaro, the first two layers and the third one work today: a shared, normalized view of orders and products from connected channels (ready modules: PrestaShop, Sylius, WooCommerce), shared inventory, and an automation engine on domain events (WHEN → IF → THEN) with actions for email, SMS, webhooks and log entries. More channels — Allegro, Amazon, Shopify — we add on request, following the principle that we add a missing integration for free within your plan.
Invoices and shipping are the layers we’re heading toward: automatic document generation (Fakturownia, wFirma) is planned as a distinguishing feature of the Business plan, and courier integrations (InPost and others) we add as connectors as customers need them. Important: all store integrations are READ-ONLY — the OMS reads from the store but changes nothing in it and creates no listings.
What you actually gain from one tool
- Less manual work. Order data flows between layers instead of being copy-pasted. Handling scales slower than sales.
- Fewer errors. A single source of truth means one address, one stock level and one set of buyer data — there’s nowhere for them to diverge.
- Full visibility. One panel shows what’s paid, packed and shipped — no logging into three systems.
- Flexibility. A new channel or a new courier is just another layer connected to the existing axis, not a rebuild of the whole process.
Frequently asked questions
Does “one tool” mean one program that does everything?
No. It means one axis — a central OMS — around which the layers arrange themselves: sales channels, inventory, accounting and couriers. Individual features may come from different systems, but they all read from one normalized order.
Where do I start building such a system?
By collecting orders in one place — connect your sales channels to the OMS. Then sort out shared inventory, then automation, and finally invoices and shipping. Each stage delivers a separate benefit and can be launched independently without stopping sales.
Which layers already work in Sellaro today?
Today, sales (PrestaShop, Sylius, WooCommerce channels), shared inventory and the automation engine with email/SMS notifications and webhooks all work. Invoices and shipping are on the roadmap — accounting as a Business-plan feature, and courier integrations added on request.
Do I have to roll everything out at once?
No, and you shouldn’t. The architecture is incremental: you connect each layer separately, in order from orders through inventory to documents and shipping. No step blocks sales, and each one delivers a measurable effect as soon as it’s live.
Summary
Connecting sales, inventory, invoices and shipping in “one tool” isn’t a matter of a single plugin — it’s a matter of well-designed architecture around a central OMS. Once an order has a single source of truth, the layers stop drifting apart and the process scales without an army of people copy-pasting data. The key is the right order: orders and inventory first, then automation, and documents and couriers last.
Sellaro is being built as exactly that axis — sales, inventory and automation work today, invoices and shipping are on the roadmap, and we add a missing integration for free. If you want to see how it comes together in practice, read also how to connect Allegro, WooCommerce, InPost and invoices in one system and how to automate invoices, shipping and statuses, then calculate your cost on the pricing page.