Omnichannel POS screen showing available-to-promise stock rules across store, warehouse and online channels

POS available-to-promise rules for omnichannel retail

In 2026, the hard part of omnichannel retail is no longer showing the same SKU in the POS and webshop. The hard part is deciding which units are safe to promise before a customer clicks pickup, ship-from-store, endless aisle, bol.com or Amazon checkout.

That decision is called available-to-promise, or ATP. For retailers running stores plus ecommerce, POS available-to-promise should not equal physical stock on hand. It should be a guarded number that subtracts reservations, pickup holds, damaged units, transfer lag and the stock you intentionally keep for walk-in customers.

Competitor pages from Shopify, Lightspeed and Square explain the promise: unified inventory, BOPIS, endless aisle and cross-location orders. What they usually skip is the operating rulebook: when a store should expose stock online, how much buffer to keep at the till, when a reservation expires, and which system wins when POS and ecommerce disagree. That is where overselling starts.

ATP formula
5deductions
Safe store stock starts with on hand inventory, then subtracts open baskets, paid orders, pickup holds, quarantine and a store buffer before any channel can promise it.
The missing layer between POS and ecommerce

Shopify documents that pickup orders in Shopify POS require inventory to be available at the pickup location. Square's cross-location order workflow lets store staff choose another fulfillment location and shows inventory by distance, in-stock status and name. Lightspeed describes the same omnichannel ambition: BOPIS, BORIS, ship-from-store and real-time location visibility.

Those are useful capabilities, but they assume the availability number is already trustworthy. In practice, retailers often connect the POS, webshop and marketplaces, then discover that the last unit can be sold three times in the same hour. One store associate has it in a cart, a webshop customer has it in checkout, and a marketplace order is still waiting for import.

30-60 sec
Sync budget
For POS sales that affect online availability.
2-4 units
Store buffer
For low-volume, high-touch SKUs.
24-72 hrs
Pickup hold
Before no-show stock returns to ATP.
A better ATP formula for store stock

The basic formula is simple: available-to-promise = on hand - committed - protected. The detail is where most POS integrations fail. Committed stock includes paid but unpicked orders, open BOPIS orders, POS layaway, customer deposits, marketplace orders waiting for import and transfers already promised to another location. Protected stock includes display units, safety stock and the walk-in buffer.

That formula belongs in the same operational layer that handles inventory sync, order routing and channel exceptions, not in a spreadsheet beside the till.

Do not expose every store unit online

A shop floor is not a warehouse. If the webshop can promise the last unit while a customer is holding it at the register, the POS team loses trust in the online channel within a week.

What ranking POS guides miss

Most ranking omnichannel POS pages sell the dream of one stock pool. Seller forums show the gap. Shopify merchants ask how to offer multiple pickup points from one warehouse without pretending every pickup point owns inventory. Others describe pickup options that are not tied cleanly to location stock, abandoned workarounds with zero inventory, or the risk of enabling overselling just to unlock a checkout option.

The operational lesson is that a location can be a selling point, a pickup point, a storage point or a fulfillment point. Those are not always the same thing. A pop-up event can take POS payments without holding the full catalog. A store can be a pickup desk for warehouse stock. A warehouse can fulfill endless aisle sales created at the register. ATP rules have to model that difference.

Stock sync only
  • Publishes physical on-hand quantity directly to every online channel.
  • Lets checkout, pickup and POS baskets compete for the same last unit.
  • Fixes mistakes after customers complain.
Fast, but brittle when stores and ecommerce share inventory.
ATP controlRecommended
  • Publishes only stock that survives reservations, buffers and exception checks.
  • Assigns a reservation reason and priority to every commitment.
  • Flags negative stock and stale holds before they become customer promises.
Best for retailers adding BOPIS, marketplaces and ship-from-store.
Five rules to publish safe POS availability

