How to Manage Employee Lunch in Odoo 19: Complete Tutorial
How to manage employee lunch in Odoo 19 is one of the most practical HR tasks you can automate right out of the box. This complete tutorial is a beginner guide and step by step walkthrough of the Odoo 19 Lunch module — a built-in feature that lets employees pre-order meals through a clean kanban interface while administrators manage vendors, menus, delivery locations, cash accounts, and automated delivery alerts from a dedicated manager dashboard. Whether you are an HR administrator setting up the system for the first time or an employee learning how to place and track your daily lunch order, this guide covers every screen, every configuration field, and every workflow you need to get the Lunch module running smoothly in your organisation.
What You'll Learn:
- How to install and enable the Lunch module in Odoo 19
- How to configure Lunch Settings including overdraft limits and reception notifications
- How to add and manage vendors with contact details, availability schedules, and order methods
- How to create products and product categories so employees can browse a structured menu
- How to define delivery locations for meal collection across multiple offices or floors
- How to set up alerts that notify employees when lunch is ready via in-app messages or the Discuss chat
- How employees place a new order, add extras and notes, and track order history and account balance
- How managers review today's orders, manage vendor accounts, and record cash moves
- How the Lunch module integrates with Employees and Accounting for payroll deductions
What Is the Odoo 19 Lunch Module?
The Odoo 19 Lunch module is a dedicated HR sub-application that centralises the entire employee meal-ordering workflow inside Odoo. Instead of employees placing phone orders directly with multiple vendors, managing paper slips, or sending individual emails, the Lunch module creates a single digital ordering system where employees browse a structured menu, select their meals, add extras, write notes, and submit their order with one click. The system tracks each employee's account balance, deducts the meal cost, and allows managers to top up accounts via cash moves.
On the administration side, the module connects to Odoo's Employees module so every staff member automatically appears as a lunch account holder, and it can integrate with Accounting so meal costs can be processed as payroll deductions or expense reimbursements. Vendors are stored with full contact details, day-of-week availability, and configurable order methods so the system can automatically route orders by phone or email. Product menus are organised by category with pricing, vendor assignment, and a "New Until" date that highlights recently added items.
Employee Self-Service Ordering
Employees browse the menu in kanban view, filter by category or vendor, select meals, add extras and personal notes, and submit their order with a single click. The interface shows the total cost, amount already paid, and remaining balance in real time, giving full transparency before confirming. Order history is available for review, reordering, or cancellation at any time before the cut-off.
Manager Dashboard
The Manager section provides a consolidated view of all employees' lunch orders for the current day, enabling HR or the office manager to review, organise, and communicate with vendors efficiently. Cash moves can be created to top up individual employee accounts, and the Control Accounts view shows every transaction — payments, deductions, and manual adjustments — across all staff members in one place.
Vendor and Menu Management
Each vendor record stores full contact details, service days, delivery or pickup preference, and order routing method. Products are linked to vendors with a price, category, and optional "New Until" date. Extras can be added to any vendor with custom labels, quantity rules, and individual pricing, allowing employees to customise their meals (for example, choosing a sauce, side dish, or drink) within the pre-defined options set by the administrator.
Smart Alerts and Notifications
The Alerts configuration screen lets administrators create named alerts that trigger at specific times on selected days of the week for specific delivery locations. Alerts can appear as in-app notifications or be pushed directly to a chat channel in the Discuss app. Each alert can target specific recipients and carry a custom message — for example, "Lunch from Green Garden Kitchen has arrived at Reception — please collect your order."
Step by Step Guide: Managing Employee Lunch in Odoo 19
The following six steps take you from a fresh Odoo 19 installation through to a fully operational lunch ordering system. Each step builds on the previous one, so it is best to follow them in order the first time you configure the module. Subsequent changes — adding new vendors, updating menus, or adjusting alert schedules — can be made independently at any time once the foundation is in place.
Install the Lunch Module
Navigate to the Apps menu in Odoo 19 and search for "Lunch". Click Install on the Lunch module card. The installation process adds the Lunch application to the main menu and automatically creates the necessary database tables for orders, vendors, products, accounts, and alerts. Once installed, a Lunch icon appears in the top navigation bar. Click it to open the module. You will land on the main Dashboard which displays food items in kanban view. On the left side you will see a category filter panel, and on the right a vendor section. At the top of the ordering area, the system shows your order profile with your name, delivery address, today's date, received orders, and current account balance.
Configure Settings and Overdraft Limits
Go to Configuration > Settings inside the Lunch module. The Settings page contains two key options. The first is Lunch Overdraft: this defines the maximum negative balance (credit limit) an employee is allowed to accumulate before the system blocks them from placing further orders. Set this value according to your company policy — for example, a limit of 10.00 means an employee can order up to 10.00 worth of meals before their account must be topped up. The second setting is Reception Notification: when enabled, this option automatically triggers a notification to employees when their lunch order has been received or is ready for collection. After adjusting these options, click Save to apply the configuration across the entire Lunch module.
Set Up Vendors
Navigate to Configuration > Vendors and click New to add your first lunch supplier. Enter the vendor's name, address, email, and phone number. Next, configure the availability schedule by checking the days of the week on which this vendor operates — for example, Monday through Friday. Set the delivery method to either Delivery (vendor brings meals to the office) or Pickup (employees collect from a specific location). Under Order Method, choose whether orders should be routed by phone or email — this determines how the system formats and sends order summaries. Finally, use the Extras tab to define optional add-ons: each extra has a label (for example, "Sauce"), a maximum quantity rule (for example, "Choose exactly 1" or "Choose up to 2"), and individual pricing for each option. Save the vendor record when complete.
Add Products and Product Categories
Before adding products, create your categories. Go to Configuration > Product Categories and click New. Enter a category name (for example, "Main Course", "Salads", "Sandwiches", "Drinks") and assign the relevant company. Save each category. Next, go to Configuration > Products and click New. Fill in the product name (for example, "Grilled Chicken Wrap"), select the category you just created, choose the vendor that supplies this item, and enter the price. The New Until date field is optional — set a date here if you want the product to appear with a "New" badge in the menu until a specified date, drawing employees' attention to recently added items. Add a description with ingredients or allergy information if needed, and assign the correct company. Save the product. Repeat for all menu items, grouping them logically by category so employees can filter easily during ordering.
Configure Delivery Locations and Alerts
Go to Configuration > Locations and click New. Enter the location name (for example, "Main Reception", "3rd Floor Kitchen", "Canteen"), the full address, and the company. Locations allow employees to specify where their meal should be delivered, and they allow managers to group today's orders by delivery point. Save each location. Next, go to Configuration > Alerts and click New. Enter an alert name and choose the display type: "Notification" shows a pop-up inside Odoo, while "Chat Notification" pushes the message to a specified channel in the Discuss app. For chat notifications, select the recipients who should receive the message. Choose the location this alert applies to and set a validity date range if the alert should only appear during a specific period. Write the alert message that employees will see (for example, "Your lunch from Healthy Eats has arrived at the main reception desk"). Finally, configure the notification schedule by selecting which days of the week the alert should fire and the exact time. Save the alert record.
Place and Track Employee Lunch Orders
Employees navigate to the Lunch module and use the main Dashboard to browse available meals in kanban view. The left panel shows product categories for filtering. Click a food item to open the order form. Select any extras configured for that vendor, add a description or personal note (for example, "no onion please"), and review the price breakdown showing the total, the amount already paid, and the remaining balance after this order. Click Order Now to confirm. To review past orders, navigate to My Lunch > My Order History which shows each order's date, vendor, product, extras, notes, price, and current status. From this view you can Cancel an open order, Reorder a previous meal with one click, or Send Notification to follow up with the vendor. To review account transactions, go to My Lunch > My Account History to see a full list of all debits and credits with dates and descriptions.
Vendor Configuration Fields Reference
When adding or editing a vendor in Configuration > Vendors, the following fields are available. Completing all fields ensures orders are routed correctly and employees have full visibility of vendor options and availability before placing their lunch order.
| Field | Description | Required |
|---|---|---|
| Vendor Name | The display name of the restaurant or food supplier shown in the menu and order history | Yes |
| Address | Physical address of the vendor for reference and map linking | Recommended |
| Vendor contact email used when Order Method is set to Email; orders are sent here automatically | Conditional | |
| Phone | Vendor phone number displayed to the manager when Order Method is set to Phone | Conditional |
| Availability (Days) | Checkboxes for Monday through Sunday; the vendor's products only appear in the menu on selected days | Yes |
| Delivery Method | Choose Delivery (vendor delivers to office) or Pickup (employees collect from vendor location) | Yes |
| Order Method | Phone or Email; determines how the consolidated daily order summary is communicated to the vendor | Yes |
| Extras | Configurable add-on options with label, quantity rules (exact, min, max), and individual pricing per option | Optional |
My Lunch vs Manager Section: Feature Comparison
The Odoo 19 Lunch module is divided into two primary user areas: My Lunch for regular employees who place and track their own orders, and the Manager section for HR staff and office managers who oversee the entire lunch programme. The table below summarises the key features available in each section so you can understand which role needs access to which area of the module.
| Feature | My Lunch (Employee) | Manager Section |
|---|---|---|
| Place a new order | New Order — browse menu, add extras, notes, confirm | Not applicable (managers use employee view) |
| View order history | My Order History — own orders only, with cancel/reorder | Today's Orders — all employees' orders for the current day |
| Account balance | My Account History — own transactions (date, description, amount) | Control Accounts — all employees' balances and transactions |
| Vendor management | Read-only (see vendor name in menu and orders) | Control Vendors — add, edit, monitor all vendor details |
| Cash moves | Not available | Cash Moves — create inflows/outflows for any employee account |
| Send notification | Send Notification to vendor from own order history | Manage reception and delivery alerts for all employees |
| Configuration access | None | Full — Settings, Vendors, Locations, Products, Categories, Alerts |
Understanding the Manager Section in Depth
The Manager section of the Odoo 19 Lunch module gives HR administrators and office managers a comprehensive set of tools to oversee the daily lunch programme. Here is a detailed breakdown of each sub-section and what you can accomplish in it.
Today's Orders
Navigate to Manager > Today's Orders to see a real-time list of every lunch order placed by all employees for the current day. Each row shows the employee name, product ordered, vendor, extras selected, notes, price, delivery location, and order status. This view is what the manager uses to prepare the consolidated order to send to vendors. The manager can mark individual orders as received once the food arrives, which triggers the reception notification to the relevant employees if that setting is enabled. This screen is typically opened at the start of each lunch period and again when deliveries are confirmed.
Control Vendors
Navigate to Manager > Control Vendors to access the vendor management interface. From here you can add new vendors, update existing vendor contact details or availability schedules, temporarily disable a vendor by removing their service days, and monitor overall vendor performance. This view mirrors the Configuration > Vendors screen but is accessible to managers without requiring access to the full Configuration menu, making it suitable for users who manage day-to-day operations without needing system-wide configuration rights.
Control Accounts
Navigate to Manager > Control Accounts to see the financial summary of every employee's lunch account. The view lists each employee, their current balance, and a running total of all transactions. You can click into any employee's record to see the full transaction history with dates, descriptions, and amounts — both positive entries (account top-ups via cash moves) and negative entries (meal cost deductions). This screen is the primary tool for identifying employees who are approaching their overdraft limit and need an account top-up before they can place further orders.
Cash Moves
Navigate to Manager > Cash Moves to view all financial movements recorded in the Lunch module. To add funds to an employee's account, click New and fill in the user (the employee receiving the funds), the date, the amount (positive for a top-up, negative for a deduction or correction), and a description explaining the reason for the transaction. Cash moves are the standard mechanism for topping up lunch accounts when employees pre-pay for their meals, when the company provides a lunch subsidy, or when a manual correction is needed after a processing error. Each cash move is immediately reflected in the employee's balance on the Control Accounts screen.
Important: Setting an Appropriate Lunch Overdraft Limit
The Lunch Overdraft setting in Configuration > Settings defines how far into a negative balance an employee can go before the system blocks further orders. Setting this limit too high can result in employees accumulating large unpaid balances that are difficult to recover at payroll time. Setting it too low — or to zero — will block employees the moment their account reaches zero, disrupting the ordering flow. A recommended starting point is to set the overdraft to the cost of one average meal (for example, 10.00 to 15.00 in your local currency) so employees are never blocked unexpectedly, while ensuring balances remain manageable. Review and adjust this setting quarterly based on your actual meal pricing and payroll deduction schedule.
Configuring Lunch Alerts in Detail
Lunch alerts in Odoo 19 are a powerful feature that automates the communication of meal arrival times and delivery updates to employees. A well-configured alert system eliminates the need for manual Discuss messages or email announcements every day at lunch time. Navigate to Configuration > Alerts to manage all alerts.
When creating a new alert, the following fields define its behaviour:
Alert Name: An internal reference name used in the alerts list. Choose something descriptive such as "Healthy Eats Arrival — Reception" so managers can identify alerts at a glance.
Display Type: Choose between Notification (shows a popup or banner inside the Odoo web interface to the targeted users at the specified time) and Chat Notification (sends a message to a designated channel in the Discuss app). Chat notifications are generally preferred in organisations that use the Discuss app actively because the message persists in the chat history and employees can refer back to it later.
Recipients (Chat Notification only): Select which Discuss channel or user group should receive the chat alert. You might direct alerts to a company-wide "Lunch" channel, or to per-department channels if different teams order from different vendors.
Location: Associate the alert with a specific delivery location (for example, "Main Reception" or "3rd Floor Kitchen"). This is important if your office has multiple delivery points — you can create one alert per location so employees are only notified about the delivery point relevant to them.
Validity Date: Set start and end dates if the alert should only be active during a specific period — for example, during a special catering arrangement for a company event, or during a period when a specific vendor is running a promotional menu.
Alert Message: Write the exact text employees will see. Include the vendor name, location, and any relevant instructions. Example: "Your lunch from The Sandwich Collective has arrived at Main Reception. Please collect your order within the next 20 minutes."
Notification Schedule: Check the days of the week and set the time at which this alert should fire. For a vendor who delivers at 12:30 on weekdays, you would check Monday through Friday and set the time to 12:30. The alert fires automatically at the scheduled time without any manual action required from the manager.
How the Lunch Module Integrates with HR and Accounting
One of the key strengths of the Odoo 19 Lunch module is its native integration with other Odoo applications. When you install the Lunch module in a system that already has the Employees module installed, all active employees automatically appear as participants in the lunch system. Their names are available for selection in the order profile, in cash moves, and in the Control Accounts screen without any manual data entry.
For companies that want to integrate lunch costs with their payroll workflow, the Lunch module's account balance data can be used as the basis for payroll deductions. At the end of each pay period, an administrator reviews the Control Accounts screen, notes the total amount owed by each employee (negative balance), and creates the corresponding payroll entry in the Accounting module to deduct this amount from the employee's net salary. This process is currently manual in Odoo 19 — it requires the administrator to bridge the data between the two modules — but it is straightforward to accomplish because all the balance information is available in a single view.
For companies that provide a lunch subsidy (for example, the company pays 50% of each meal cost), the administrator creates regular positive cash moves for all employees at the beginning of each month to pre-load the company contribution into each account. Employees then top up their own balance as needed, and the system deducts actual meal costs from the combined balance when orders are placed.
Key Insight: HR Benefits of the Odoo 19 Lunch Module
Implementing the Odoo 19 Lunch module delivers measurable HR benefits beyond simple convenience. By centralising all lunch orders in one digital system, administrators eliminate the time spent on manual order collection, individual vendor phone calls, and payment tracking — saving an average of 30 to 60 minutes per working day in organisations with 20 or more staff. The transparent account balance display reduces employee queries about lunch deductions at payroll time. The structured menu with vendor-defined extras reduces order errors and food waste because employees select exactly what they want from pre-approved options rather than making freeform verbal requests. The automated delivery alerts improve workplace satisfaction by keeping employees informed without requiring managers to send individual notifications. Together these improvements reduce administrative workload for HR, give employees flexible and transparent meal selection, improve cost control through account limits, and enhance overall workplace experience.
Troubleshooting Common Lunch Module Issues
Products Not Appearing in the Dashboard Menu
If a product is not showing in the employee's kanban view on the main dashboard, check the following: first, confirm the product's linked vendor is available on today's day of the week — if Monday is not checked in the vendor's availability schedule, none of that vendor's products will appear on Mondays. Second, ensure the product has published: true and is not archived. Third, verify the product's company matches the current user's company. Fourth, check whether the employee's account balance has reached the overdraft limit — when the limit is reached, the system may hide the ordering option or display a warning instead of the menu.
Alerts Not Firing at the Scheduled Time
Lunch alerts depend on Odoo's scheduled action (cron) system to fire at the configured time. If alerts are not firing, navigate to Settings > Technical > Automation > Scheduled Actions and search for any Lunch-related scheduled actions. Ensure they are active and that their next execution date is set correctly. Also verify that the alert's validity date range includes today's date — an expired alert will not fire even if it is still listed in the Configuration menu.
Employee Cannot Place Orders (Balance Blocked)
When an employee's account balance reaches or exceeds the configured overdraft limit, the system blocks further orders. To resolve this, navigate to Manager > Cash Moves, create a new positive cash move for the blocked employee, and save. The balance updates immediately and the employee can place orders again from the next page refresh. Consider adjusting the overdraft limit in Configuration > Settings if employees are being blocked frequently, or set up a regular monthly cash move routine to pre-load all accounts at the start of each month.
Frequently Asked Questions
Can employees order from multiple vendors on the same day in Odoo 19 Lunch?
Yes. Employees can add items from multiple vendors to their daily order as long as each vendor is available on the current day of the week. The system tracks each item separately with its associated vendor, and the manager's Today's Orders view groups items by vendor so that consolidated orders can be sent to each supplier individually. The total cost of all items across all vendors is deducted from the employee's single lunch account balance.
How do I top up an employee's lunch account balance in Odoo 19?
Navigate to Manager > Cash Moves and click New. Select the employee in the User field, enter today's date, enter a positive amount equal to the funds you want to add, and write a brief description such as "Monthly lunch account top-up — June 2026". Save the record. The employee's balance updates immediately and they can place orders right away without needing to log out and back in.
What is the difference between Delivery and Pickup in the Odoo Lunch vendor settings?
Delivery means the vendor brings meals to your office — employees specify a delivery location in their order profile (for example, "Main Reception") and the food is dropped off there. Pickup means employees or a designated person collects the order from the vendor's premises — the vendor's address is shown in the order details as the collection point. The distinction affects how order summaries are formatted when sent to vendors and how delivery location fields behave in the order form.
Can I restrict the Lunch module so only certain employees can see specific vendor menus?
In a standard Odoo 19 installation, the Lunch module shows all available vendor products to all employees with access to the module. Restriction by department or employee group is not a built-in feature on the product level. However, you can use the Company field on products, vendors, and locations to limit visibility in multi-company setups so that each company's employees only see menus relevant to their entity. For more granular restrictions, a custom module would be required to filter products by employee attributes.
How do lunch alerts in Odoo 19 differ from regular Discuss notifications?
Lunch alerts are scheduled, automated, and location-aware notifications configured in advance through Configuration > Alerts. They fire automatically at a pre-set time on selected days of the week without any manual action. Regular Discuss notifications are ad-hoc messages sent manually by a user at any time. Lunch alerts can be scoped to a specific delivery location and validity date range, making them ideal for recurring daily notifications about meal arrivals. Discuss messages are better suited for one-off communications or conversations that need replies.
Need Help Setting Up Odoo 19 Lunch for Your Team?
Our certified Odoo consultants can configure the Lunch module end to end — from vendor setup and menu creation to payroll integration and automated alerts — so your team is ordering lunch smoothly from day one.
About the author
Founder & Odoo Practice Lead, Braincuber Technologies
Founder of Braincuber. Has scoped and shipped 500+ Odoo implementations for US mid-market and global brands. Takes every founder call personally — no SDR layer between buyers and the people building the system.
