OCA point of sale modules for Odoo
Improvements to the Odoo point of sale: payments, receipts, customers, prices and in-store work. The catalogue has 199 modules in this area, 6 of them confirmed in Odoo 19.0 (reviewed on 2026-11-03).
Confirmed modules per version
OCA repository
Other areas
- Accounting and finance
- Sales
- CRM and marketing
- Purchases
- Inventory and logistics
- Manufacturing and maintenance
- Products and catalogue
- Human resources
- Projects and timesheets
- Field service and customer support
- Website and e-commerce
- Country localisations
- Contracts and documents
- Integrations, EDI and connectors
- Industries and verticals
- Technical tools and administration
Modules in this area
- pos_accented_search
Makes product search in the Point of Sale screen ignore accents, so typing "cafe" also finds "café" and vice versa.
- Point of Sale - Extra Access RightOdoo 12, 14, 16pos_access_right
Adds extra security groups that control what a cashier is allowed to do inside the Point of Sale screen, such as giving discounts, changing prices, selling negative quantities, deleting orders or lines, opening several orders and taking payments.
- pos_account_bank_statement_line
Adds a Point of Sale menu entry that lists all bank statement lines linked to a Point of Sale session, with a dedicated list view and search filters.
- pos_auto_invoice
Adds a setting in Point of Sale configuration to automatically mark new POS orders as 'to invoice' by default. When enabled, every new order in the POS will have the invoice option turned on.
- POS Backend CommunicationOdoo 14pos_backend_communication
Lets the Point of Sale open Odoo backend pages in a separate window and receive messages back from that window, so POS screens can react to what happens in the backend.
- pos_bank_statement_line_no_change
Prevents users from changing the amount or customer, or deleting bank statement lines that belong to Point of Sale orders already paid, done or invoiced.
- POS Barcode BlockOdoo 18pos_barcode_block
When a barcode is scanned in the Point of Sale that does not match any product, the POS shows an "Unknown Barcode" alert and temporarily blocks further scanning until the cashier closes the message.
- pos_barcode_rule_priced_with_change_rate
Adds a new barcode rule type in Point of Sale that reads a price from a scanned barcode and converts it using a change rate configured in the POS settings.
- POS - Blind Session ClosingOdoo 18pos_blind_session_closing
Hides the expected cash amounts and payment details in the Point of Sale closing popup, so cashiers can count the drawer blindly. Only users in the new "Can see POS closing amounts" group still see those figures.
- POS Bypass Global DiscountOdoo 16pos_bypass_global_discount
This module makes the Point of Sale respect the 'bypass global discount' setting on products, so that products marked to bypass discounts are excluded when a global discount is applied to the whole order.
- POS Cache - Restrict usersOdoo 12pos_cache_user_restriction
Gives users who are limited to assigned points of sale full access to the POS cache records, so they can use the POS cache feature without permission errors.
- Cash Control ExtensionOdoo 17, 18pos_cash_control_extension
Extends the Point of Sale cash control so the opening cash amount is recorded and posted as a message, and the closing screen shows the expected cash based on the opening balance plus cash movements.
- pos_cash_control_multiple_config
Fixes the opening cash balance shown when several Point of Sale configurations with cash control are used, so each new session starts from the correct previous balance of its own point of sale.
- pos_cash_control_override
Allows Point of Sale users without accounting rights to perform cash in and cash out operations in their sessions, and always shows the cash move button in the POS interface.
- POS cash in-out reasonOdoo 12, 14, 15, 16, 17pos_cash_move_reason
Lets you record cash put into or taken out of a Point of Sale session with a predefined reason, and automatically posts the matching accounting entry to the right income or expense account.
- pos_cash_move_reason_multiple_control
When a cashier records cash in or out in the Point of Sale, this module shows the current cash difference and what the difference will become after the move, so the cashier can decide before confirming.
- Point of Sale - CashbackOdoo 16pos_cashback
Warns the cashier on the Point of Sale payment screen when the current payment will produce a cashback (change given in cash after a non-cash payment).
- pos_cashback_warning
Warns the cashier in the Point of Sale payment screen when confirming an order would create a cashback, i.e. when the customer pays more by non-cash means than the sale amount and receives the difference in cash.
- PoS Category - Complete NameOdoo 16pos_category_complete_name
Adds a 'Complete Name' field to Point of Sale categories, showing the full category path (e.g., 'Parent / Child'). This makes it easier to search and identify categories in Odoo.
- pos_category_vertical_display
Shows the Point of Sale product categories in a vertical, scrollable strip instead of the default horizontal layout, making it easier to browse categories on the POS screen.
- pos_check_session_state
Prevents cashiers from creating Point of Sale orders on a session that is no longer open. It checks the session state every few seconds and shows a blocking pop-up if the session was closed or is in closing control.
- Point of sale logoOdoo 14, 16, 18, 19pos_config_logo
Lets you set a different logo for each point of sale, so receipts and the POS screen can show a store-specific logo instead of the company logo.
- POS Config PhoneOdoo 17pos_config_phone
Lets you set a specific phone number for each Point of Sale, which is printed on the receipt instead of the company's default phone number.
- POS Container DepositOdoo 16pos_container_deposit
Lets you charge a refundable container deposit in the Point of Sale: when a product with a deposit is sold, its deposit product is added automatically and its quantity follows the sold quantity.
- POS Customer Age WarningOdoo 17pos_customer_age_warning
In the Point of Sale, when a customer is selected, their age is calculated from their birth date and compared to an age limit set in the POS settings. If the customer is at or below that age, their name is shown in red and an alert pops up.
- pos_customer_comment
Adds a 'Cashier Comment' field on customers that cashiers can read and edit directly in the Point of Sale screen, and shows a small comment icon next to customers that have one.
- Point of Sale - LED Customer DisplayOdoo 12, 14pos_customer_display
Lets you show order information on an LED customer display connected to your Point of Sale, and configure the welcome and closed messages shown on it.
- POS Customer Display MonitorOdoo 17pos_customer_display_monitor
Lets Point of Sale users choose which monitor shows the customer display, and remembers that choice per Point of Sale so the display reopens on the same screen.
- pos_customer_history_color
In the Point of Sale, products a selected customer has already bought in the past are shown in purple, both in the product list and on the order lines, so cashiers can spot repeat purchases at a glance.
- Point of Sale Require CustomerOdoo 12, 13, 14, 16pos_customer_required
Lets you force Point of Sale cashiers to select a customer before starting an order or before paying, configurable per point of sale. Anonymous orders are blocked with an error message.
- pos_customer_required_fields
Lets you choose which customer fields must be filled in before a Point of Sale order can be validated. If a customer is missing required information, the cashier is warned and the order is blocked until the data is completed.
- Pos Vat TreeOdoo 14, 16, 18pos_customer_tree_view_vat
Adds a Tax ID column to the customer list in the Point of Sale screen, showing each customer's VAT number next to their name.
- pos_daily_sales_reports_category_only
Adds a setting to Point of Sale that hides individual product lines in the daily sales report, showing only product category totals. Enabled by default per point of sale.
- POS Default empty imageOdoo 12pos_default_empty_image
This module speeds up the Point of Sale screen when many products have no image, by skipping useless image requests and showing a text-only product tile instead. It also adds a setting to control the font size of product names shown without an image.
- Point Of Sale Default PartnerOdoo 12, 13, 14, 15, 16pos_default_partner
Lets you set a default customer for each Point of Sale, so new POS orders automatically get that customer when no customer is chosen.
- pos_disable_change_cashier
Adds a setting on the Point of Sale configuration to control whether cashiers can switch users from the POS screen. When disabled, clicking the username no longer opens the cashier selection pop-up.
- pos_disable_pricelist_selection
Control which pricelists cashiers can choose in the Point of Sale. You can hide the pricelist button completely or limit the button to a specific list of selectable pricelists.
- pos_discount_all
Shows the total discount amount on the Point of Sale order summary and printed receipt, calculated as the difference between the default price list total and the actual sale total.
- POS Display Order NumberOdoo 18pos_display_order_number
Shows the order reference number in the Point of Sale order summary, next to the total amount. Cashiers can see which order they are working on directly on the product screen.
- POS Display Total QuantityOdoo 18pos_display_total_quantity
Shows the total number of items in the Point of Sale order summary, so cashiers can check that every article has been scanned before payment.
- POS Divider Order SummaryOdoo 18pos_divide_order_summary
Adds an empty extra area inside the Point of Sale order summary screen, so other modules can display additional order information there.
- POS Early Receipt PrintingOdoo 17, 18pos_early_receipt_printing
Adds an "Early Receipt Printing" option to Point of Sale settings so shops (not restaurants) can print a bill before payment. When enabled, a Bill button appears in the POS screen.
- POS Edit Order LineOdoo 14, 16, 18, 19pos_edit_order_line
Adds an "Edit Order Lines" button to the Point of Sale screen that opens a popup where cashiers can directly type the quantity, unit price and discount for every line of the current order.
- Point of Sale - Empty HomeOdoo 12, 13, 14pos_empty_home
Adds an option to the Point of Sale settings that hides the product list until the cashier searches or picks a category, so the screen starts empty instead of showing the first products.
- POS ESC/Pos printer StatusOdoo 14, 16pos_escpos_status
Restores printer status detection for POS terminals using the ESC/POS driver, so the Point of Sale screen shows the correct connected/disconnected state of the receipt printer.
- Point of Sale EventsOdoo 13, 15pos_event_sale
Sell event tickets directly from the Point of Sale. Cashiers can pick an event, choose a ticket, and the system creates the attendee registration automatically when the order is paid.
- pos_event_sale_registration_qr_code
Automatically adds a QR code to event registration receipts printed from the Point of Sale, so customers get a scannable code for their registration instead of only a barcode.
- Point of Sale Event SessionsOdoo 15pos_event_sale_session
Sell event sessions directly from the Point of Sale. Cashiers pick a specific session date and time, see its remaining seats, and the session is stored on the order line, the receipt and the POS reporting.
- Point of Sale Financial RiskOdoo 16pos_financial_risk
In the Point of Sale, when a customer has reached their credit limit, payment methods marked as credit-limit restricted are blocked and shown as unavailable, so cashiers can only use allowed payment methods.
- Pos Fix Search LimitOdoo 12, 13pos_fix_search_limit
This module increases the number of products the Point of Sale can find when searching, while still showing only the first 100 results on screen. It helps cashiers find products that would otherwise be hidden by the default search limit.
- Point of Sale Fixed DiscountsOdoo 12, 13, 14, 15pos_fixed_discount
Adds a "Discount (Amount)" button to the Point of Sale screen so cashiers can apply a fixed money discount to an order instead of a percentage.
- Point of Sale - Full RefundOdoo 18pos_full_refund
Adds a 'Do Full Refund' button to the Point of Sale ticket screen so cashiers can refund every remaining item of a selected order in one click.
- Point of Sale - Global Discount in LineOdoo 14, 16pos_global_discount_in_line
Adds a setting in Point of Sale to apply the global discount directly on each order line instead of adding a discount product. When enabled, the discount percentage is written on every line.
- Point of Sale - Hide Banknote ButtonsOdoo 12, 14, 16pos_hide_banknote_button
Removes the quick cash banknote buttons (+10, +20, +50) from the Point of Sale payment screen, so cashiers only see the remaining payment options.
- PoS Hide Cost and MarginOdoo 15, 17pos_hide_cost_price_and_margin
This module adds settings to the Point of Sale that let you hide product cost and margin information from everyone, including managers, in the product info popup.
- Point of Sale - Hide Empty CategoriesOdoo 12, 16pos_hide_empty_category
In the Point of Sale screen, product categories that contain no products are no longer shown, so cashiers only see categories they can actually sell from.
- POS - Hide Partner InfoOdoo 12, 16pos_hide_partner_info
Hides customer contact details (address, email, phone, mobile) in the Point of Sale customer list and customer edit form, so cashiers only see the customer's name.
- pos_hr_access_right
This module lets each cashier in a Point of Sale session have their own access rights for actions like payments, discounts, price changes, negative quantities, multiple orders and deleting orders, instead of using the logged-in user's rights.
- pos_invoice_required
Lets you decide, per Point of Sale, whether an invoice is forbidden, optional or mandatory for each order. Cashiers get an error message in the POS screen if they try to close an order that does not match the rule.
- POS Invoice Send by MailOdoo 12pos_invoice_send_mail
Adds a "Send Invoice by Email" button to the Point of Sale payment screen, letting cashiers email the customer invoice right after the sale using a template chosen in the POS configuration.