Allowing customers to place food orders through an online restaurant ordering system is a guaranteed way to grow your restaurant business.
In this guide, we will show you how to create an omnichannel restaurant ordering system that will allow you to accept online orders, process in-person payments, and manage order fulfillment for local pickups and deliveries.
Let’s take a look at some of the key benefits of implementing a restaurant ordering system:
- Increased Sales – Online ordering boosts revenue by providing ordering convenience, leading to more frequent purchases and higher sales.
- Enhanced Efficiency – Automation reduces errors and improves customer communication.
- Improved Customer Experience – Online and mobile-friendly systems offer a user-friendly experience, secure payments, and build customer loyalty.
- Data Insights – Collecting customer data aids in tailored marketing, new product introductions, and better decision-making.
- Cost Savings – Online ordering reduces manual processing, minimizes errors, lowers overhead, and saves costs.
How does a restaurant ordering system work?
An online ordering system is simply a mechanism or platform that allows your customers to place an order online.
The restaurant ordering system we are going to implement will offer the following:
- Online Storefront – Customers browse a product catalog and add selected items to a virtual shopping cart. Depending on the type of product, customers may have the option to customize their order. For example, they can choose toppings on a pizza or specify the type of base. The system keeps track of the items in the cart and calculates the total cost.
- User Account or Guest Checkout – Customers will be prompted to create an account or log in if they haven’t done so already. This allows the restaurant ordering system to save their order history and preferences for future orders. Alternatively, they can also place an order without creating an account (i.e. guest account).
- Delivery or Local Pickup Selection – Customers choose whether they want their order delivered to a specific address or if they prefer to pick it up in-store.
- Payment Processing – Customers provide payment information through secure payment gateways. Common payment methods include credit/debit cards, digital wallets (e.g. PayPal), or cash on delivery (COD).
- Order Confirmation – After successful payment, customers receive an order confirmation email or notification through the restaurant ordering system, summarizing their order details and estimated delivery or pickup time.
- Order Management – The restaurant ordering system sends the order details to the business’s back-end system, such as a point-of-sale (POS) system or order management software. Staff at the business receive notifications about new orders and start preparing them.
- Order Fulfillment – When an order is created, the kitchen staff will need to receive the order and prepare it, before it is given to the customer. In the case of delivery orders, a delivery driver is assigned an order when it is ready for delivery.
- Order Tracking – Customers may have the option to track the status of their order in real-time through the restaurant ordering system. They can see when the order is being prepared, out for delivery, or ready for pickup.
- Delivery or Pickup – Customers receive their order at the specified location (delivery address or in-store pickup counter).
- Order History and Account Management – Customers can access their order history and manage their account settings through the restaurant ordering system.
- Analytics and Reporting – Businesses can use the data collected through the restaurant ordering system for analytics, inventory management, and improving their services.
Setting up your restaurant ordering system
We are going to set up an inexpensive restaurant ordering system using FooSales and a popular e-commerce platform called WooCommerce. WooCommerce runs on WordPress and can be used to sell physical goods, digital products, and services. It is an ideal solution for accepting online orders of almost any kind.
Most of the functionality we outlined in the previous section is already built into WooCommerce and FooSales, however, there are some features we will need to add using plugins and third-party tools. Let’s dive in and start setting up your online ordering system
1. Getting started with WordPress and WooCommerce
If this is your first time working with WordPress or WooCommerce, don’t worry, it’s super straightforward. To get started, please read this handy guide that will have you up and running in 5 easy steps. Once your site is up and running, please continue to the next section.
2. Create products
Each menu item or meal, will be added as a WooCommerce product for your restaurant ordering system. To keep your products organized, you can create product categories that will represent the various sections of your menu. Go to Products > Categories and click Add New to create your menu categories.
Next, you can create the products/meals. In the WooCommerce admin dashboard, go to Products > Add New and complete the Title, Long Description, Product Data, Product short description, Product categories, and Product Image for the meal. Once all fields have been completed, click the Publish button. Repeat this process for each product until all menu items for your restaurant ordering system have been added.
TIP: You can use WooCommerce Variations to offer multiple variations of a product such as size (e.g. small, medium, large) and flavor (e.g. mild, medium, hot). Try to avoid using third-party product add-on plugins as they might not be compatible with the POS integration.
3. Enable pickup and delivery options
When completing checkout, your customers will need to specify if they intend to collect the order at your establishment or if they require it to be delivered. We are going to use the built-in WooCommerce shipping methods to achieve this.
In your WordPress dashboard, navigate to WooCommerce > Settings > Shipping and click the Add Shipping Zone button. Enter the Zone name and specify the region your establishment is located in.
Under Shipping methods, add the Local Pickup shipping methods.
For Local Delivery, you can select Free shipping or a flat rate that will be applied at checkout. You can set the flat rate fee by editing the shipping method after creating it. In the example below, we changed the name of the Flat Rate shipping method to Local Delivery and added a $5 fee that will be added to the cart when the shipping method is selected at checkout.
4. Configure custom order statuses to match your workflow
Next, we are going to use custom order statuses to track the progress of an order in your restaurant ordering system. To do this, you will need to install a custom order status plugin. There are a number to choose from, but for this guide, we will install the free Ni WooCommerce Custom Order Status plugin.
Once installed, you can create custom order statuses to match your restaurant’s order fulfillment workflow. Navigate to Order Status > Add New and create the following example order statuses:
- Active – Orders that are currently being prepared
- Ready – The order is ready to be collected by the customer or delivered to the customer (depending on the shipping method selection)
- Complete – The order has successfully completed and no further action is required
5. Create automated customer emails and SMS
Next, you will need to purchase and install the AutomateWoo plugin which can be purchased from the WooCommerce Marketplace. It will be used to set up various notifications that will help inform your customers and create a more professional experience for your restaurant ordering system.
How it will work is when you change the status of an order, AutomateWoo will send an email to the customer. You can set up various emails that are triggered by different order statuses and you can also apply additional rules so that emails are only sent when certain conditions are met.
To get started, login to your WordPress dashboard and navigate to AutomateWoo > Workflows > Add New, and enter the title.
Proceed to the Trigger section and set the trigger to Order Status Changes. Here you can set the status change that will trigger the email notification. This will depend on the type of email you plan to send. You can also use the Rules settings to only send the email if certain conditions are met. For example, you can apply a rule that will only send an email if the status is Active and the shipping method is set to Local Pickup.
Here are a few examples of the types of automation you can implement using triggers and rules:
Order being prepared email
When an order is received, the kitchen will need to change the status of the order to Active, which indicates that it is being prepared in your restaurant ordering system. When doing so, we can set AutomateWoo to send an email to the customer letting them know that the kitchen has started preparing the order. This will help manage the customer’s expectations and let them know how their order is progressing.
Order ready for collection email
This email should only be sent to customers if the shipping method is set to Local Pickup. This can be achieved using a rule that checks if the order’s shipping method is set to Local Pickup.
Order is on its way email
This email should only be sent to customers if the shipping method is set to a delivery method (Flat Rate or Free Shipping). This can be achieved using a rule that checks if the order’s shipping method is set to Flat Rate or Free Shipping.
Thank-you email
A great way to boost repeat sales through your restaurant ordering system is to send your customer a thank-you email that includes a special offer using a coupon code once the order has been completed.
Timing/scheduling
In all of the above examples, you can simply leave the Timing setting to Run immediately unless you would like to apply a slight delay which will give you time to cancel an email being sent if the order status was changed incorrectly.
Actions
For each email you will need to setup an email or SMS text message. This is done by creating an Action. In the Actions box, you can select what type of action should occur in response to a trigger configured in your restaurant ordering system. Set the Action field to Send Email and complete all the relevant fields. This email will be sent to the customer, so you can set the email To field to the customer’s email address using the {{ customer.email }} variable. You can customize the Subject and Email content fields as needed and save.
Here is an example:
Over time, this will save countless hours and minimize the risk of error. You can also configure AutomateWoo to send SMS’s using Twilio which is another great feature of this restaurant ordering system.
6. Create a menu page
Out of the box, you can use the standard WooCommerce shop and product pages to display your menu items. That said, it’s not the most ideal user experience when placing an order. It would require your customers to navigate to multiple product pages as they would when navigating a traditional retail store. Plugins like the Barn2 WooCommerce Restaurant Ordering plugin improve your customer experience by adding a streamlined restaurant menu interface to the front-end of your website.
This will make it faster and easier for your customers to create their order and increase the conversion rate through your restaurant ordering system. You can also display opening times and disable ordering when your restaurant is closed.
There are a number of other great plugins to choose from such as Orderable (limited free version available) and Restaurant for WooCommerce. Barn2’s plugin is perhaps one of the simpler options which is what we love about it. It’s super easy to set it up, works great on mobile and does what is needed.Â
For detailed instructions on how to set up the Barn2 WooCommerce Restaurant Ordering plugin, please refer to this help guide.
7. Setup FooSales POS
Now that your website is primed to receive online orders, you will need to implement a WooCommerce POS solution that will allow you to receive and manage the orders at your establishment. This is a key component of a good restaurant ordering system and it ensures that you are able to process in-house orders and payments while keeping track of revenue and customers.
In addition to standard POS functionality, FooSales fully integrates with WooCommerce orders and makes it possible to receive, modify, and manage online orders through the POS interface.
To get started, sign-up for a 7-day free trial and follow the installation steps.
Once you have created a FooSales account, login to your WordPress dashboard and install the FooSales WordPress plugin.
Order settings
Next, we will need to update the FooSales order settings so that the custom order statuses reflect in the FooSales POS apps. Go to FooSales > Settings > Orders. Here you can specify what Order statuses to load in the FooSales POS apps, Order submit statuses at checkout, and orders that are highlighted as Incomplete order statuses.
You can then also set FooSales to display order alerts based on the order status or shipping method associated with an order. Order alerts will ensure floor or kitchen staff are made aware of new orders and are able to act on them without delay thanks to your restaurant ordering system.
Login to the FooSales POS apps
You can login to the FooSales iPad, Android tablet or web app using your store administrator details. FooSales will then connect to your site and load all your products, orders, and customers. FooSales uses your store’s existing WooCommerce products and tax settings, so as soon as it loads, you will immediately be able to manage orders and process in-person sales through your restaurant ordering system.
Using your restaurant ordering system
Now that your new restaurant ordering system is setup, let’s take a look at the various ways it can be used to manage your online orders, in-house orders, and in-person payments.
Online orders
When a customer completes an order on your website, the order will be sent to the FooSales POS apps and an order alert will display. You can then choose to ‘snooze’ the alert or you can view the order by pressing the order line item.
Viewing online orders
The order view screen includes all the information needed to complete an order. The list view in the left panel includes the order ID, order status, shipping method, price total and the number of items included in the order. The information panel on the right includes all information related to an order.
Preparing an order
By default, the order status of an online order will be set to Processing. This is because the product is a physical product and requires fulfillment in order for it to be completed in your restaurant ordering system. When you are ready to prepare an order, change the status of the order to Active, using the order status selector.
If you setup the ‘Order being prepared’ email automation outlined earlier in this guide, your customer will then automatically be sent an email or SMS letting them know that their order is being prepared.
Printing the order
Your kitchen staff can view the order details using a tablet device, or simply print an order slip using the print option. The FooSales iPad and Android tablet apps also support a number of thermal receipt printers which are ideal for a kitchen environment.
Completing an order
Once an order is ready, you can change the status to Ready. Thanks to the automation we configured earlier in this guide, your customer will be notified that the order is ready for collection or is on it’s way.
If your order is a delivery order, your driver can use the information included in the Order Details tab to fulfill the order.
Once the order is in your customer’s hands, you or the driver can change the order status to Complete.
In-house orders
You can also use FooSales to manage in-house orders through your restaurant ordering system. Any orders created via FooSales will be stored as standard WooCommerce orders in your WooCommerce database.
On the default sales screen, you can search and filter your product catalog, or connect a barcode scanner to find a matching product ID or SKU.
When processing an order, simply add products to the cart and proceed to the checkout screen. Here you can link the order to a new or existing parent/student profile, apply discounts, apply coupon codes, and add order notes. When you are ready, you can select the relevant payment method and complete the in-person transaction. FooSales will then generate an order directly in WooCommerce.
The order can be viewed in the orders section in FooSales, or when viewing orders in the WooCommerce dashboard on your WordPress site. Since FooSales uses your existing products and inventory, your online stock availability will automatically be adjusted without having to manually update your stock in WooCommerce.
When submitting an order at checkout, you can also set the order status to Processing, which lets the kitchen staff know that the order needs to be prepared through your restaurant ordering system.
Viewing orders in the WooCommerce dashboard
Both online orders and orders created in the FooSales POS apps can be viewed in the WooCommerce dashboard and in the WooCommerce order reports.
Ready to setup your own online ordering system?
Launching a restaurant ordering system will almost certainly help to grow your business. By leveraging the power of WooCommerce and FooSales, you can create a cost effective, seamless omnichannel ordering system that will leave your customers smiling and your business booming.