Odoo Point of Sale: Retail and Restaurant Setup Guide
A point of sale system is the most visible piece of technology in any retail or restaurant business. It's what customers interact with at the moment they decide to spend money — and when it's slow, confusing, or unreliable, that moment becomes a problem. Odoo 19 Enterprise Point of Sale is a modern, browser-based POS system designed for both retail and food service environments. It runs on any device (tablet, laptop, dedicated POS terminal), works offline, and connects directly to your inventory, accounting, and CRM modules — eliminating the data silos that make most retail businesses fly blind.
This guide covers the complete Odoo POS setup for both retail stores and restaurants: hardware configuration, product and pricing setup, payment methods, customer management, loyalty programs, and shift reporting. By the end, you'll have a production-ready POS system with full integration to your Odoo ERP backend.
Key Takeaways
- Configure retail and restaurant POS sessions with hardware-specific settings for each register
- Set up product catalogs with variants, barcodes, and category-based navigation
- Accept cash, card, split payments, and digital wallets with automatic reconciliation
- Manage loyalty points, gift cards, and promotional discounts natively within POS
- Enable floor plans and table management for restaurant service workflows
- Track real-time inventory depletion as each sale is completed
- Generate end-of-shift reports with cash reconciliation and Z-report summaries
- Access full sales analytics by product, category, employee, and time period
POS Configuration and Hardware Setup
Before anything else, configure your POS sessions to match your physical register locations and hardware setup.
Creating a POS configuration: Navigate to Point of Sale > Configuration > Point of Sale. Click "New" to create a POS configuration. Each configuration represents one register or POS station. Name it clearly (e.g., "Register 1 - Front Counter," "Table Service Bar"). Key settings include:
- Journal: The accounting journal for this POS (determines how sales post to your books)
- Customer display: Enable if you have a customer-facing screen
- Print receipts: Configure receipt printer type and connection method
- Connected devices: Barcode scanner, card payment terminal, cash drawer, scale
Hardware connections: Odoo POS connects to hardware via the IoT Box (for serial, USB, and network devices) or directly via browser APIs for compatible devices. Supported hardware includes: Epson receipt printers (USB, network, Bluetooth), Star Micronics printers, Ingenico and Verifone card terminals, generic barcode scanners (HID mode), cash drawers (triggered via receipt printer), and industrial scales.
Screen layout: Configure the POS screen layout to match your operational flow. Retail setups typically show a large product grid with category tabs and a compact order panel. Restaurant setups show fewer, larger buttons for the most common items with subcategory navigation for the full menu. Both layouts are fully customizable without code.
Offline mode: Odoo POS is designed to continue operating without an internet connection. Offline mode stores sessions locally in the browser and syncs automatically when connectivity is restored. Configure offline mode under each POS configuration's advanced settings. During an offline period, card payments may be unavailable (depending on your terminal type), but cash sales continue uninterrupted.
Product Catalog and Pricing Setup
The product catalog is what cashiers and customers interact with. Getting it right means fast, error-free order entry.
Product configuration for POS: Products must be enabled for POS use individually. On the product form, navigate to the "Sales" tab and check "Available in POS." Configure: POS category (for screen navigation), barcode (for scanner input), and whether the product can be sold in fractional quantities (relevant for weight-based items like deli products or bulk foods).
POS categories: Organize products into a POS category hierarchy that reflects how cashiers naturally navigate. A grocery store might have: Produce > Fresh Fruits, Fresh Vegetables; Dairy > Milk, Cheese, Yogurt; Beverages > Soft Drinks, Water, Juice. Categories appear as navigation buttons on the POS screen. The hierarchy depth is configurable — shallow (2 levels) for small catalogs, deeper (3-4 levels) for large assortments.
Product variants in POS: Product variants (size, color, flavor) appear as variant selection buttons when a product with variants is tapped on the POS screen. For a coffee shop, selecting "Espresso" brings up variant buttons: Small, Medium, Large. Selecting a size adds the correct variant to the order. This replaces the modifier codes that legacy POS systems require cashiers to memorize.
Price lists: Configure different price lists for different customer segments (retail vs. wholesale, loyalty tier pricing, employee discounts). The POS applies the customer's associated price list automatically when a customer account is loaded during a transaction. Time-based price lists handle happy hour pricing or weekend premium pricing automatically.
Combo products and bundles: For restaurants and cafes, create combo products that include multiple components at a bundled price. A "Lunch Combo" might include a main, side, and drink at a discount versus individual pricing. When the combo is added to an order, the components are tracked separately for inventory and preparation routing purposes.
Payment Processing
Fast, reliable payment processing is the single most operationally critical POS function. Odoo supports every payment method from cash to cryptocurrency.
Cash payments: Cash is handled by the cash register journal. Configure your opening float (starting cash in the drawer). When a cash payment is accepted, Odoo calculates change automatically. At shift end, the expected cash balance is calculated from opening float plus cash sales minus cash refunds and any cash payouts.
Card payments: Connect an Adyen, Stripe Terminal, or Worldline payment terminal to Odoo POS for integrated card payments. When a card payment is initiated from the POS screen, the terminal activates automatically — no amount needs to be re-entered on the terminal, eliminating a common source of error. The payment confirmation from the terminal automatically advances the transaction in Odoo.
Split payments: Customers frequently pay with multiple methods — part cash, part card; or splitting between two cards. Odoo POS handles split payments natively. Accept the first payment method, enter the amount, then select the second method for the balance. The receipt shows both payment methods and amounts.
Gift cards and vouchers: Create gift cards in Odoo and sell them through POS. Gift card values are stored in Odoo (not on physical cards that can be lost). Customers present a physical card with a barcode or number — scan or enter it, and the card's balance is applied to the transaction. Remaining balance is tracked and available for future transactions.
Customer credit accounts: Enable customer credit accounts for business customers who have a store account. These customers can charge purchases to their account and receive a consolidated invoice monthly. The credit limit is configurable per customer, with automatic blocking when the limit is reached.
Restaurant and Food Service Configuration
Restaurant POS has specific requirements beyond retail: table management, course ordering, kitchen display routing, and tip handling. Odoo POS handles all of these natively.
Floor plans: Navigate to Point of Sale > Configuration > Floor Plans to design your restaurant floor. Create a visual representation of your dining room: add tables, set their shape (round, rectangular), set capacity, and position them on the floor plan canvas. Create separate floor plan sections for different areas: dining room, bar, terrace, private dining room.
Table management: In restaurant mode, the POS opens to the floor plan view. Staff tap a table to open its order. Multiple servers can have open orders on different tables simultaneously. The table color indicates status: grey (empty), green (occupied, order open), orange (order sent to kitchen), blue (bill requested).
Course management: For fine dining, configure course-based ordering. Items added to a table's order are assigned to a course (starter, main, dessert). When the server is ready to send a course to the kitchen, they send only that course — items from later courses remain held in the POS until their course is called.
Kitchen Display System (KDS): Connect a kitchen display screen to the Odoo IoT Box. When orders are confirmed in POS, they appear on the KDS automatically — no printed tickets required. Kitchen staff mark items as prepared on the KDS screen, and the server's POS session updates to show which items are ready for service.
Tips: Enable tip handling in restaurant POS configuration. Tips can be collected as a fixed amount added by the customer, a percentage selected from preset options (15%, 18%, 20%), or a custom amount. Tips are tracked separately from sales for payroll distribution to service staff.
Split bills: When a table wants to split their bill, Odoo POS provides a "Split" function. Items are assigned to individual customer seats, and separate receipts (and separate card transactions) are processed for each portion.
Loyalty Programs and Promotions
Customer retention through loyalty programs has proven ROI across retail and food service. Odoo POS includes native loyalty program management without requiring third-party add-ons.
Loyalty programs: Navigate to Point of Sale > Products > Gift Cards & Loyalty > Loyalty Programs. Create a loyalty program specifying: how points are earned (dollars spent, products purchased, visits), point conversion rate (e.g., 1 point per dollar spent), and redemption options (points required per dollar discount, specific free products available for redemption, or gift certificates).
Automatic point collection: When a customer's loyalty card or account is loaded in POS, points are automatically calculated and added at transaction completion. The receipt shows points earned and the updated balance — reinforcing the loyalty program value at every interaction.
Promotional discount programs: Create promotional programs for time-limited discounts. Example: "Buy 2, Get 1 Free on all coffee drinks this week." Configure the trigger (minimum quantity of qualifying products) and the reward (discount percentage, fixed amount, or free product). The POS evaluates qualifying orders and applies the discount automatically — no cashier code entry required.
Coupon redemption: Customers can use promotional coupons issued via email marketing campaigns in the POS. They present a coupon code (printed barcode or SMS/email code), which is scanned or entered. Odoo validates the coupon, verifies it hasn't been used, and applies the discount automatically.
Inventory Integration
Real-time inventory depletion as sales are made is one of the most valuable aspects of having your POS integrated with Odoo ERP.
Automatic stock depletion: Every sale in Odoo POS generates an inventory move that reduces stock on hand. This happens immediately when the transaction is completed — no batch reconciliation at end of day. Your inventory counts in Odoo reflect every POS sale within seconds.
Low stock alerts: Configure minimum stock alerts for your POS locations. When a product's stock at the POS location drops below the minimum, a notification goes to your back-office team to initiate replenishment. This prevents the common scenario of running out of a product without warning.
POS-specific stock location: Create a dedicated stock location for each POS store or register area. This allows accurate location-level inventory tracking. When a POS sale depletes a product, stock reduces specifically at that location, not from the main warehouse — until a replenishment transfer from the warehouse to the POS location is completed.
Stock return processing: When a customer returns a product, the POS return function reverses the sale and creates a stock return to the appropriate location. The product returns to inventory (if in sellable condition) or goes to a returns/inspection location.
End-of-Shift Reporting and Reconciliation
POS shift management provides daily financial reconciliation and sales performance data.
Closing a session: At shift end, the cashier initiates session close. Odoo presents the expected cash balance (opening float + cash sales - cash refunds - cash payouts). The cashier counts the actual cash in the drawer and enters the amount. Any difference (over or short) is flagged for investigation.
Z-Report (Session Summary): The POS session report (Z-Report equivalent) summarizes: total sales by payment method, number of transactions, average transaction value, discounts given, returns processed, taxes collected, and net revenue. This report prints automatically at session close and is saved in Odoo for historical review.
Sales analytics: Navigate to Point of Sale > Reporting to access comprehensive sales analytics. Standard reports include: sales by product, sales by category, sales by cashier, sales by hour of day, and comparison across periods (today vs. last week, this month vs. last month). These reports help identify your best-selling products, peak business hours, and top-performing employees.
Frequently Asked Questions
Can Odoo POS work on an iPad or Android tablet?
Yes. Odoo POS runs in any modern web browser, including Safari on iPad and Chrome on Android tablets. The interface is responsive and touch-optimized. Many businesses use iPads as their primary POS interface. For hardware connections (receipt printers, card terminals), use the Odoo IoT Box to bridge between the tablet and peripheral devices via Wi-Fi.
How does Odoo POS handle sales tax calculation across multiple tax jurisdictions?
Odoo supports multiple tax rates applied per product and per customer location. Configure tax rules for your jurisdiction: state sales tax, county tax, and city tax as separate components. Products are tagged with applicable tax rates. If you sell across multiple locations with different tax rates, configure separate POS locations with appropriate fiscal positions that map to the correct tax rates for each location.
Can we manage multiple store locations from a single Odoo instance?
Yes. Create a separate POS configuration for each store location. Each location has its own floor plan, product availability (if stores carry different products), price list (if you have location-specific pricing), and payment terminals. Reporting can be viewed per location or consolidated across all locations. Inventory is tracked per location, and inter-store transfers are managed through the Inventory module.
What happens if the internet goes down during POS operation?
Odoo POS continues operating in offline mode. The session data is stored in the browser's local storage. Transactions complete normally for cash and any payment terminals with offline authorization capability. When connectivity is restored, all offline transactions sync to the Odoo server automatically. The only limitation is that new loyalty point balances and inventory levels won't update until sync — a minor inconvenience versus the risk of downtime.
How does Odoo POS handle age verification for alcohol or tobacco sales?
Configure age restriction flags on applicable products. When an age-restricted product is added to an order, the POS displays an age verification prompt requiring the cashier to confirm the customer's age before the item is added. This prompt creates a logged confirmation for compliance purposes. The prompt can be customized to require entering the customer's birth year, which Odoo validates mathematically.
Can restaurant orders be sent to different kitchen printers based on food type?
Yes. Configure printer routing rules in the restaurant POS settings. Hot food items route to the kitchen's hot prep printer; cold items route to the cold prep station; beverages route to the bar printer. Routing is based on POS category — assign categories to the appropriate printer. When an order is sent, Odoo automatically routes each line to the correct printer without any cashier action.
How does Odoo POS integrate with eCommerce for unified inventory management?
Odoo eCommerce (Website module) and POS share the same product catalog and inventory. A sale in POS immediately reduces the available quantity in the online store. If a product sells out in-store, it goes out of stock online instantly. Promotional prices configured in Odoo apply consistently across both channels. This unified inventory prevents overselling and provides customers with accurate availability information regardless of channel.
Next Steps
Odoo Point of Sale is a complete, enterprise-grade POS system that eliminates the data silos between your registers and your back-office operations. When your POS is connected to inventory, accounting, and CRM, you gain real-time visibility that most retail and restaurant businesses only see at month-end.
ECOSIRE implements Odoo POS for retail chains, restaurants, cafes, service businesses, and multi-location retail operations. Our implementation includes hardware selection guidance, configuration for your specific workflow, staff training, and go-live support to ensure your first day is smooth.
Visit our Odoo services page to learn about POS implementation packages, or browse our marketplace modules for POS extensions including advanced restaurant management features, loyalty program enhancements, and multi-currency customer account management for Odoo 19 Enterprise.
Written by
ECOSIRE Research and Development Team
Building enterprise-grade digital products at ECOSIRE. Sharing insights on Odoo integrations, e-commerce automation, and AI-powered business solutions.
Related Articles
Odoo Accounting vs QuickBooks: Detailed Comparison 2026
In-depth 2026 comparison of Odoo Accounting vs QuickBooks covering features, pricing, integrations, scalability, and which platform fits your business needs.
Restaurant and Hospitality Accounting Guide
Comprehensive restaurant and hospitality accounting guide covering food cost, prime cost, tip accounting, daily sales reconciliation, and hospitality-specific KPIs.
Augmented Reality in eCommerce and Retail: Try Before You Buy
How augmented reality is transforming eCommerce and retail—virtual try-on, 3D product visualization, AR store experiences, and the technology stack for AR commerce.