Uber Eats Alternative: Create Your Own Restaurant Ordering System

Last Updated: March 29, 2020 7 comments

If you have a restaurant, Uber Eats is certainly a convenient way to offer online delivery…but it also charges 20-30% of every order, which can really cut into your margins! In this post, you’ll learn how to get the best of both worlds by using WordPress and WooCommerce to create your own restaurant ordering system to act as an Uber Eats alternative (or a Just Eat alternative, Gloriafood alternative, Deliveroo alternative, GrubHub alternative… it’s up to you!).

Basically, the techniques in this article will let you create a restaurant ordering system that you 100% own. It will still be user-friendly and work on any device (even smartphones), but you can cut out those pesky middlemen and stop letting your already thin margins get eaten up by commissions. Instead, your entire system can cost as little as ~$34 per month no matter how many orders you get.

Here’s an example of what you’ll be able to build without requiring any special technical knowledge:

Your customers will be able to browse your entire menu and order food for delivery or for takeout.

Ready to build your own Uber Eats alternative with WordPress and WooCommerce? Let’s dig in…

Why WordPress + WooCommerce make a great restaurant ordering system

If you’re not familiar with WordPress and WooCommerce, here’s a quick introduction:

WordPress is 100% free, open-source software that’s by far the most popular way to make a website. According to W3Techs, WordPress powers over a third of all the websites that you visit on the Internet.

Then, WooCommerce is a free extension for WordPress that adds full-service eCommerce features to the core WordPress software. WooCommerce is, in turn, the most popular way to make an eCommerce store, according to Built With.

While you won’t be using WooCommerce to create a “traditional” eCommerce store, all of the features that it adds are also what you need to create your own Uber Eats alternative for free online ordering. You can also use other extensions to customize it to meet your restaurant’s needs.

The important thing about this combination is that you 100% own everything. As a restaurant owner, you’re not beholden to someone else’s audience and you won’t have to pay any commissions.

You can run your own promotions, grow your own email and marketing lists…you get the idea – it’s yours.

Additionally, your online ordering platform will work on any device – laptop, tablet, smartphone, etc.

While the biggest benefit is avoiding those 20-30% commissions that other online ordering software charges, there’s also a ton of value in owning your own platform.

For example, this New York Times article does a great job illustrating how Grubhub and others can cannibalize existing customers from local restaurants – so an order that would’ve been commission-free in the past suddenly comes with a commission.

What you need to use WordPress as an Uber Eats alternative

To create your own restaurant ordering system and Uber Eats alternative with WordPress, you won’t need any technical knowledge, but you will need a few tools to help you get the job done:

  • Hosting + Domain Name – this is what powers your Uber Eats alternative. (We recommend Kinsta hosting.)
  • WordPress – the free open-source software that powers 34%+ of all the websites on the Internet.
  • WooCommerce – the free open-source eCommerce extension that’s the most popular way to create an eCommerce store.
  • WooCommerce Product Table – an easy-to-use plugin that lets you adapt WooCommerce to create a food menu and restaurant ordering system.

We’ll also mention some other optional extensions that you might want to use to enhance your ordering website.

How much will your restaurant ordering system cost?

Your online ordering system will not be free, but the important thing to remember is that it’s a flat cost. Whether you have 100 orders or 500 orders, you’re never going to pay any more.

Here’s the bare minimum cost:

  • Hosting – ~$300 year (paid annually)
  • Domain name – ~$10 per year
  • WooCommerce Product Table – $99

So at the very low end, you can get by for ~$410 per year, or just ~$34 per month.

You might also want some additional extensions to enhance your store, like WooCommerce Quick View Pro to help with customizable food items. But even with those extensions, you’ll still likely be paying under ~$50-60 per month all in for your entire online food ordering system.

What about mobile ordering apps? Do you need a mobile app?

The restaurant ordering system that you’ll build in this tutorial is 100% responsive. Essentially, that term means that your Uber Eats alternative will automatically adapt based on each visitor’s device and allow for mobile ordering.

