How to Setup a Restaurant Online Ordering and Delivery Service

    Praveen Chauhan
Listen to this article


So, you’ve got an idea, and you think it’s good! So what’s stopping you from building it?!

Ah yes!

You don’t know HOW!

We all want the success Box8 or HolaChef has achieved. But there is a difference between conceptualizing an idea, and converting it into a sustainable business.

And that’s what you’re here for. To bridge that very gap! The road is long and winding, but I’ll try my best to help you out here. 😀

So, without further ado, let’s begin.

Setting up Shop: The Components of a Restaurant Ordering and Food Delivery Website

A restaurant website or an on-demand food delivery website, in terms of features is quite similar to an actual restaurant. You’ve got:

  • the restaurant’s name – which is the domain name,
  • the location – which is the hosting,
  • the menu with items and prices,
  • the daily specials
  • and the orders

Here, attendants can be added as virtual assistants. And your maintenance crew, is the website maintenance and support team.

Now, for online food delivery, the customers are virtually present, and food has to be delivered to their doorstep. For this, you need:

  • a shop or cart,
  • secure payment gateways,
  • a shipping and delivery module, (or a pick-up option)

Considering you’re of course interested in using WordPress and WooCommerce to build this Restaurant and Food Ordering website, let’s continue.

Creating the Foundation

For any WordPress website, a theme provides a solid foundation. You need a light-weight and stable theme to build your restaurant website. If you have the time and the resources, you could consider creating your own theme. A custom theme gives you complete control over it.

However, if you’re on a budget or are short on time, you can pick a readily available theme. Picking a suitable theme can save you heaps of effort. What you should be looking for is a theme specially built for restaurants, with sufficient theme options, support for a virtual menu, and is WooCommerce compatible.

A theme I recommend is ROSA – An Exquisite Restaurant WordPress Theme. It’s got a great design, has several customization options and is responsive (you certainly can’t ignore mobile users).

Creating Top-Level Pages

Once you’ve installed the theme, you can go ahead and create the pages. You’ll need the following:

  • Home Page
  • Menu Page
  • Shop Page
  • Contact Page

Additionally, you could add ‘About Us’ and ‘Terms & Conditions’ pages. These pages would have to be linked to the primary navigation menu on your site, and you could optionally add some content in the footer.

Now, most readily available themes provide demo content, which provides you a one-click setup of pages. If not, you can use a page builder plugin to create them.

Setting Up Your Shop with Menu Items

The restaurant’s menu is obviously the most important section on your website, and is the easiest to create. I’m not talking about the virtual menu, but the actual shop with menu items which an interested customer can purchase.

Since WooCommerce is your cart, each menu item has to be added as a WooCommerce product. A brief description of the dish can be added as the product description, and a high-quality picture has to be set as the product image.

Menu Item As Product


Categorizing Menu Items and Adding Specials

Just like every restaurant menu is divided into categories, such as appetizers, entrees, desserts, etc, you can categorize your menu too. You could add several categories as ‘Product Categories’ in WooCommerce.

Lunch or Dinner specials can also be added as categories.

Product Categories WooCommerce


Adding Restaurant Service Hours

Now, once you add your menu items, WooCommerce by default will make the items available for purchase at all times. But if your restaurant is open for a limited time, or offers different items for lunch and dinner, your shop would need to reflect the same.

For example, when a customer visits your site during lunch hours, say 12:00 to 4:00, your menu should show lunch items available. And if a customer views your site from say 7:00 to 11:00, your menu should show items available for dinner. And after 11, it should say that the shop is closed.

Managing your Menu based on Restaurant Timings

To display daily specials, you can use the WooCommerce Product Scheduler plugin. This plugin allows you to schedule products or in your case menu items for a particular time and on certain days as well.

For example, you can schedule an item for purchase from 12:00 to 16:00 hrs, and another product from 19:00 to 23:00 hrs from 10th November to 01 February. You can also pick the days on which the item should be made available for purchase.

You can also schedule products belonging to a particular category all at once. So, if you have a category ‘Lunch’, you can schedule all products categorized under lunch to be made available for purchase from 12:00 to 16:00 hours.

And what happens during the time in between? Or when the restaurant is closed?

You would need to add a custom store-wide notice, indicating the same, and the WooCommerce Opening Hours plugin, to add open hours for your restaurant.


[wdm_custom_cta appendcta=”1″ popup=”406347″ popuptitle=”Download Your Guide!” buttoncssclass=”get-guide” ctatitle= “The Fundamentals of Building a Successful Website: A WordPress Guide” ctacontent=”Whether creating a Job portal or a Dating website – Understand Key WordPress lessons that website-owners often overlook” buttonlabel=”Get Your Guide” popupid=”app_popup_3666″]


