At 8:00 on a Tuesday, the buyer for a three-store retailer opens Shopify and sees 23 units of a blue linen overshirt. The POS at the Barcelona store shows 17. A second store reports 4 on hand in a spreadsheet from yesterday afternoon. None of these numbers is necessarily wrong. Each reflects a different moment, system, and channel. The problem starts when an online customer buys the last available unit while a store associate is putting that same unit into a fitting room.
This is the everyday version of fragmented inventory. It does not require a complex global operation. A growing retailer with three physical locations, a Shopify shop, and 2,000 to 4,000 SKUs can create it with perfectly ordinary tools. Each system records sales, returns, transfers, receipts, and adjustments according to its own rules. The team then spends the day comparing screens and deciding which number to trust.
A single inventory view does not mean every channel has identical stock at every millisecond. It means the business has one operational record for what is available, where it is located, what is reserved, and which movements are still being processed.
Why four stock figures create one operational problem
Store teams usually experience the issue first. An associate cannot find an item that the POS says is available. The online team promises next-day dispatch based on a quantity that has already been sold in a shop. A buyer sees slow movement in one report and over-orders because stock in another location is invisible. None of these people is making an unreasonable decision. They are working from incomplete views.
The split often develops in small steps:
- The point-of-sale system tracks completed store transactions.
- The ecommerce platform tracks online orders and cancellations.
- A spreadsheet records transfers, damaged units, or stock counts.
- A warehouse or purchasing tool holds incoming quantities.
- Staff make same-day corrections in whichever system they happen to be using.
When those records are not connected, “available stock” becomes a matter of interpretation. Does it include units reserved in an unpaid online order? Does it include items waiting for a transfer? Does it include stock marked as damaged but not yet removed from the shelf? A number without its status is not enough for a buying or fulfilment decision.
What one inventory view should actually contain
The useful goal is not to display a large total at the top of a dashboard. It is to show the stock position behind that total. For each SKU and location, the team should be able to distinguish at least four quantities:
- On hand: units physically recorded at the store, warehouse, or other location.
- Reserved: units committed to an order, customer collection, transfer, or other defined process.
- Available to sell: on-hand units minus reservations and any operational buffer.
- Incoming: units expected from a supplier, transfer, or return that have not yet been received.
That distinction changes the conversation. A store manager can see that six units are physically present, four are reserved for click and collect, and only two can be offered to a new customer. An online operator can see that a product is not out of stock overall, but is unavailable for immediate dispatch because the remaining units are in another location.
The view also needs an event history. A current quantity tells you what the system believes now. A movement log helps explain why. Sales, returns, transfers, receiving, cycle counts, write-offs, and manual adjustments should leave a trace with a time, location, SKU, and source. When a number looks wrong, the team can investigate the movement instead of starting a second spreadsheet.
A practical example: three stores and one online catalogue
Consider a fictional retailer, Northline Home, selling clothing and small home goods through three shops and Shopify. Its catalogue contains about 3,200 SKUs. The team has a central back room, but stores also fulfil online orders when they have the right item nearby.
On a Thursday morning, the stock record for the linen overshirt looks like this:
| Location | On hand | Reserved | Available to sell |
|---|---|---|---|
| Central stockroom | 12 | 2 | 10 |
| Barcelona store | 17 | 4 | 13 |
| Valencia store | 9 | 1 | 8 |
| Seville store | 6 | 0 | 6 |
| Total | 44 | 7 | 37 |
Northline Home can now set an online selling quantity based on an explicit rule. It might offer all 37 available units, keep a small buffer for store demand, or restrict certain locations from ecommerce fulfilment. The important part is that the rule is visible and consistent.
When an online order is placed, the reservation should be created before the order is picked. When a store sale is completed, the corresponding quantity should leave available stock. When the item is transferred from Barcelona to the central stockroom, the movement should reduce one location and create an in-transit status before increasing the destination quantity. This is more reliable than changing two cells in a shared file and hoping nobody sells the item between edits.
The same record can support different operating views. A store manager may care about shelf availability and pending collections. A buyer may care about weeks of cover and incoming purchase orders. The online team may care about dispatchable units by location. They are looking at different questions, but they should not be starting with different stock facts.
Connect the channels, then define the operating rules
Technology cannot resolve an undefined process. Before connecting systems, write down what each stock event means. Decide when a unit becomes reserved, when a cancellation releases it, when a return becomes available again, and who can approve a manual adjustment.
Then map the systems involved:
- Standardise the catalogue. Match SKUs, variants, barcodes, locations, and product statuses. A blue overshirt in size medium must have one clear identifier everywhere.
- Choose the inventory authority. Decide which operational record calculates available stock and how other channels receive updates.
- Define reservation timing. Clarify whether reservations begin at payment, order confirmation, pick assignment, or another event.
- Set location rules. Specify which stores can fulfil online orders, which stock is protected for local demand, and how transfers are represented.
- Test exceptions. Include cancellations, partial fulfilment, overselling, damaged items, returns, and duplicate product records.
- Monitor failed updates. A connection that stops sending changes should create an exception for a person to resolve, not leave the team guessing.
Stockagile is designed around this kind of retail operating model. Its inventory forecasting and omnichannel operations software can connect with Shopify, WooCommerce, Prestashop, Magento, Lightspeed, and Square. REST API access is available on Growth and Scale tiers for retailers that need to connect additional systems or build more specific workflows.
The point of an integration is not simply to copy a number from one screen to another. It is to pass the stock event and its meaning. A sale should be identifiable as a sale. A transfer should have a source and destination. A return should remain separate from sellable stock until it has been checked and received back into availability.
Where a unified view hits friction
There are limits to what a standard connection can resolve. Returns are a common example. An online return may be in transit, sitting at a shop awaiting inspection, or physically back in the stockroom but not yet graded. Treating every returned unit as immediately sellable will make the dashboard look accurate while creating a fulfilment problem.
Consignment goods require another distinction. The retailer may hold the product physically but not own it, and the supplier may require separate reporting or approval before a sale is recognised. Those units should not be mixed into ordinary owned inventory without a clear rule for ownership, availability, and settlement.
Third-party marketplace channels such as Amazon or Zalando can also be harder to reconcile than a standard ecommerce connection. A marketplace may delay order notifications, apply its own cancellation logic, or expose only part of the stock and fulfilment state through its available interface. If a channel is not connected through a standard API, the team may need a file exchange, middleware, or a controlled manual process. That is a boundary, not a reason to pretend the data is unified.
Same-day manual corrections are another source of friction. A stock count can reveal two missing units at 11:00, while an online order is placed at 11:02 and a store sale is completed at 11:04. If the correction is made without recording its reason and timing, the later investigation becomes difficult. A good operating system should make the correction possible, but also capture who made it, what changed, and why.
For these cases, the right response is an explicit exception state. Mark stock as pending inspection, consignment, marketplace pending, or adjustment required. Give someone ownership and a next action. A unified view is useful because it makes the unresolved parts visible. It does not remove the physical work of checking a parcel or counting a shelf.
Start with the products that cause the most damage
Retailers do not need to perfect every workflow before they see value. Start with the products and locations where fragmented stock creates the most cost: fast sellers, high-value items, products shared between stores and ecommerce, and lines with frequent transfers or returns.
Review the last few weeks of stock discrepancies and classify them. Were they caused by late sales updates, incorrect product mapping, unrecorded transfers, returns, receiving delays, or simple counting errors? The categories will point to process changes more clearly than a general instruction to “keep inventory accurate.”
Next, agree on a small set of daily checks. A store manager might review negative available stock, unprocessed returns, and orders waiting for a location confirmation. A buyer might review low cover, incoming stock, and items with repeated adjustments. An online operator might review failed channel updates and orders placed against protected store stock.
Unified visibility is not a promise that every number will always match every physical reality. It is a disciplined way to keep the records connected, explain their differences, and make the next action clear. For the retailer with three shops and an online channel, that usually begins with one catalogue, one movement history, and a defined answer to a basic question: can this specific unit be sold now, and where is it?