So whether your visitors are on their smartphone, tablet, desktop, or other mobile device, your restaurant ordering system will still work great. And it also means your visitors won’t have to install yet another food delivery app just to order from your restaurant.

How to create your own Uber Eats alternative: Step-by-Step

In this video, watch Katie from Barn2 create a full food ordering system in just 50 minutes. Watch it and set it up alongside here. You’ll also find full written instructions below.

1. Purchase hosting/domain and install WordPress/WooCommerce

To power your restaurant ordering system and the WordPress software, you need web hosting and a domain name.

For web hosting, we recommend Kinsta, which offers affordable managed WordPress/WooCommerce hosting.

If you’re only hosting a restaurant ordering system for a single restaurant, you should be fine with the cheapest Starter plan, which will cost you just $30 per month.

You’ll also need a domain name, which you probably just want to make your restaurant name. Search for an easy-to-remember domain name that closely fits the name of your restaurant, such as myrestaurant.com. You can purchase your domain name from a domain registrar like Namecheap or Google Domains and follow Kinsta’s instructions to point your domain name to your new Kinsta hosting.

Once you create your hosting account, Kinsta will help you automatically install both WordPress and WooCommerce to help you get up and running.

Once you’ve done that, you can log in to your WordPress dashboard by going to yoursite.com/wp-admin.

To control how the basic design of your site looks, we recommend that you use a dedicated WordPress restaurant theme.

2. Run WooCommerce setup wizard

Once you log in to WordPress for the first time, you should see a prompt to run the WooCommerce setup wizard, which helps you configure the basics for your online ordering system:

WooCOmmerce wizard

If you want to accept online payments via credit card, you can set up a payment method like Stripe, PayPal, or Amazon Payments in the Payment tab. But if you want to handle payments in person, you can just choose Cash on delivery.

If you want to charge for delivery, you can add a flat-rate or percentage charge in the Shipping tab. We’ll talk more about shipping a second.

You don’t need to install the recommended plugins – so feel free to skip those steps.

3. Add food menu items as WooCommerce products

To add your individual menu items, you’ll use separate WooCommerce products for each menu item.

To get started, go to Products → Add New. There, you’ll want to:

  • Enter the title of the dish.
  • Add a short description.
  • Upload an image to use on the menu page.
  • Choose categories and tags to organize menu items. For example, a category might be “Sandwiches” and tags could be “Vegan” or “Gluten-free”.
Add food menu details

Then, find the Product data box and add basic details like price:

Product data box

For a simple dish, this might be all you need. But you’ll also probably have menu items where people can customize the dish, like choosing the size and toppings of a pizza.

If that’s the case, you can use either product variations or product add-ons:

  • Variation – use variations when a customer can only choose one option, like the size of a pizza. Choose Variable product from the Product data drop-down to set these up.
  • Add-on – use add-ons when a customer can choose multiple options, like the toppings on a pizza. You’ll need the official Product Add-ons plugin to set these up.

For example, here’s what it looks like to create a burger where people can choose between beef, chicken, or veggie, with each option getting a different price. For this situation, you would want to use variations:

A variable food menu item

Make sure to Publish your product. Then, repeat the process for all the menu items that you want to include in your online restaurant ordering system.

4. Restrict shipping areas

While an eCommerce store might ship nationwide or globally, your restaurant probably only delivers to a few specific zip codes.

To set this up, you can use WooCommerce’s built-in shipping zones feature:

  1. Go to WooCommerce → Settings → Shipping.
  2. Click Add shipping zone.
  3. In the shipping zone interface, click the link to Limit to specific ZIP/postcodes
  4. Enter the postcodes that your restaurant delivers to
Create shipping zone

As long as you don’t add any other methods, shoppers will only be able to ship to one of those zip codes.

You can also opt to charge a delivery fee or offer free delivery according to your preferences.

If you want to let visitors check if you deliver to their area, you can use the WooCommerce Delivery Area Pro plugin to add a “Check Delivery” feature.

5. Create your front-end restaurant ordering system

Once you’ve added all your menu items, you’re ready to create the front-end ordering menu for your Uber Eats alternative.

