← All posts

An ordering and delivery app for your restaurant or shop: what it needs

Taking orders over WhatsApp and phone calls works until it doesn't. Here is what an ordering and delivery app for a restaurant, bakery or shop actually needs, from the menu to the driver, and how to scope the first version.

Author
Elie Chaaban
Published
Reading time
8 min
Topics
Mobile Apps, Ordering, Small Business

Most restaurants, bakeries and shops that ask about an ordering app already take orders. They take them by phone, on WhatsApp, through Instagram messages and sometimes through a delivery marketplace. The orders arrive. The trouble is everything around them: a missed message during the lunch rush, a driver who calls three times to find the building, a customer asking "where is my order?" while the kitchen has no idea which order they mean.

An ordering and delivery app fixes that by turning each order into a structured record that moves through clear steps: placed, accepted, being prepared, out for delivery, delivered. Everyone looks at the same record. This post covers what that kind of app needs, what can wait, and how to decide whether you need one at all.

Do you need your own app?

Before features, be honest about the reason. A custom ordering app makes sense when one or more of these is true:

If you get a handful of orders a week and mostly from new customers, a clear website with a simple order form or a well-run WhatsApp catalog may be enough for now. An app earns its cost through repeat use.

What the customer side needs

A menu that matches how you actually sell

The menu is the core of the app, and it is where generic templates break first. Model it on your real products:

Getting this model right early saves a painful rebuild later.

Cart and checkout

The cart should show the full price before the customer commits: items, options, delivery fee and any minimum order. Surprises at the last step are the main reason people abandon an order. Checkout asks for the delivery address, a time (as soon as possible, or scheduled), a payment method and an optional note.

Addresses that drivers can actually find

This is where ordering apps succeed or fail in practice. In many cities, and in Lebanon especially, a street name and building number are often not enough to find someone. People describe locations by landmarks, building names and floors. A good address form handles that:

You can also check the pin against your delivery zones and refuse or charge differently for orders outside them, before the order is placed rather than after.

Order status the customer can trust

Once the order is placed, the customer should see where it is without calling: received, accepted, being prepared, on the way, delivered. Each change triggers a push notification. Keep these few and useful; I wrote about that balance in push notifications that users keep turned on. Some businesses also send key updates on WhatsApp, which works well for customers who never open the app after ordering.

Reorder and history

A "reorder" button on past orders is one of the highest-value features for repeat customers, and it is cheap to build once orders are stored properly.

What the business side needs

The customer app is what people see. The admin is what decides whether the business can run on it. I covered admin panels in general in what your app's admin panel actually needs; for ordering, these parts matter most.

A live order board

Kitchen or counter staff need a screen, often a tablet, showing incoming orders with a clear alert sound, and buttons to accept, reject, mark as preparing and mark as ready. It must be fast and readable in a busy room. If accepting an order takes four taps, staff will go back to WhatsApp.

Opening hours, pauses and capacity

You need to close ordering outside your hours, pause it when the kitchen is overwhelmed, and optionally extend preparation times on busy evenings. Without a pause button, the app keeps accepting orders you cannot fulfil, which is worse than not having an app.

Staff should edit items, prices, photos and availability without calling a developer. Price changes should apply to new orders only. Old orders keep the price the customer actually paid.

Delivery zones and fees

Define the areas you deliver to, a fee per zone or by distance, and a minimum order amount if you use one. These rules live on the server, so the app and any website use the same numbers.

The driver side

If you deliver with your own drivers, they need their own view, usually a simple driver app or a driver mode inside the same app:

Dispatch can start manual: someone at the counter assigns each order to a driver. Automatic assignment based on location and load is a real project of its own and rarely belongs in the first version.

If you use a third-party delivery company instead, the driver side becomes an integration with their system, and its shape depends entirely on what that company offers.

Payments

Many restaurants and shops start with cash on delivery, and that is a valid first version, as long as the app records what each driver should collect and the business reconciles it daily. Card payments through a gateway and transfer-style methods can be added when your business can actually use them. The practical options, and how to make payment status reliable, are in accepting payments in your app or website in Lebanon. The key rule is the same for every method: the server records whether an order is paid, not the phone.

How I would build it

For an ordering app, I would use a setup close to the one behind Pro Clean+, a booking app I designed, built and run end to end:

A few technical choices matter more for ordering than for most apps. Order status changes need to reach the kitchen screen within seconds, so the admin uses live updates rather than refreshing a page. Every status change is stored with a time and a user, which tells you where orders get delayed. And the app should handle a weak connection gracefully: if a customer's network drops at checkout, they must not end up with two orders or none.

If your customers are Arabic and English speakers, plan both languages from the start. Menus are full of short labels that look wrong when translated as an afterthought.

What to include in the first version

A realistic first release for a single restaurant or shop:

Things that can wait: promo codes and loyalty, automatic dispatch, multiple branches, table ordering by QR code, ratings and reviews, and detailed analytics. I explained how to make those cuts in how to scope the first version of your app.

How long this takes and what drives the cost depends on how many of those parts you need and how complex your menu is. Multiple branches with different menus and prices, for example, change the data model throughout. That is why a written brief with your real menu attached gives a far better estimate than a feature list alone.

What to prepare before talking to a developer

Getting it built

An ordering app is a product your staff will use every service and your customers will judge on every order, so it needs to be built and run properly after launch. On the mobile app development page I describe how I take an app from first brief through to the App Store and Google Play, and how I keep it running after release.

If you run a restaurant, bakery or shop and want your own ordering app, get in touch or email hello@eliechaaban.com with your menu and how you take orders today, and we can set up a call to go through it.

More from the blog

Let's work
together