How to Sell Products in Odoo 19 Point of Sale: Complete Guide
By Braincuber Team
Published on May 11, 2026
Odoo 19 Point of Sale gives retail and hospitality businesses a streamlined, real-time platform to ring up sales, manage inventory, and serve customers from a single interface. This complete tutorial is designed as a step by step guide to selling products in Odoo 19 Point of Sale. It covers every major sales scenario a cashier or store manager will encounter: making products available for POS, organizing them with categories, opening a session, ringing up orders, processing payments, and handling advanced cases like product variants, combo offers, and lot or serial number tracking. Whether you operate a boutique, a cafe, or a multi-location retail chain, this beginner guide will get you comfortable with every POS sales workflow in Odoo 19.
What You'll Learn:
- How to make products available for sale in Odoo 19 POS
- How to assign and restrict product categories for a POS session
- How to open a POS session, add items to the cart, and process checkout
- How to modify quantities, change prices, and apply discounts on the fly
- How to handle payments, generate invoices, and print or email receipts
- How to sell product variants such as size and color combinations
- How to configure and sell combo products with multiple options
- How to sell products tracked by lots or serial numbers at the register
Prerequisites
| Requirement | Details |
|---|---|
| Odoo 19 Instance | Access to a running Odoo 19 database with Point of Sale module installed |
| Point of Sale Module | Point of Sale application must be installed from the Apps menu |
| Products Created | At least a few products set up in the inventory or sales modules |
| POS Configuration | At least one POS shop or session configured with a journal and payment methods |
| Admin Access | User with access to POS Settings and product forms to enable POS options |
Making Products Available in POS
Before a product can be sold at the register, it must be explicitly made available in the Point of Sale. New products created in the Sales or Inventory modules are not automatically visible in the POS catalog. You need to enable the Available in POS option on each product that should appear on the POS screen.
Create or Open a Product
Go to the Sales or Inventory module and open an existing product record, or create a new one. Enter the product name, internal reference, sales price, and ensure the product is set to a storable or consumable type depending on your inventory needs.
Enable Available in POS
On the product form, locate the Available in POS checkbox in the top section. Toggle it on. This tells Odoo that this product should be visible in the POS catalog. Save the product. Without this checkbox, the product will not appear on the POS screen even if it is fully configured in inventory.
Assign a POS Category
In the Point of Sale tab of the product form, select a POS Category. This determines the section or menu under which the product appears in the POS interface. Organizing products into POS categories makes it easier for cashiers to locate items quickly during checkout.
Managing Product Categories for POS
POS categories allow you to group products into logical sections on the POS screen. When you assign a category to a product, it appears in the corresponding tab or grid on the cashier's interface. This is especially useful in restaurants and shops with extensive catalogs where scrolling through all products is inefficient.
Navigate to POS Categories
Go to the Point of Sale module. Open Configuration, then POS Product Categories. The list shows all existing categories defined for the POS interface. Click New to create a new category if needed, or select an existing one to assign to products.
Link the POS Category to a Product
Open the product form for the item you want to categorize. Go to the Point of Sale tab. In the POS Category field, select the appropriate category. Save the product. When you open the POS session, this product will now appear under the chosen category tab on the screen.
Restricting Product Categories in a POS Session
In some cases, you may want a specific POS session to show only a subset of your product catalog. Odoo 19 allows you to restrict the categories visible in each POS session. This is useful when you have different shops or kiosks that only sell certain types of items, such as a coffee shop POS that should not display grocery products.
Open the POS Configuration
Go to Point of Sale and open the Configuration menu. Select the specific POS Shop you want to configure. Scroll down to the Product & POS Categories section.
Enable Restrict Categories
Check the Restrict Categories option. This activates a list or multi-select field where you can choose which POS categories will be visible in this session. Only products belonging to the selected categories will appear on the POS screen for this shop.
Select Allowed Categories
In the Available Categories or POS Categories field, select the categories you want to make available. Save the configuration. When cashiers open this POS session, the product grid will be filtered to show only items from the allowed categories, streamlining the checkout experience.
Opening a POS Session and Ringing Up a Sale
Once products and categories are configured, you can open a POS session and start processing sales. The POS interface in Odoo 19 is designed for speed: products are displayed as tiles, cashiers can search and filter, and payment methods are accessible from the same screen.
Open a New Session
From the Point of Sale dashboard, click the New Session button or click the Open Register option on the shop card. An opening control dialog appears, prompting you to enter the opening cash balance for the session. Enter the amount and confirm to open the register.
Add Products to the Cart
The main POS screen displays available products as tiles, grouped by the POS categories you configured. Click a product tile to add it to the cart. Click it again to increase the quantity. Use the search bar at the top to quickly find products by name, or browse through category tabs to locate items.
Adjust Quantity, Price, and Discounts
To modify a line item, click on it in the order list. Use the Qty button to enter a specific quantity. Use the Price button to override the unit price for that sale. Use the Disc button to apply a percentage discount. These changes are applied immediately on the current order without affecting the product's standard price in the database.
Proceed to Payment
Click the Payment button to move to the payment screen. Select the payment method used by the customer: Cash, Bank, or any other method configured for this POS. Enter the amount tendered. Odoo calculates the change automatically. Click Validate to confirm the payment and close the order.
Print Receipt or Generate Invoice
After validation, the receipt is displayed on the screen. You can print the receipt using a connected printer, email it to the customer, or send it via SMS and WhatsApp if those integrations are enabled. To generate a formal invoice, click the Invoice button before payment, or click the Customer button to link the sale to a customer record and choose invoice generation.
Offline Mode Support
Odoo 19 POS works offline. If your internet connection drops, the session continues to process sales locally. Once the connection is restored, all transactions are synchronized back to the server automatically. Ensure that your POS device is set up with an offline-compatible browser and local data storage is enabled.
Selling Product Variants in POS
Product variants allow you to sell the same base product in multiple configurations, such as different sizes or colors. When you set up variants in the backend, Odoo 19 POS can present a selection popup that lets the cashier choose the specific variant before adding it to the cart.
Set Up Product Attributes and Values
In the backend, go to the product form and add Attributes such as Size and Color. For each attribute, define the possible values (for example, Small, Medium, Large). Odoo automatically creates the variant combinations for you.
Ensure Variants Are Available in POS
Ensure the base product and its variants are all marked as Available in POS. Also assign a POS category if desired. Save the product form.
Select Variants in the POS Session
In the POS session, click the product that has variants. A popup dialog appears prompting you to choose the variant options (for example, color and size). Select the combination and confirm. The chosen variant is added to the cart with the correct price as configured in the backend.
Selling Combo Products in POS
Combo products are bundles that let a customer choose one item from each option group. For example, a lunch combo might consist of one burger, one side, and one drink. Odoo 19 supports combo products natively in the POS, making it easy to bundle and upsell at the register.
Create Combo Choices
Go to Point of Sale and open Products, then Combo Choices. Create a new combo choice and define the products that belong to this choice category. For example, create a combo choice called Burgers and add the burger products to it. Repeat for other choice categories such as Sides and Drinks.
Create the Combo Product
Create a new product and set its type to Combo. In the combo product form, add the combo choices you created in the previous step. Set the Price of the combo product. This is the total selling price that the customer will pay for the bundle. Save the combo product and ensure it is marked as Available in POS.
Sell the Combo in POS
In the POS session, click the combo product. A wizard popup appears presenting each combo choice as a selection group. The cashier or customer selects one product from each group. Once all choices are made, click Add to Order. The combo product is added to the cart at the fixed combo price.
Selling Products with Lot or Serial Numbers
Products that require traceability, such as electronics, pharmaceuticals, or perishable goods, are often tracked by lots or serial numbers in Odoo. When you sell such a product in the POS, you must select the specific lot or serial number at the time of sale to ensure accurate inventory tracking.
Enable Lot or Serial Tracking
Open the product form. In the Inventory tab, set the Tracking field to By Lots or By Unique Serial Number. Ensure the product is also marked as Available in POS. Save the record.
Receive Stock with Lot Numbers
Before you can sell the product, ensure stock has been received with allocated lot or serial numbers. Create a Receipt or use an existing Inventory Adjustment to assign lots or serials to the available quantity. The POS session can only sell stock that is in inventory with valid traceability data.
Select the Lot or Serial Number in POS
In the POS session, click the tracked product. If the product is managed by lots, a popup appears listing the available lot numbers and their quantities. Select the lot. If the product is managed by serial numbers, select the specific serial number from the displayed list. The product is then added to the cart with the traceability data recorded on the backend order.
POS Sales Configuration Example
Below is a typical product setup for a retail item sold through Odoo 19 POS. This configuration ensures the product is visible in the POS, correctly categorized, and ready for immediate sales.
Product Name: Organic Cotton T-Shirt
Product Type: Storable Product
Sales Price: $29.99
Available in POS: Yes
POS Category: Apparel
Tracking: By Lots (Lot: LOT-2026-001)
Taxes: Sales Tax 8%
Barcode: 123456789012
Why Odoo 19 POS Is Built for Modern Retail
Beyond the step by step workflows above, Odoo 19 Point of Sale delivers a range of built-in features that help businesses sell faster, maintain accurate stock records, and provide excellent customer service. Here are the core advantages every retailer should know about:
Offline-First Architecture
Odoo 19 POS continues to work without an internet connection. Sales are cached locally and synchronized back to the server once connectivity is restored, preventing lost revenue during outages.
Real-Time Inventory Sync
Every sale immediately updates the inventory count. If stock runs out, the product can be automatically hidden or flagged in POS, preventing overselling and improving order accuracy.
Flexible Payment Methods
Accept cash, bank cards, and custom payment methods. Split payments across multiple methods within the same transaction, and process refunds directly from the POS interface.
Integrated Customer Management
Quickly assign a sale to a customer record from the POS screen. Track purchase history, loyalty points, and generate invoices directly from the point of sale without switching modules.
Test All Payment Flows Before Going Live
Before using the POS in a production store, run test transactions using each payment method, verify that receipts print correctly, and confirm that inventory is deducted for all product types including variants, combos, and lot-tracked items. Testing in a sandbox session prevents real data errors.
Frequently Asked Questions
Can a product be available in POS but not in the eCommerce shop?
Yes. The Available in POS and Published on Website checkboxes are independent. You can mark a product for POS only, eCommerce only, or both, giving you complete control over where each product is sold.
What happens if a tracked product runs out of one specific lot in POS?
When a particular lot is exhausted, that lot number no longer appears in the POS selection popup. Only lots with available quantities are shown. If all lots are empty, the product itself may be hidden from the POS depending on your inventory availability settings.
Can combo products have different total prices depending on the selection?
The combo product has a fixed total price defined in its form. However, the individual items within the combo can have different internal valuations. Custom development or advanced pricelists would be needed to vary the combo total price dynamically based on the specific items selected.
Is it possible to apply a discount to the entire order rather than a single line?
Yes. In the POS payment screen, you can apply a global discount or a loyalty program discount to the entire order total before finalizing payment. This is particularly useful for promotional events or VIP customer tiers.
Can POS sales be reconciled automatically with accounting journals?
Yes. Odoo 19 POS is fully integrated with the Accounting module. Each payment method in the POS is linked to an accounting journal. When a session is closed and the cash control is validated, Odoo automatically creates the corresponding accounting entries, ensuring your books stay accurate in real time.
Need Help with Odoo 19 POS?
Our Odoo experts can help you configure product catalogs, set up variants and combo bundles, enable lot tracking, and optimize your entire point of sale workflow.
