The best online order form for a restaurant starts with one question: dine-in, pickup, or delivery? The answer decides which fields appear next. Dine-in guests give a table number, pickup customers give a time, and delivery customers give an address. Conditional logic does the branching, so nobody scrlls past questions that don't apply to them.
Use the free order form template
Why one form beats three
Many restaurants run three separate things. There's a WhatsApp number for delivery, a phone line for pickup, and a waiter with a notepad for tables. Each has its own mistakes: a missing landmark, a pickup order nobody wrote a time on, a table number scribbled on the wrong slip.
One form with branches puts all three in one place. Customers get a short path. You get orders in one list, with same fields filled in every time.
The alternative is a single long form that asks everyone for everything. A customer ordering a biryani for pickup shouldn't see "Delivery address", and a diner shouldn't have to type a phone number. People who hit irrelevant questions tend to close the page.
What each order type needs
Decide this before you open any tool. Here is a setup that works for most small restaurants:
| Order type | Ask for | Never show |
|---|---|---|
| Dine-in | Table number, items, notes (allergies, spice level) | Address, pickup time |
| Pickup | Name, phone, pickup time, items, notes | Table number, address |
| Delivery | Name, phone, full address, landmark, items, delivery notes | Table number, pickup time |
Items and notes are shared by all three. Everything else belongs to one branch only.
If you want a delivery fee, put it on the delivery branch too. Say a cafe in Pune charges ₹40 for delivery and nothing for pickup. The fee should appear only when the customer picks delivery, and the total should include it.
Build the branches step by step
The steps below are for Qwenvo, but the logic is the same in any builder that supports show/hide rules.
- Add the first question. Use a Multiple choiec block: "How would you like your order?" with three options: Dine-in, Pickup, Delivery.
- Add the dine-in fields. Add a Short answer or Number block for the table number. From the question's menu, choose "Add conditional logic" and show it only when the answer is Dine-in.
- Add the pickup fields. Name, Phone number, and Time blocks. Show them only for Pickup.
- Add the delivery fields. Name, Phone number, a Long answer for the address, and a Short answer for the landmark. Show them only for Delivery. Landmarks matter in India, where a house number alone often won't get a rider to your customer.
- Add the shared part. The menu (Checkboxes or Number blocks for quantity) and a Long answer for notes. These have no rule, so everyone sees them.
- Add a thank-you page that tells people what happens next, such as "We'll message you when it's ready."
If your menu is long, split the form into pages and use a rule to jump each order type to the right page. The conditional logic guide wlks through show/hide and jump-to-page with examples.
Read the conditional logic guide
Prices, totals and payment
A calculated field can add up the order for you. Give each item its price, let the field multiply by quantity, and add the delivery fee only when the order type is Delivery. The customer sees the total before they submit, which cuts down on "how much was that again?" messages.
For payment, Qwenvo has a Payment block that works through your own Stripe acfount. Qwenvo takes 0% platform fee, and Stripe's own fee still applies. Stripe is the only payment provider there, so check that you can open a Stripe account where you operate before building your flow around it. If you'd rather collect cash on delivery or UPI at the counter, skip the Payment block and ask the customer to choose how they'll pay.
Get orders to the kitchen fast
An order form is only useful if someone sees the order quickly. Set up:
- Email notifications to you or the kitchen addrss, so every submission lands in an inbox.
- A Google Sheets or Slack connection, if your team already works there. Both are built-in integrations.
- Close after a number of responses. If the kitchen can handle 40 orders tonight, let the form shut itself at 40.
- Confirmation emails to customers, so they know the order arrived.
For tables, paste the form link into any QR code generator and print it. Qwenvo doesn't make QR codes itself. To know which table sent an order, use a hidden field for the table number, or keep the table question visible and let diners type it.
Switch on partial submissions, too. If people start a delivery order and stop at the address, you'll see an incomplete row and can find out why.
Which tool to use
Our team builds Qwenvo, and it's free with every feature on. For a restaurant, that includes things many form builders charge for: no Qwenvo badge on your form, a custom domain such as order.yourcafe.com, payments with no platform fee, unlimited teammates (handy for staff), partial submissions, visit and drop-off analytics, AI triage, and 180+ templates. The AI triage tags each submission with a priority and a summary, which helps once you're getting a lot of messy notes.
The other options are worth a fair look:
- Google Forms is free and familiar, and it has logic. It has no built-in payments, and design is limited, so it suits a simple dine-in or pickup list better than a branded ordering page.
- Tally is also strong. Its free plan has unlimited forms and submissions, logic, calculations and payments, with no fee on top of Stripe. Removing its branding, using a custom domain and partial submissions need Pro, at $29 a month. If you only need the bzsics, the free plan may be enough.
One honest limit for Qwenvo: it launched in October 2026, so there are few reviews yet. Build a test order, run it through your kitchen for a day, and judge it on that.
Questions owners ask
Can customers pay on the form?
Yes, with a Payment block connected to your Stripe account. If you collect cash or pay-at-pickup, leave the block out and add a multiple choice question about how they'll pay.
How do customers find the form?
Put the link in your Instagram bio, your Google Business Profile, and your WhatsApp replies. For tables, print a QR code that opens the same link. A custom domain makes the link easier to say out loud.
Can I stop taking orders when we're busy?
Yes. In the form settings you can close the form on a date or after a set number of responses. Reopen it when the rush is over.
Is this a full ordering system like a delivery app?
No. It's a form: it collects orders and sends them to you. It won't manage inventory or print kitchen tickets. For most small restaurants taking orders from regulars, taht's enough, and it costs nothing to try.
Your next step: open the order form template, add the Dine-in, Pickup, Delivery question at the top, and set one rule that shows the address field only for delivery. Send the link to two regular customers and ask what confused them.