Vertical · Grocery & supermarket

Run Grocery Delivery Where the pick Is the Hard Part

Slot capacity, a picker step between order and dispatch, live substitutions, and weight-priced items that settle after picking. The same DeliveryStack core, configured for baskets rather than bags.

Slot capacity set by picker and van headcount, per store, adjustable during the day
Aisle-routed picking with barcode scan, weight capture, and batch picking
Substitutions approved by the customer in-app, settled against the final total
Cold-chain handling and age verification recorded at the door
Request Quote See the apps
Picking now Slot 18:00–19:00
41 of 58 items picked
✓
Produce · bananas
Weighed at shelf
1.2 kg
!
Dairy · oat milk 1L
Out of stock
Sub?
❄
Frozen · peas 500g
Staged last
×2
Send substitution to customer
Basket total settles after picking
52 items
Median basket on a booked slot
83%
Slot fill rate across live deployments
6.1%
Items needing a substitution
2–3 wks
To add grocery beside an existing vertical

Grocery Is a Picking Problem Wearing a Delivery Costume

A food order is three items and one kitchen. A grocery order is sixty items, four aisles, two things out of stock, and a price that is not final until someone weighs the produce. Dispatch is the last twenty minutes of a job that started an hour earlier.

Capacity

Slots are inventory, and they oversell

A slot is picker hours and van space, not a calendar entry. Sell one more than you can pick and the whole window runs late, because there is no way to catch up inside an hour.

Stock

The catalogue is wrong the moment it loads

Shelf stock moves all day. Without item-level availability pushed from the POS, customers order what is not there and your substitution rate becomes your churn rate.

Price

The total is not final at checkout

Loose produce is priced by weight after picking. Payment has to be authorised at booking and captured after the pick, with the difference itemised or customers dispute it.

Cost

Delivery fees priced like food orders

Sixty items, twenty-two minutes of picking, and a van. A flat fee borrowed from a food deployment loses money on every basket and nobody notices for a quarter.

The Order Lifecycle

Six states. Two of them happen inside the store, which is where most grocery deployments lose visibility.

  1. State 01
    Slot booked
    Customer picks a window against live capacity; card is authorised, not charged.
  2. State 02
    Picking
    Pick list routed by aisle; items scanned and weighed at the shelf.
  3. State 03
    Substitutions
    Unavailable items proposed to the customer, accepted or refunded in-app.
  4. State 04
    Packed
    Bags counted, chilled and frozen staged last, final basket total settled.
  5. State 05
    On the run
    Loaded onto a multi-drop slot run, sequenced by promised window.
  6. State 06
    Handover
    ID checked where required, refusals returned, proof captured per drop.
Median pick to doorstep 72 min on a booked one-hour slot

Grocery-Specific Features, Not Generic Delivery Ones

Slot engine

Capacity per store and per window, derived from picker headcount and van count, with early cut-off when picking capacity runs out.

Picker app and aisle routing

Pick lists sequenced by store layout, barcode scanning at the shelf, and batch picking across overlapping baskets.

Live substitutions

Picker proposes a replacement, customer accepts or refunds in-app, and the basket total updates without a support call.

Weight and variable pricing

Loose items weighed at the shelf; payment authorised at booking and captured against the final basket.

Cold chain and age restriction

Chilled and frozen staged last with handling flags; restricted items prompt a recorded ID check at the door.

Fee rules by basket

Delivery fee by basket value, slot, and zone — configured in the admin console, effective on the next order.

Five Surfaces, Configured for Grocery

Grocery adds one surface food does not need: a picker app that runs inside the store.

Slot picker with live capacity

Windows show what is genuinely available per store, not a generic calendar.

Substitution preferences

Set per item at checkout: allow, allow same brand, or refund if unavailable.

Weight-priced items

Estimated at checkout, final total shown after picking with the difference itemised.

Repeat baskets

Reorder a previous shop with out-of-stock items flagged before the slot is booked.

Live pick progress

Customer sees items ticking off and responds to substitutions in-app.

Age-restricted flow

Restricted items flagged at checkout so ID is expected at the door.

Integrations

Grocery lives or dies on stock accuracy, so the POS and inventory connectors matter more here than the payment ones.

Inventory
POS and stock feeds

Item-level availability pushed from the till system so the catalogue matches the shelf.

Catalogue
Product data and images

Barcode-keyed product data, pack sizes, and allergen information kept in sync.

Payments
Auth now, capture later

Gateways configured for pre-authorisation at booking and capture against the final basket.

Loyalty
Existing card schemes

In-store loyalty numbers recognised online, with points accruing on delivered baskets.

Fleet
Own vans and couriers

Owned vans for slot runs, third-party couriers as overflow, configured per zone.

Messaging
Substitution notifications

Push, SMS, and WhatsApp providers per region for the approvals that cannot wait.

Where Grocery Margin Actually Goes

Four levers the platform exposes as configuration. Every one of them is a rule your ops team changes, not a release.

Lever 01

Slot fill rate

Empty capacity is paid picker time and an idle van. The slot engine prices and closes windows to keep fill high.
Below 70% fill, the fee model stops working.
Lever 02

Items per picker hour

Aisle routing and batch picking move this more than any routing change downstream.
Batching two baskets typically adds 30–40%.
Lever 03

Substitution acceptance

A refused substitution is a refund and a lost repeat. Good defaults matter more than good apologies.
Per-item preferences set at checkout.
Lever 04

Drops per run

Grocery economics are van economics. Drop density inside a window is the number to watch.
Three drops per hour-long slot is the usual floor.

Grocery Delivery FAQ

Questions specific to running grocery and supermarket delivery on DeliveryStack.

Still have questions? Contact our support team

Do we need a separate picker app? +

If pickers are store staff working from a phone or handheld, yes — and it is included. The picker surface is what makes the in-store half of the order visible: aisle routing, scanning, weight capture, and substitution approval. Operations running a dark store with a warehouse system can skip it and integrate at the order level instead.

How do substitutions and refunds settle? +

Payment is authorised when the slot is booked and captured after picking, so the customer is charged for what was actually picked. Accepted substitutions adjust the basket, refused items drop off, and doorstep refusals are refunded from the driver app. Adjustments land on the settlement run rather than reopening the original order.

Can we run grocery alongside food? +

That is the most common pairing we deploy. Grocery slots fill the flat hours between meal peaks on the same fleet, and both verticals share dispatch, the wallet, and one settlement run. Price them separately — a grocery basket routed and charged like a food order is how the second vertical quietly loses money.

Does it work for dark stores as well as supermarkets? +

Yes. A dark store is a simpler configuration: no shop-floor interference, fixed layout, and picking capacity you control directly. The same slot engine runs it, usually with tighter windows and higher picker productivity than a store-attached operation.

How are age-restricted items handled? +

Flagged at checkout so the customer knows ID will be required, carried through picking, and prompted at handover in the driver app. The check is recorded against the order with the driver's confirmation, and refusal returns the item and refunds it automatically. Which categories are restricted is configured per market.

Related Verticals

All verticals →

Launch Your Grocery Delivery Platform

Three steps from catalogue to a live slot-based grocery operation.

1

Catalogue and stock

Product data imported and the POS stock feed connected so availability is live from day one.

2

Slots and fees

Capacity set per store from picker and van headcount; delivery fees configured by basket value and window.

3

Pilot one store

One store, a narrow set of windows, and the picking team trained — then widen the windows and add stores.

Grocery · Quick Facts
Surfaces 5, including picker
Time promise Booked slot
Pricing Per item and per weight
Typical launch 3–5 weeks
Adding grocery beside an existing food operation is typically2–3 weeks