Setting Up Payment Gateways

The next step is to set up secure payment options. Ideally, you’ll need to provide the following:

  • Card Payment Option
  • Cash On Delivery
  • Local Pickup

WooCommerce provides PayPal by default, and also has a gateway to handle credit card payments directly on your store. All you need to do, is setup the needed payment gateways.

You also have the ‘Cash On Delivery’ option (a must have a payment option for any restaurant delivery service), which allows you to create and dispatch an order which will be paid for by the customer upon delivery.

Developer Tip: Enforcing a Minimum Amount on the Order

A minimum order amount, can be set for your home delivery customers, adding a condition on the ‘woocommerce_checkout_process’ hook.

add_action( 'woocommerce_checkout_process', 'wc_minimum_order_amount' );
function wc_minimum_order_amount() {
    global $woocommerce;
    $minimum = 10;
    if ( $woocommerce->cart->get_cart_total() < $minimum ) {
        $woocommerce->add_error( sprintf( 'You must have an order with a minimum of %s to place your order.' , $minimum ) );

Alternatively, there is also a plugin available, Minimum Purchase for WooCommerce, to help you with this setting.

Allowing a Pick Up Option

The Local Pickup Plus extension for WooCommerce allows customers a take-out option of purchased menu items. That is to say, a customer can come to the restaurant location and pick up his/her order. This extension also allows you to offer a discount on local pick-up/take out orders. You need to use this extension to provide a local pickup option.

Managing Orders and Delivery

Last but not least, you need to manage the orders and take care of delivery. As far as managing orders is concerned, the responsibility lies on WooCommerce’s shoulders. But WooCommerce handles the task well. It maintains a record of orders in the backend and also sends order emails at every step.

The delivery of the food is, of course, managed offline. But a great plugin you can add to the mix, would be Twilio SMS Notifications to send SMS notifications to customers when their order status is updated.

Ready to Get Started?

But these were just the basics!!

Now I’ve given you a simple recipe to get your restaurant and food delivery website up and running. There’s a lot you more could add. For example, you could allow customers to create their own salad or pizza, offer them free beverages or free delivery when their order exceeds a certain limit, and more.

Surely, I’d recommend you to take the help of a developer (if you aren’t one) to ensure that everything works smoothly. And if you’re looking for a trusted developer, this is right up a Gold WooExpert’s alley (*ahem* *ahem* that’s us :D).

What are your thoughts on this? Are you looking to add a certain unique feature I’ve missed? I’d like to hear your thoughts, so feel free to comment in the comment section below!


Praveen Chauhan

Praveen Chauhan

10 Responses

  1. I’m trying to build a restaurant website with a classic menu layout for an online ordering system.. Because there are so many dishes, I don’t want to put images… And I want a list layout not grid. IS that possible in wocommerce?? Last time the client didn’t want an online ordering system so I used a plugin called restaurant press – But this clients wants it and I’m not sure what to do!? Please help.1?

  2. Love the steps. I looked at foodpress but thought well it doesn’t do much other than a nice visual.

    Features I do like from foodpress though are..
    1) Spice Level Option and indicator
    2) Nice menu design in list view.
    3) Nice popup with variations when menu list item is clicked.

    Other things that would be useful.
    1) vegetarian on/off option with a symbol on front end.
    2) Order accepted / Delivery time notification via email.
    3) Halal/Kosher on/off options with a symbol on front end.


  3. Hi Need a Multi Restaurant, Menu List based Woocommerce plugin< let us know if you guys can customize.
    1. Enter Pincode or Location
    2. Select a Restaurant based on the result
    3. Select Menu (with menu categories in first column, food items on 2nd and Cart in rd column)
    4. Direct add to cart with min amount to order
    5. checkout

  4. Hi

    Is there a way to only allow 5 orders per hour, and also to add a 10% mark up in the check out as well as a £5 delivery fee.

    Please help me out I’m new to this.



  5. Sorry, I just found this article. Can I ask if there are any word press plugins that would enable a customer to leave his location for delivery?

Leave a Reply

Your email address will not be published. Required fields are marked *

Get The Latest Updates

Subscribe to our Newsletter

A key to unlock the world of open-source. We promise not to spam your inbox.

Suggested Reads

Join our 55,000+ Subscribers

    The Wisdm Digest delivers all the latest news, and resources from the world of open-source businesses to your inbox.

    Suggested Reads