Retailers can avoid most omnichannel oversells by turning availability into a controlled decision instead of a raw sync job.

  1. 1
    Define the ATP ledger
    Create one availability calculation per SKU and location: on hand minus reservations, paid orders, pickup holds, damaged stock, transfer-out quantities and a configurable store buffer.
  2. 2
    Separate selling stock from display stock
    Mark units needed for fitting rooms, demo shelves or walk-in service as unavailable to online channels, even if the POS can still sell them locally.
  3. 3
    Give each channel a reservation type
    A POS basket, webshop checkout, marketplace order, BOPIS order and endless aisle sale should reserve stock with a reason code and expiry time.
  4. 4
    Expire holds automatically
    Pickup and unpaid reservations need a release rule. Otherwise abandoned baskets and no-show pickup orders slowly turn into phantom stock.
  5. 5
    Reconcile exceptions daily
    Review negative stock, expired holds, cancelled pickups, failed sync jobs and POS adjustments before the next trading day starts.
How ChannelDock should sit in the flow

ChannelDock's role is not to replace the POS checkout. The POS should stay fast for store staff. ChannelDock should sit beside it as the shared operational layer for stock sync, order import, warehouse handoff and exception management across marketplaces, webshops, B2B, POS and manual orders.

That means POS sales reduce stock before online channels overpromise it. Webshop and marketplace orders land in the same queue as store-created orders. Warehouse teams can see whether an order came from BOPIS, ship-from-store or endless aisle. If a retailer also uses marketplace and carrier integrations, the same ATP number can drive bol.com, Amazon, Shopify and WooCommerce without a separate spreadsheet per channel.

The goal is not to show the biggest possible stock number online. The goal is to publish the biggest number the operation can keep without apologising tomorrow.

Metrics that prove the rulebook works

Do not judge POS available-to-promise by sync speed alone. A fast wrong number still creates angry customers. Track the operational failure modes:

  • Negative stock by location: where the POS, WMS or ecommerce channel sold below zero.
  • Cancelled pickup orders: especially cancellations caused by cannot-find or wrong-location stock.
  • Expired reservations: holds that were not collected, paid or released on time.
  • Manual stock adjustments: reason-coded corrections after store counts or customer complaints.
  • Channel delay: time from POS sale to online availability update.
What this means for POS retailers
  • Treat POS available-to-promise as a rule layer, not a simple stock feed.
  • Keep a store buffer for walk-in sales and products physically handled by customers.
  • Use reason-coded reservations for POS baskets, pickup orders, marketplaces and transfers.
  • Measure stale holds, negative stock and cancelled pickups, not just inventory accuracy.
  • Connect the POS to a central order and inventory platform before adding more sales channels.
FAQ
What is POS available-to-promise?
POS available-to-promise is the quantity a retailer can safely sell or reserve from store stock after subtracting existing orders, pickup holds, damaged stock, transfers and a store-floor buffer.
Is available-to-promise the same as stock on hand?
No. Stock on hand is what the location physically or theoretically owns. Available-to-promise is the smaller number you are willing to commit to a new customer order.
How much store inventory should stay hidden from ecommerce?
The buffer depends on SKU velocity and store behaviour. Slow, expensive or frequently handled products need a higher buffer than sealed replenishment items that sit in a back room.
How long should BOPIS pickup holds last?
Most retailers use a clear customer-facing window such as 24, 48 or 72 hours. The important part is that the hold expires automatically and returns stock to the right location when the order is cancelled or not collected.
Where does ChannelDock fit in POS availability control?
ChannelDock connects POS, webshop, marketplace and warehouse flows into one operational inventory and order layer, so sellers can sync stock, route orders and reconcile exceptions from one place.
Conclusion

Omnichannel POS only works when store stock is promised with rules. BOPIS, endless aisle and cross-location selling all depend on one question: is this unit truly available for the next customer? Retailers that answer with raw POS stock will keep fighting oversells. Retailers that answer with ATP rules can grow store, webshop and marketplace sales from the same inventory pool without losing operational control.