To do this, you’ll use the WooCommerce Product Table plugin, which lets you list all of your menu items in a convenient table layout:

WooCommerce Product Table
The best way to create your own Uber Eats alternative with WordPress.

Once you install and activate the plugin, go to WooCommerce → Settings → Products → Product tables.

It’s worth considering all of the settings, but here are the specific settings that you’ll definitely want to configure:

  • Columns – controls what information appears on your front-end menu. A good starting point is image,title,description,tags,price,add-to-cart, but you can check out all the options here.
  • Image size/Image lightbox – if you have high-quality pictures of your food, you can include larger images.
  • Add to cart button – choose Button and checkbox so that people can select multiple menu items using checkboxes before they go to checkout.
  • Variations – if you’re using product variations, you can either display them as a drop-down or display each variation as a separate item in your menu.
  • Product filters – if you’re using tags for helpful information, like marking vegan or gluten-free items, you can use product filters to let visitors filter your menu by those tags.
  • Links – type ‘none’ to disable links to the single product page. For a food ordering website, there’s no need to distract customers by taking them to a separate page for each product!
WooCommerce Product Table settings

Once you’ve configured the plugin, you can use the [product_table] shortcode to display your menu on the front-end.

By default, the shortcode will display all of your menu items. However, a better option for a restaurant ordering system is usually to use multiple shortcodes and divide your menu by category (or tag).

For example:

  • [product_table category="burgers"]
  • [product_table category="salad"]
  • [product_table category="pizza"]

To do this, go to Pages → Add New and add the shortcodes separated by regular text headings:

Add shortcode to page to create your front-end Uber Eats alternative

Once you publish your page, you should see the online menu for your Uber Eats alternative:

Example of an Uber Eats alternative WooCommerce restaurant ordering system

Consider WooCommerce Quick View Pro for order customization

If you have customizable dishes, like a build-your-own pizza or sandwich, you might want to further extend your ordering system with the WooCommerce Quick View Pro plugin.

With WooCommerce Quick View Pro, you can add a new Customize Dish button that visitors can click to open a popup where they can configure their item, like choosing the toppings and size for their pizza:

Product quick view
WooCommerce Quick View
The best plugin for custom or build-your-own menu items.

Once you install and activate the plugin, you can go to WooCommerce -> Settings -> Products -> Quick view to configure its settings. For example, changing the Button text to “Customize Dish”.

Then, you can add a quick-view column to WooCommerce Product Table’s settings to include the quick view button in your menu.

6. Set up backend processes for order notifications

By default, WooCommerce will send real-time email notifications when a new takeout or delivery order comes in.

However, because of the importance of getting started on orders right away, you might prefer a different method that’s more attention-grabbing so you can ensure fast delivery. Here are some good options:

    • Official WooCommerce apps – WooCommerce has free apps for iOS and Android that can send push notifications for new orders. If you use an iPad or other tablet for your POS, you can install the app directly on your restaurant POS system.
    • WooSMS – receive text messages when new orders come in. It also lets you send text messages to customers to let them know the status of their order (like when your delivery person is on the way).
    • WooCommerce Automatic Order Printing – lets you automatically print orders as they come in using Google Cloud Print.
    • YITH Desktop Notifications for WooCommerce – get desktop notifications for new orders. This is great if you use a computer as your restaurant point of sale (POS) system.

7. Enhance your restaurant ordering system (opening hours, delivery restrictions, etc.)

At this point, your WooCommerce food ordering system is all set up to function as an Uber Eats alternative. However, there are a few other tweaks you might want to make depending on your business.

  1. Add restaurant opening times and delivery slots To ensure that people only expect delivery when you are open, and restrict the number of deliveries within each time slot, install IconicWP’s WooCommerce Delivery Slots plugin. Customers can choose an available delivery slot, ensuring that your delivery drivers can cope with the number of food orders. They can even choose a delivery slot before they start shopping, to avoid disappointment.

  2. Manage your delivery drivers Use the free Delivery Drivers for WooCommerce plugin to avoid the manual work of managing your local delivery drivers.
  3. Offer special deals To run promotions, like buy one get one free, you can use the WooCommerce Dynamic Pricing plugin.
  4. Accept takeaway orders If you want to let shoppers pick up their orders (rather than delivering them), you can create a “Local pickup” shipping option for takeout.
  5. Accept tips If you want to accept tips, you can use the Name Your Price plugin.

