If any of these are true, the issue is not your inventory management procedures — it is the absence of a single operational layer that connects demand, stock state and fulfilment.
Root cause: Stock mistrust is not caused by inaccurate data entry (although it can be!). It is more commonly caused by a structural separation between demand and stock availability across spreadsheets and systems.
When a Shopify order arrives, one system reduces inventory. When a B2B trade order is placed, a different system or spreadsheet updates. When a transfer is raised, stock disappears from one record before it appears in another. When goods arrive, the purchase order closes manually — hours or days after the physical receipt.
At no point does a single system hold the authoritative answer to: what do we actually have available, right now, for every channel, across every location?
Stok.ly connects every sales order to a single live inventory record in real time.
Orders from every channel commit stock at the point of creation.
Pre-allocation separates B2C and B2B demand before any conflict can occur – ring-fencing inventory for orders and customers.
Transfers enter an in-transit state visible to all locations immediately once despatched.
Goods-in, processed by barcode scanning on the warehouse app, update the purchase order and increment inventory simultaneously, pushing out to all your locations and sales channels in real time.
Available-to-sell is the result of a live calculation, not a manual estimate.
Available-to-sell (ATS) is the real-time answer to: how many units can we actually commit to a new order right now?
It is not the total inventory count.
It is total stock, less committed orders, less transfer requests, less quarantine holds, plus inbound stock confirmed against open purchase orders or transfers.
For hybrid B2C and B2B businesses, pre-allocation against future purchase orders and manufacturing runs can free up allocated stock to enable sales today while ringfencing stock due for delivery against sales orders and customers.
Managing pre-allocation manually is time consuming to replicate on spreadsheets and prone to errors.
Without all these pieces being accurately managed, your ATS quickly becomes inaccurate.
Most growing businesses do not have an accurate ATS figure.
They have a total count and a loose understanding of commitments spread across systems and spreadsheets.
The gap between the two is where stock mistrust lives and where overselling, emergency purchases and customer complaints originate.
Stok.ly calculates ATS continuously from every transaction across every channel.
When a Shopify order commits 50 units, ATS decrements by 50 immediately.
When a B2B sales order is pre-allocated 200 units against future delivery, those units are released to enable sales today.
The figure is always live. There is no scheduled sync, no manual rebuild step.
The most common stock trust failure in hybrid retail and wholesale businesses is allocation conflict.
B2C demand — Shopify, Amazon, marketplace channels — and B2B demand — trade accounts, wholesale customers — both pull from the same stock pool with no mechanism to separate them.
B2C orders process automatically and reduce ATS stock immediately.
B2B orders are typically raised manually or through a trade portal with longer fulfilment windows.
The result is predictable: B2C channels consume stock that B2B trade accounts were expecting.
By the time the trade account is ready to despatch, the units are gone.
Stok.ly resolves the B2C vs B2B allocation conflict through pre-allocation.
When a B2B trade order is placed, stock can be ring-fenced against future delivery using pre-allocation.
Stok.ly automates the management of pre-allocated sales orders and processes them automatically when the goods arrive.
Once items on a sales order are pre-allocated against future delivery, that stock is released as ATS so your B2C teams can sell more today.
The operational conflict does not require manual management because the architecture does not allow it.
Your B2C teams are happy because their stock levels on ecommerce and store channels is maximised today and your B2B sales teams know their sales orders will be fulfilled as future deliveries arrive.
Stok.ly removes the conflict between B2C and B2B sales.
See also: B2C and B2B Orders Are Competing for the Same Stock.
For most growing businesses, the goods-in process is where inventory errors are created rather than resolved. A delivery arrives. The physical count is assumed to match the purchase order. The PO closes. Inventory increments by the PO quantity, not the received quantity. Three weeks later, a stock count reveals a discrepancy that traces back to a goods-in record processed without a confirmation scan.
Stok.ly processes goods-in using barcode scanning confirmation.
Each item received is scanned against the open purchase order. Variances flag immediately and are captured for management review.
The PO closes only when the confirmed receipt quantity is entered.
If a delivery arrives short, the shortfall remains on open order until resolved.
Inventory increments by the actual received count, not the assumed one.
Multi-location businesses face a compounding version of the stock trust problem.
A transfer raised on Monday morning is not confirmed received until Wednesday afternoon. During those 48 hours, the source location’s available figure includes units already despatched, and the destination location’s plan includes stock not yet arrived.
Stok.ly holds a single inventory record across all locations.
A transfer despatched at location A immediately creates an in-transit quantity visible to both locations.
Location A’s available-to-sell reduces. Location B’s incoming quantity increases.
When the transfer is confirmed by barcode receipt, the in-transit clears and location B’s on-hand increments.
The stock is never invisible.
See also: Transfers Are Creating Stock Mistrust.
| Capability | What it controls | Why it matters |
|---|---|---|
| Real-time ATS calculation | Available-to-sell updated with every order, allocation, transfer and goods-in across all channels | Sales and trade teams see accurate availability at all times without a manual rebuild |
| Pre-allocation by channel | Holds B2B trade stock before B2C channels can consume it | B2B orders are never displaced by B2C demand; allocation conflict removed at the architecture level |
| Multi-location inventory control | Single stock record across all warehouses, stores and transit quantities | One available-to-sell figure per SKU, not one per location that must be reconciled |
| Goods-in accuracy | Barcode confirmation of receipt against purchase order with immediate discrepancy flagging | Purchase orders close with confirmed counts, not assumed quantities; errors caught at point of receipt |
| In-transit state management | Tracks stock from transfer request through despatch to confirmed receipt | Stock is never invisible between locations; both sites see the same in-transit quantity in real time |
| Committed and allocated tracking | Separates committed orders, trade allocations and available quantities continuously | ATS reflects operational truth, not a counting exercise |
| Current approach | What tends to break | Stok.ly |
|---|---|---|
| ATS calculated manually from system exports | Outdated by the time the next order arrives | Real-time ATS calculated continuously from every demand signal across all channels and locations |
| B2C and B2B pulling from the same stock pool | B2C orders silently deplete B2B trade stock before allocation | Pre-allocation ring-fences trade stock before any channel can consume it |
| Weekly stock counts for operational confidence | Decisions made on seven-day-old data | Every transaction updates the live record; no scheduled count required for accuracy |
| Goods-in confirmed by matching PO quantity | Receipt count assumed rather than verified by scan | Barcode goods-in closes PO with confirmed count; discrepancies flag at point of receipt |
| Transfer status tracked in spreadsheet or by phone | In-transit stock invisible to both source and destination | In-transit state visible from transfer request to confirmed receipt at both locations |
| Multiple system-of-record exports reconciled manually | Finance and operations work from different numbers | One operational record; every team sees the same figure at the same time |
“What I like best about Stok.ly is that it brings inventory, orders, and sales channels into one easy system. It saves time, reduces manual errors, and gives clear visibility of stock levels across the business.”
Finance Director, automotive business — Verified G2 review, 5 stars. Read reviews on G2
As order volume, channel count, location count and trade account complexity grow, the gap between what the system says and what is operationally true widens. Systems built for simpler demand patterns cannot maintain a live, accurate operational record across all signals simultaneously. Teams compensate manually — stock counts, export-and-reconcile cycles, spreadsheet ATS calculations. At a certain scale, the manual compensation cannot keep up.
Available-to-sell is the real-time quantity that can be committed to a new order. It equals total on-hand stock, minus committed orders, minus allocated trade stock, minus transfer requests, minus quarantine holds, plus inbound stock confirmed against open purchase orders. Stok.ly calculates this figure continuously from every transaction. There is no scheduled sync or manual rebuild step.
Stok.ly uses pre-allocation to ring-fence trade stock at the point a B2B order is placed. The allocated units are removed from the available-to-sell figure visible to B2C channels before any automatic B2C order processing can consume them. B2C and B2B channels see separate available figures. The conflict is resolved at the architecture level — it does not require manual intervention.
Committed stock is assigned to a confirmed order and awaiting pick, pack and despatch — it has an imminent fulfilment obligation. Allocated stock is ring-fenced for a B2B trade account or pre-order before the fulfilment date arrives. Both reduce the available-to-sell figure. The distinction matters for planning: committed stock is in the current pick wave; allocated stock has a future fulfilment window.
Stok.ly holds a single inventory record across all locations. Every transaction — sales orders, purchase orders, stock transfers, goods-in, adjustments — updates the same record. Transfers enter an in-transit state visible to both the source and destination location simultaneously. Each location sees its own available-to-sell figure, drawn from the same operational record. There is no end-of-day synchronisation or location-by-location export.
Goods-in is where most inventory inaccuracies originate. If a delivery is received and the purchase order closes by assumed quantity rather than confirmed receipt count, the discrepancy enters the record undetected. Stok.ly processes goods-in by barcode confirmation against the open purchase order. Each item is scanned and confirmed. Discrepancies flag immediately. The PO closes only when the confirmed receipt quantity is entered.
Yes. B2C channels (Shopify, Amazon, marketplaces) and B2B trade accounts see separate available-to-sell figures based on their allocation level. Pre-allocated trade stock does not appear in B2C ATS. Channel-specific available quantities are configured by account type, customer tier or explicit allocation rule. This is the mechanism that resolves the B2C-versus-B2B stock conflict in hybrid operators.
Cin7 leads with multi-channel listing and ecommerce connectivity but has limited native POS capability and inflexible pricing structures. Its AI functionality generates forecasting recommendations without executing purchasing decisions. Orderwise is a Windows-based legacy platform with no native Shopify integration and SQL-only reporting — most customers currently evaluating alternatives describe accuracy maintenance as a significant manual overhead. Stok.ly is the order management-led, inventory-centric ERP for businesses that need a real-time operational control layer.
All our sales, support and development team are located in Hereford and Cheltenham in the U.K. Please submit the contact form and we will contact you within the same business day.