Fulfilling online orders from your shop
A retailer with a shop and an online store has stock sitting on shelves that could serve either. Shipping online orders from the shop, or letting customers collect online purchases there, uses space and inventory you already pay for.
It works well and it introduces a genuine conflict: the same unit can be sold twice, from two channels, within seconds of each other.
The models, and what each costs you
Ship from store. Online orders are picked and packed at the shop and collected by a courier. No separate warehouse, and shop staff are now doing fulfilment during trading hours.
Click and collect. The customer buys online and collects in person. No delivery cost at all, which makes it the cheapest fulfilment method available, and it brings someone into the shop who may buy something else.
Reserve and pay in store. Stock is held and the sale completes at the counter. Not an online sale in accounting terms, and it needs distinguishing or your channel reporting will attribute it wrongly.
Ship to store for collection. Stock comes from elsewhere to the shop and the customer collects. Delivery cost is a bulk transfer rather than a parcel, which is usually cheaper per unit.
Click and collect is the one most often underused, and on heavy or low-value products it is frequently the only fulfilment method that leaves any margin at all — see shipping revenue versus shipping cost.
The overselling problem, honestly
This is the real constraint and it cannot be fully eliminated.
A customer at the counter picks up the last unit. An online customer adds the same unit to their basket. Both transactions proceed. Neither system was wrong; the stock level was accurate at the moment each was checked, and physically there is one item.
Three mitigations, each a trade rather than a solution.
A buffer. Hold a few units back from online availability. Simple, effective, and it means carrying stock you are not selling.
Faster synchronisation. Reduces the window rather than closing it. Worth doing and it will not get to zero.
Location-aware availability. Online orders draw only from designated fulfilment locations, keeping shop-floor stock for shop customers. The cleanest answer, and it forfeits the flexibility that made the arrangement attractive.
Most retailers end up with a buffer on fast-moving lines and no buffer on slow ones, which is a sensible position arrived at the hard way. What matters more is the plan for when it happens anyway: a defined response — offer an alternative, ship from another location, or refund with an apology and something for the inconvenience — rather than an improvised one — see failed payments and the orders they leave behind for the neighbouring problem of stock reserved against orders that never complete.
Where the accounting gets specific
Four points that need deciding rather than defaulting.
Which channel gets the revenue. An online sale collected in the shop is an online sale — the order was placed online and that is where the acquisition cost was incurred. Attributing it to the shop because that is where the customer appeared distorts both channels' performance.
Where the cost of goods comes from. The location that supplied the item, so location-level stock and margin stay accurate.
Fulfilment cost differs by model. Click and collect has no delivery cost and does have a picking cost. Ship from store has both. Recording one delivery assumption across all online orders misstates the models against each other.
Inter-location transfers are not sales. Stock moving from a warehouse to a shop for collection is a transfer, and it needs an in-transit state rather than disappearing from one location and appearing later in another — see inventory valuation across online and offline.
The operational cost nobody budgets
Shop staff picking online orders are not serving shop customers.
At low volume this is free capacity being used well. Past a certain volume it competes with the counter, and the point at which that happens is usually crossed without anyone noticing — orders grow gradually and the shop simply becomes busier.
Two signals worth watching. Whether counter service quality is slipping during periods of high online volume, and whether picking is being deferred to after closing, which is unpaid-feeling overtime and a source of dispatch delay.
The honest answer at that point is dedicated fulfilment capacity, which is a real cost and a better one than a shop that does neither job properly.
What to get right first
Set location priority deliberately. Which location fulfils an online order — nearest to the customer, highest stock, or a designated one. Nearest reduces delivery cost and can strand stock; a designated location is simpler and sometimes ships further than necessary.
Give click and collect a real process. Where the parcel waits, how the customer is told it is ready, how long it is held, what happens if nobody comes. Unclaimed collections accumulate quietly and each one is stock that is neither sold nor available.
Record fulfilment location on every order, because it is the field that makes location-level performance measurable at all.
Keep the courier reference against the order, whichever location shipped it, so the delivery charge attaches to the right sale — see capturing the consignment note against the order.
Common questions
What is the cheapest way to fulfil an online order?
Click and collect, because it carries no delivery cost at all and brings the customer into the shop where they may buy something else. On heavy or low-value products it is frequently the only fulfilment method that leaves any margin, which is why it is worth promoting more actively than most retailers do.
Can overselling be prevented when a shop and store share stock?
Not entirely. A counter sale and an online order can take the same last unit within seconds, with both systems accurate at the moment each was checked. Holding a buffer on fast-moving lines, synchronising faster, or restricting online orders to designated fulfilment locations each reduce it, and each costs something. A defined response for when it happens matters as much as the mitigation.
Which channel should get the revenue for an online order collected in store?
The online channel, because the order was placed online and that is where the acquisition cost was incurred. Attributing it to the shop because that is where the customer appeared distorts both channels' reported performance and makes the comparison between them unreliable.
When does fulfilling from the shop stop working?
When picking competes with serving counter customers, which happens gradually as online volume grows and is usually crossed unnoticed. The signals are counter service slipping during busy online periods and picking being deferred until after closing, which delays dispatch. At that point dedicated fulfilment capacity is a real cost and a better one than a shop doing neither job well.
Related: inventory valuation across online and offline · Shopify POS and your accounting · multi-channel stock sync for Malaysian retailers
Read next
See what you could build
Start a free trial and describe what your business needs in plain language — SmartB Studio builds the module for you.
Start free trial