Get started with your Uber Eats alternative

If you’re looking for a more flexible, cheaper Uber Eats alternative, creating your own WooCommerce food delivery platform cuts out the middlemen and gives you full ownership of your online platform. This approach also makes a great Just Eat alternative, Deliveroo alternative, Grubhub alternative, DoorDash alternative, PostMates alternative, Caviar alternative, etc.

While you’ll need to invest a few hours in setting up your food delivery service platform, the setup is a one-time thing and the benefits are long-lasting.

Not only can you stop giving up 20-30% of your orders as commission, but you’ll also be able to grow your own audience and build an evergreen marketing asset for your restaurant.

Choose your WordPress hosting, install WooCommerce and WooCommerce Product Table, and create your Uber Eats alternative for online ordering today.

WooCommerce Product Table
The best way to create your own Uber Eats alternative with WordPress.

Do you have any questions about using a WooCommerce restaurant ordering system as an Uber Eats alternative? Leave a comment and we’ll do our best to help.

Colin Newcomer

Colin Newcomer is a freelance WordPress writer for hire with a background in SEO and affiliate marketing. He helps clients grow their web visibility by writing primarily about digital marketing and WordPress. You can hire him to write for your website.


  1. Radoslaw
    February 2, 2020 Reply

    Hello and sorry for my english. Everything very well described but I miss an important element. There is no information here regarding driver service and deliveries. Maybe if you have experience in this and share it?
    I will give an example: I have a shop on woocommerce and everything configured according to your description but what's next with the connection with drivers like deliveroo, uber eats, just eats?

    Thank you in advance for any hints and help.

    • Katie Keith
      February 14, 2020 Reply

      Hi Radoslaw, your comment got us thinking. We have discovered a fantastic free plugin that connects your delivery drivers with your online restaurant ordering system - Delivery Drivers for WooCommerce. This should be exactly what you need!

      I have also added this to the article above. Thanks for the suggestion!

    • EJ
      February 11, 2020 Reply

      Hi, Radoslaw. Thanks for your comment. I think your English is great, as I understand you perfectly and you were able to implement the steps in our tutorial in the WooCommerce shop on your site.

      Please note that what we describe here is an alternative to or a different choice/option instead of the mobile app-based Uber Eats. The difference is that with Uber Eats, the customers purchase through the driver, who then goes to the restaurant and buys the food for them. With our solution, the customer buys the food directly from your restaurant rather than through a random driver. The deliveries in this case would be your in-house driver(s) and the delivery pricing would be either free, included in the pricing of your products in the online food menu, or as the WooCommerce shipping rates.

      Best regards,

  2. Isaac Kwasie Salam
    January 31, 2020 Reply

    Much grateful. I want to great an online order for multiple restaurants and shops on same site but different sellers . What plugin or any other can help me do that?

  3. Mark Viergutz
    November 15, 2019 Reply

    I tried building a restaurant food ordering website. The only hurdle I couldn't overcome was how to make it fully functional (like ÜberEats) with multiple restaurants. We couldn't find a way to set up the ordering, notifications, SMS, and order messages to the different restaurants. WooCommerce suggested that AutomateWoo might be able to do the job. https://automatewoo.com/ The client ran out of money by then leaving things in limbo. What do you think would be the solution? AutomateWoo? Or some other way.

    • EJ
      December 10, 2019 Reply

      Hi, Mark. I'm sorry to hear about the mothballed project and hope your client recovers. To set up the ordering and email notifications with multiple restaurants, you could look into the 2 methods we suggest in this section of our other tutorial; Create a WooCommerce Restaurant Ordering System to Order Food Online > Take online orders for restaurant chains. In the same article, the section about Mobile ordering for restaurants shows you how you can include/allow SMS notifications when you receive a new order. Thanks.

Please share your thoughts...

Your email address will not be published.