How to Set Up Online Food Ordering with WooCommerce
Why WooCommerce Is the Best Platform for Restaurant Online Ordering
Restaurants today face a critical decision when choosing how to accept online orders. The three main paths are building a custom solution from scratch, subscribing to a SaaS platform, or leveraging an existing e-commerce framework like WooCommerce. Each approach has trade-offs, but for the vast majority of restaurant owners, WooCommerce combined with the right plugin delivers the ideal balance of flexibility, cost efficiency, and long-term control.
Custom development might sound appealing on the surface, but the reality is harsh. A bespoke food ordering system can cost anywhere from $10,000 to $50,000 or more to build, and that does not include ongoing maintenance, security patches, or feature updates. You also need a dedicated development team or agency on retainer, which adds thousands more per year. For most independent restaurants and small chains, this is simply not viable. If you want a deeper comparison of these approaches, read our guide on WordPress vs custom development for restaurant ordering.
SaaS platforms like ChowNow, Toast, or Square Online offer convenience, but they come with recurring monthly fees that often range from $100 to $500 per month. Many also charge per-transaction fees on top of payment processing, and you are locked into their ecosystem. If you ever want to switch, you lose your data, your customer relationships, and potentially your SEO rankings. You also have limited control over how the ordering experience looks and functions.
WooCommerce sits in the sweet spot. It is free and open-source, running on WordPress which powers over 40% of the web. You own your website, your data, and your customer relationships entirely. With a specialized plugin like NibblePress, you get all the restaurant-specific functionality you need without the bloat of a generic e-commerce store. The total cost of ownership is dramatically lower than both custom development and SaaS platforms, especially when you factor in the long-term savings.
Prerequisites: What You Need Before Getting Started
Before diving into the setup process, make sure you have the following components in place. These are the foundational building blocks that will support your entire online ordering operation.
WordPress Installation
You need a working WordPress installation on a reliable hosting provider. Shared hosting will work for smaller restaurants, but if you expect significant order volume, a managed WordPress host or a VPS with at least 2GB of RAM is recommended. Make sure your PHP version is 7.4 or higher (8.0+ is ideal), and that your server has an SSL certificate installed so your site runs on HTTPS. This is essential for payment processing and customer trust.
WooCommerce Plugin
Install and activate WooCommerce from the WordPress plugin repository. During the WooCommerce setup wizard, you can skip most of the default store configuration since NibblePress will handle the food-specific settings. However, make sure to set your store location, currency, and basic tax settings during this step. WooCommerce handles the heavy lifting of cart management, checkout flows, and payment gateway integration, which NibblePress builds upon.
NibblePress Plugin
NibblePress is the specialized layer that transforms your WooCommerce store into a full-featured food ordering system. It adds menu management, order type handling (delivery, pickup, dine-in), time slot scheduling, and much more. You can explore all the capabilities on the features page and choose the plan that fits your restaurant on the pricing page. NibblePress is available with yearly and lifetime licensing options, starting at $69 per year for the Core plan or $199 for a lifetime license.
Step 1: Install and Activate NibblePress
After purchasing your NibblePress license, download the plugin ZIP file from your account dashboard. In your WordPress admin panel, navigate to Plugins and click Add New, then Upload Plugin. Select the NibblePress ZIP file and click Install Now. Once the installation completes, click Activate.
Upon activation, NibblePress will guide you through an initial setup wizard. This wizard helps you configure your restaurant name, address, operating hours, and basic ordering preferences. Take your time with this step because these settings affect how your menu and ordering system appear to customers. You can always change them later from the NibblePress settings panel, but getting them right from the start saves you time.
The setup wizard will also create the necessary pages automatically, including your menu page, cart page, and checkout page. These pages use WooCommerce shortcodes enhanced by NibblePress to display your food ordering interface.
Step 2: Create Menu Categories
A well-organized menu is essential for a smooth ordering experience. NibblePress uses WooCommerce product categories to organize your food items, but it enhances them with restaurant-specific features like category images, display ordering, and availability schedules.
Start by planning your category structure before creating anything. A typical restaurant might use categories like Appetizers, Main Courses, Burgers, Pizza, Pasta, Salads, Desserts, and Beverages. Think about how your physical menu is organized and mirror that structure in your digital menu.
To create a category, go to Products and then Categories in your WordPress admin. Add a name, an optional description, and upload a category image. The image should be high quality and representative of the category. For example, your Pizza category might feature a photo of your most popular pizza. Set the display order to control how categories appear on your menu page. You can also create subcategories for more granular organization, such as having Thin Crust and Deep Dish under your Pizza category.
Step 3: Add Food Items to Your Menu
Each food item on your menu is a WooCommerce product, but NibblePress extends the product editor with food-specific fields. To add a food item, go to Products and click Add New.
Fill in the product name (e.g., “Margherita Pizza”), write an appetizing description that highlights key ingredients, and set the price. Upload a professional photo of the dish. Studies consistently show that food items with photos receive 30% more orders than those without, so do not skip this step.
Assign the product to the appropriate category, and configure any NibblePress-specific options such as preparation time, allergen information, and availability schedule. If an item is only available during lunch service, you can set time-based availability so it automatically appears and disappears from the menu at the right times.
Repeat this process for every item on your menu. While this might feel tedious for large menus, it is a one-time effort that pays dividends. Each item you add properly now means fewer headaches later when managing orders, inventory, and reporting.
Step 4: Configure Extras and Toppings
One of the most powerful features of NibblePress is how it handles food extras. Unlike other solutions that treat extras as simple text labels, NibblePress uses real WooCommerce products for every extra, topping, and modifier. This means each extra has its own price, inventory tracking, tax handling, and reporting capabilities.
To set up extras, first create the extra items as WooCommerce products. For example, create products for “Extra Cheese,” “Bacon,” “Avocado,” “Jalapenos,” and so on. Set the price for each extra and assign them to an extras category.
Then, in the NibblePress settings for each food item, you can assign which extras are available. You can create groups of extras (like “Choose Your Toppings” or “Select a Side”) and set rules such as minimum and maximum selections, required versus optional groups, and conditional logic where certain extras only appear based on other selections.
For a deep dive into this system, read our detailed guide on why real WooCommerce products matter for food extras. It covers advanced configurations and real-world examples like pizza builders and bowl customizers.
Step 5: Set Up Delivery Zones
If you offer delivery, configuring delivery zones is essential for profitability and customer satisfaction. NibblePress allows you to define multiple delivery zones based on distance or postal codes, each with its own delivery fee, minimum order amount, and estimated delivery time.
Start by defining your primary delivery zone, which is typically the area closest to your restaurant. This zone might have free delivery or a low delivery fee with a reasonable minimum order. Then add secondary zones for areas further away, with higher delivery fees and higher minimum order requirements to ensure each delivery remains profitable.
Be strategic about your zone boundaries. Delivering too far increases your costs, slows down delivery times, and can result in food arriving cold. For a comprehensive strategy on optimizing your delivery areas, check out our post on setting up profitable delivery zones.
For restaurants with complex delivery needs, the Advanced Delivery Zones add-on provides polygon-based zone mapping, real-time distance calculations, and dynamic pricing based on actual driving distance rather than straight-line radius.
Step 6: Configure Time Slots and Scheduling
Time slot configuration prevents your kitchen from getting overwhelmed during peak hours and gives customers clear expectations about when their food will be ready or delivered.
In the NibblePress scheduling settings, define your operating hours for each day of the week. Then set up time slots with a specific duration (e.g., 15-minute or 30-minute slots) and a maximum number of orders per slot. This capacity-based system ensures you never accept more orders than your kitchen can handle.
You can also configure different schedules for different order types. For example, delivery orders might have 30-minute slots while pickup orders use 15-minute slots. You can set how far in advance customers can order (e.g., up to 7 days ahead) and how much lead time is required before the first available slot (e.g., at least 45 minutes from the current time).
Do not forget to configure holiday schedules and special hours. You can set specific dates as closed or with modified hours, which automatically reflects on the ordering interface so customers never place an order when you are not operating.
Step 7: Set Up Payment Gateways
WooCommerce supports dozens of payment gateways, and all of them work with NibblePress. The most common choices for restaurants are Stripe and PayPal, but you may also want to offer cash on delivery for local orders.
To configure Stripe, install the WooCommerce Stripe Gateway plugin and connect it to your Stripe account. Stripe supports credit cards, Apple Pay, Google Pay, and other popular payment methods. The transaction fees are typically 2.9% plus $0.30 per transaction, which is standard for online payments.
For cash on delivery, enable the built-in WooCommerce COD payment method. You can restrict this option to specific order types (e.g., only for delivery orders) and set conditions like a maximum order amount for cash payments.
Test each payment method thoroughly before going live. Place test orders with each payment type and verify that the entire flow works from order placement through confirmation emails and order dashboard updates.
Step 8: Test Your Ordering System
Testing is the most important step before launching, and it is one that many restaurant owners rush through. Set aside at least two to three hours to systematically test every aspect of your ordering system.
Start with the customer experience. Browse your menu on both desktop and mobile devices. Add items to the cart, customize them with extras, and check that prices calculate correctly. Test the checkout flow with each payment method. Verify that order confirmation emails are sent and contain accurate information.
Then test the backend experience. Check that new orders appear correctly in the NibblePress order dashboard. Verify that order details are complete and accurate, including customer information, order items, extras, special instructions, and delivery addresses. Test the order status workflow by moving orders through each stage (received, preparing, ready, out for delivery, completed).
Ask a few trusted friends or family members to place test orders as well. Fresh eyes often catch issues that you overlook because you are too familiar with the system. Pay special attention to the mobile experience since the majority of food orders today come from mobile devices.
Configuring Order Types: Delivery, Pickup, and Dine-In
NibblePress supports three primary order types, and you can enable any combination based on your restaurant operations. Each order type has its own settings, workflows, and customer-facing interface elements.
Delivery Orders
Delivery orders require a customer address, which NibblePress validates against your configured delivery zones. The system automatically calculates the delivery fee based on the zone and displays estimated delivery time. Customers select a delivery time slot during checkout, and the address is included in the order details for your delivery staff.
For restaurants that manage their own delivery fleet, the Driver Management add-on provides driver assignment, real-time tracking, and delivery performance analytics. Our restaurant delivery management guide covers best practices for building an efficient delivery operation.
Pickup Orders
Pickup orders are simpler since no address or delivery zone calculation is needed. Customers select a pickup time slot and receive a confirmation with your restaurant address and any pickup instructions you configure. Many restaurants set up designated pickup areas or shelves with order names or numbers for a contactless experience.
Dine-In Orders
Dine-in ordering is where QR code table ordering really shines. Customers scan a table-specific QR code, browse the menu on their phone, place their order, and pay, all without waiting for a server. This dramatically speeds up table turnover and reduces the workload on your front-of-house staff. For a complete guide on implementing this, read our post on QR code table ordering for restaurants.
Setting Up Notifications: Email, WhatsApp, and SMS
Timely notifications keep both your staff and your customers informed about order progress. NibblePress supports multiple notification channels that you can combine for maximum reliability.
Email Notifications
Email is the default notification channel and works out of the box with WooCommerce. Customers automatically receive order confirmation, status update, and completion emails. You can customize the templates to match your brand and include relevant information like estimated preparation time and pickup or delivery instructions.
WhatsApp Notifications
The WhatsApp Notifications add-on sends real-time order updates directly to your customers via WhatsApp. Since WhatsApp messages have a 98% open rate compared to around 20% for email, this dramatically improves customer communication. It also sends instant alerts to your kitchen staff when new orders arrive. For a comparison of messaging channels, see our article on WhatsApp vs SMS for restaurant notifications.
SMS Notifications
The SMS Notifications add-on provides an alternative for customers who do not use WhatsApp or in regions where SMS is preferred. SMS works on every phone regardless of internet connectivity, making it a reliable backup channel. Many restaurants use both WhatsApp and SMS together, sending via WhatsApp first and falling back to SMS if the customer is not on WhatsApp.
Adding QR Code Ordering for Dine-In
QR code table ordering has become a standard expectation in modern restaurants. The QR Code Table Ordering add-on for NibblePress allows you to generate unique QR codes for each table in your restaurant.
The setup process is straightforward. First, define your tables in the NibblePress settings by specifying table numbers or names. Then generate QR codes for each table. Print these codes and place them on the corresponding tables using stands, stickers, or table tents.
When a customer scans the QR code, they are taken directly to your menu with the table number pre-selected. They can browse, customize, and order without downloading any app. The order is automatically tagged with the table number, so your kitchen and serving staff know exactly where to deliver the food.
This system reduces wait times, eliminates order-taking errors, and allows your staff to focus on food preparation and customer service rather than taking orders. It also increases average order value because customers tend to order more when they can browse at their own pace without feeling rushed. Learn strategies to maximize this effect in our guide on increasing average order value with digital ordering.
Kitchen Workflow: KDS or Auto-Print
Getting orders from your website to your kitchen efficiently is critical. NibblePress offers two primary approaches, and many restaurants use both simultaneously.
Kitchen Display System (KDS)
The Kitchen Display System add-on shows incoming orders on a screen in your kitchen. Orders are displayed in real time with all details including items, extras, special instructions, and table or delivery information. Kitchen staff can tap to acknowledge orders, mark items as being prepared, and flag orders as ready.
A KDS eliminates paper waste, prevents lost tickets, and provides clear visibility into the order queue. It also enables better communication between kitchen stations if you run the display on multiple screens. For a detailed comparison with traditional methods, read our post on kitchen display systems vs paper tickets.
Auto-Print
The Auto-Print add-on automatically prints order tickets on a thermal receipt printer as soon as an order is placed. This is ideal for kitchens that prefer physical tickets and already have a thermal printer setup. You can configure which information appears on the ticket, the paper size, and even route different order types or categories to different printers.
Many restaurants start with auto-print because it fits their existing workflow and later add a KDS as they grow. The two systems can work together, with printed tickets serving as a backup while the KDS provides the primary order management interface.
Going Live Checklist
Before flipping the switch and accepting real orders, work through this comprehensive checklist to ensure everything is ready.
First, verify your menu completeness. Every item should have a name, description, accurate price, and photo. Check that all extras and modifiers are correctly assigned and priced. Verify that category organization makes sense from a customer perspective.
Second, confirm your operational settings. Double-check operating hours, time slot configurations, delivery zones, and delivery fees. Make sure your kitchen capacity settings are realistic and will not result in accepting more orders than you can fulfill.
Third, test the complete order flow one final time. Place a test order for each order type (delivery, pickup, dine-in if applicable) and verify the entire chain from customer ordering through kitchen notification to order completion. Confirm that payment processing works and that receipts and confirmation emails are accurate.
Fourth, prepare your staff. Train everyone on the new system, from front-of-house staff who might answer customer questions to kitchen staff who will receive and process orders. Run a practice session during a quiet period to build confidence.
Fifth, plan your launch communication. Let your existing customers know about your new online ordering system through social media, in-store signage, email newsletters, and table cards. Consider offering a launch promotion like free delivery for the first week or a percentage discount on first online orders.
Finally, monitor closely during the first few days. Watch for any technical issues, customer confusion, or operational bottlenecks. Be ready to make quick adjustments to time slots, delivery zones, or menu items based on real-world performance. Use the Analytics Dashboard add-on to track key metrics from day one.
Choosing the Right NibblePress Plan
NibblePress offers three plans to match different restaurant needs, each available with yearly or lifetime licensing. The Core plan at $69 per year (or $199 lifetime) covers everything a single-location restaurant needs to get started with online ordering. The Professional plan at $129 per year (or $349 lifetime) adds advanced features for growing restaurants. The Business plan at $199 per year (or $499 lifetime) is designed for multi-location operations and high-volume establishments.
All add-ons like QR Code Table Ordering, Kitchen Display System, WhatsApp Notifications, and others are also available with yearly or lifetime pricing, so you can build exactly the system your restaurant needs without paying for features you do not use.
Visit the pricing page to compare plans in detail and find the right fit for your restaurant. And explore the complete features overview to see everything NibblePress can do for your food ordering operation.
Conclusion: Your Restaurant Deserves a Modern Ordering System
Setting up online food ordering with WooCommerce and NibblePress is a straightforward process that any restaurant owner can complete, even without technical expertise. The combination of WordPress flexibility, WooCommerce reliability, and NibblePress restaurant-specific features gives you a professional ordering system at a fraction of the cost of custom development or SaaS subscriptions.
The key is to approach the setup methodically. Start with the basics of menu categories and food items, then layer on delivery zones, time slots, and payment gateways. Add extras and toppings to give customers the customization they expect. Set up notifications to keep everyone informed. And finish with thorough testing before going live.
Once your system is running, you will wonder how you ever managed without it. Digital ordering reduces errors, speeds up service, increases average order values, and gives you data-driven insights into your business. It is not just a convenience feature; it is a competitive necessity in the modern restaurant industry.
Ready to get started? Head to the NibblePress pricing page to choose your plan, and you can have your online ordering system up and running within a single day.