OdooWiki OCA HUB

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

12.0
81 modules
13.0
22 modules
14.0
51 modules
15.0
19 modules
16.0
95 modules
17.0
45 modules
18.0
29 modules
19.0
6 modules
20.0
0 modules

OCA repository

Other areas

Modules in this area

  • pos_payment_method_image

    Lets you add a picture to each Point of Sale payment method, and shows that picture on the payment screen in the Point of Sale. If no picture is set, a default icon is shown based on the payment type.

  • pos_payment_restriction

    Adds a Point of Sale setting that makes payment line amounts read-only on the payment screen, so cashiers cannot change the amount entered for a payment.

  • pos_payment_show_order

    Shows the current order details directly on the Point of Sale payment screen, so cashiers can review what the customer is buying without leaving the checkout screen.

  • POS Payment TerminalOdoo 12, 13, 14, 16, 18
    pos_payment_terminal

    Connect Odoo Point of Sale to a generic card or check payment terminal through the IoT proxy, so cashiers can send the amount to the terminal and get the result back automatically.

  • pos_payment_usability

    Adds a large Validate button to the Point of Sale payment screen so cashiers can confirm a payment more easily, especially on touch screens.

  • pos_picking_delayed

    This module lets you delay the creation of stock transfers (pickings) for Point of Sale orders, so the order is saved instantly and the transfer is generated later in the background. It is useful when printing the receipt must happen quickly.

  • pos_picking_load

    Lets cashiers load an existing stock picking (e.g. a prepared online order) directly into the Point of Sale, adjust the products, and pay for the real delivered goods. The original picking is then cancelled and linked to the new PoS order.

  • pos_picking_load_partner_name

    Speeds up loading pickings in the Point of Sale by searching on a stored partner name field instead of the partner record. Users searching a customer name in the PoS picking load screen get faster results.

  • pos_place

    Lets you define sales places (e.g. market stalls, shops) and tag each Point of Sale order and its invoice with the place where the sale happened, then filter and group orders, invoices and reports by place.

  • pos_prevent_double_closing

    Prevents closing a Point of Sale session twice, avoiding duplicate accounting entries and gaps in the sales journal numbering.

  • pos_price_to_weight

    Adds a new barcode type in Point of Sale that reads a price from the barcode and automatically computes the quantity to add, based on the product's unit price. Useful for selling products priced by weight or volume.

  • pos_pricelist_show_discount

    Lets you show, on each Point of Sale order line, the discount percentage compared to a reference pricelist you choose in the POS configuration. Useful to display a standard price and the saving applied, without basing the POS pricelist on that reference.

  • pos_pricelist_technical

    Hides technical pricelists in the Point of Sale so cashiers can only choose real customer pricelists. Technical pricelists used to compute other pricelists are no longer selectable on orders or customer screens.

  • pos_printing_qztray

    Print POS receipts directly to a local thermal printer using QZ Tray software instead of an IoT Box. Enable it per point of sale, pick a QZ Tray printer, and receipts plus cash drawer commands are sent automatically.

  • pos_product_default_code

    Shows the product's internal reference (default code) next to the product image in the Point of Sale product list, so cashiers can identify items by code.

  • PoS Product Display Default CodeOdoo 14, 15, 16, 18, 19
    pos_product_display_default_code

    Adds an option in the Point of Sale settings to show each product's internal reference next to its name. When enabled, the reference appears in the product list, on order lines and on the receipt.

  • Pos Lot ExpiryOdoo 17, 18
    pos_product_expiry

    In the Point of Sale, when a cashier enters a lot number for a product that tracks expiration dates, Odoo checks the lot's expiry date and blocks the sale if the lot is expired or unknown.

  • pos_product_info_location

    Shows, inside the Point of Sale product information popup, the list of internal stock locations where the product is available and the quantity in each one, hiding locations with no stock.

  • pos_product_label

    Adds a "Print Labels" button to the Point of Sale screen so cashiers can print product labels for the products in the current order, choosing quantities and label format.

  • pos_product_mergeable_line

    Adds a 'Mergeable Line' checkbox on products. When unchecked, that product's order lines in the Point of Sale will never be merged with another line, so each movement stays separate.

  • PoS Product multi barcodeOdoo 14, 16, 17, 18
    pos_product_multi_barcode

    Lets cashiers in the Point of Sale find and scan a product using any of its extra barcodes, not just the main one. The extra barcodes are also searchable by name in the PoS product search.

  • pos_product_packaging_container_deposit

    In the Point of Sale, when a product sold in a returnable container is scanned, the matching container deposit product is automatically added to the order and its quantity follows the sold quantity.

  • pos_product_packaging_multi_barcode

    Lets cashiers in the Point of Sale scan any of the several barcodes defined on a product packaging, not just the main one. When a packaging has multiple barcodes, all of them are recognised at the till.

  • pos_product_pricelist_alternative

    In the Point of Sale, product prices can now be automatically taken from alternative price lists when the reference price list rule allows it, always choosing the lowest available price.

  • pos_product_quick_info

    Adds an info button to each product tile in the Point of Sale screen so cashiers can view product details without adding the item to the cart. The feature can be turned on or off per point of sale in the settings.

  • pos_product_sort

    In the Point of Sale screen, products are now listed alphabetically by name instead of by their internal sequence order, making it easier for cashiers to find items when the catalogue is large.

  • POS - Product TemplateOdoo 12, 14, 15, 17
    pos_product_template

    In the Point of Sale screen, products that have several variants are shown once, as a single card with the template name and the number of variants, instead of one card per variant. Tapping that card opens a popup where the cashier picks the attributes and…

  • pos_product_template_configurator

    In the Point of Sale, when a product has many variants, cashiers pick the options (colour, size, etc.) in a pop-up configurator and Odoo finds the matching variant, instead of loading every variant in the product list.

  • pos_quick_logout

    Adds a 'Log Out' button to the Point of Sale screen so a cashier can quickly return to the logged-in Odoo user, plus an automatic logout after a configurable idle time.

  • pos_receipt_gift_card

    Shows gift card codes and their balances on POS receipts when a gift card is used as payment, including on reprinted receipts.

  • pos_receipt_hide_info

    Lets you hide the cashier name, company email and company phone from the Point of Sale receipt. Each option is a checkbox in the POS settings and is enabled by default.

  • POS Receipt Hide PriceOdoo 14, 15, 16, 17
    pos_receipt_hide_price

    Adds a Hide Price button in the Point of Sale so cashiers can print or email a receipt without showing any prices, totals, taxes, discounts or payment amounts.

  • pos_receipt_replace_user_by_trigram

    Lets you print a short 3-letter code (trigram) instead of the cashier's full name on Point of Sale receipts, and adds a Trigram field on users.

  • pos_receipt_replace_user_by_trigram_hr

    Adds a trigram field to employees so the Point of Sale can show a short code instead of the cashier's name on receipts. It is a technical link module that installs automatically.

  • pos_receipt_usability

    Improves the Point of Sale receipt screen by moving the validation button next to the notice area, making it easier for cashiers to see and use.

  • pos_receipt_vat_detail

    Adds a tax breakdown table to the Point of Sale receipt, showing the base amount and the tax amount for each VAT rate, plus totals. Useful when customers need a detailed receipt for expense claims or accounting.

  • pos_receipt_xml_header_footer

    Lets Point of Sale receipts show custom XML/HTML content in the header and footer, so shops can print richer, formatted information on customer tickets.

  • pos_remove_pos_category

    This module replaces the separate Point of Sale category with the standard product category, so you manage POS categories directly in the product category screen and can hide categories from the POS with a checkbox.

  • pos_report_discount

    Adds a Discount % field to the Point of Sale Orders analysis report, so users can group and measure discounts in the POS reporting pivot and search views.

  • pos_report_order_payment

    Adds a new 'Order Payments' analysis screen under Point of Sale reporting, letting users see how much was paid per payment journal, Point of Sale, product, salesperson and period.

  • POS report Session SummaryOdoo 12, 13, 14, 15, 16, 18
    pos_report_session_summary

    Adds a printable PDF Session Summary report for Point of Sale sessions, showing session details, cash statement balances and differences, statement lines and cash payments.

  • pos_require_product_quantity

    Adds a setting to require that every product line in a Point of Sale order has a quantity greater than zero. If any line has quantity 0, a popup blocks payment until it is fixed.

  • pos_reset_search

    In the Point of Sale, clicking a product with the mouse now clears the product search box, so beginners can search, narrow the list and pick a product without retraining.

  • pos_restaurant_receipt_usability

    In the Point of Sale Restaurant, after cashing part of a split bill, the receipt screen now offers a "Continue to Cash In" button that takes the cashier back to the split screen so the remaining guests can pay, instead of only being able to start a new order.

  • pos_restaurant_split_order_usability

    In the Restaurant Point of Sale split screen, this module shows the lines that were already paid on the original order, so staff can see what was already settled before splitting the bill.

  • pos_restaurant_user_restriction

    Lets restricted Point of Sale users open and use the Restaurant features of Odoo, such as floors, tables and printers, without giving them full configuration rights.

  • pos_return_voucher

    When a customer returns items in the Point of Sale, this module issues a discount voucher printed on the receipt with a barcode. The voucher can later be scanned in the POS to pay for a new order, up to its remaining amount and before it expires.

  • pos_reuse_pricelist

    In the Point of Sale, when a new order is started after the previous one is closed, the new order keeps the same pricelist as the order that was just finished instead of falling back to the default pricelist.

  • POS RMAOdoo 17
    pos_rma

    Create return merchandise authorizations (RMAs) directly from the Point of Sale screen, with quantity and reason validation, and track them from the POS order form.

  • pos_sale_order_load

    Lets cashiers pull an existing sales order into an open Point of Sale session, either settling it fully or taking a down payment, and keeps the sale order, stock and invoicing in sync.

  • pos_sale_order_print

    Lets Point of Sale users print configured sales order reports directly from the POS order management screen, choosing which report to use from a popup.

  • pos_sale_picking_keep

    This module stops the Point of Sale from creating or changing delivery orders (pickings) for sales orders. Deliveries stay managed by the Sales app, so stock moves are not duplicated or altered by PoS.

  • pos_sale_pos_event_sale

    This glue module makes event tickets sold through a Sales Order work correctly when that order is loaded into the Point of Sale. It links the event registrations created by the sale to the POS order lines and shows the right event and ticket information in…

  • pos_sale_pos_event_sale_session

    This glue module makes event sessions appear correctly when a Point of Sale order is created from an existing Sales Order that contains event tickets. It ensures the chosen session is carried over and loaded in the POS.

  • pos_sale_product_config_no_variant

    Shows the attribute values chosen in the Point of Sale product configurator on the POS order line, so cashiers and back-office users can see exactly which options were selected for a product.

  • pos_screen_element_custom_size

    Lets you change the size of product tiles, product names and price labels on the Point of Sale screen from the POS settings, without any coding.

  • pos_session_closing_stock_error

    Blocks closing a Point of Sale session when it still has stock transfer errors, unless the option 'Allow closing sessions with stock errors' is enabled in the Point of Sale configuration.

  • POS Session Pay invoiceOdoo 12, 13, 14, 16, 18
    pos_session_pay_invoice

    Lets cashiers pay supplier invoices, collect payments for customer invoices and handle customer refunds directly from an open Point of Sale session, using the session's payment methods.

  • POS Session SequenceOdoo 17, 18, 19
    pos_session_sequence

    Lets you choose which numbering sequence is used for POS session references, per point of sale. When a session is opened, its reference is generated from that sequence.

  • Pos Show ClockOdoo 14, 17
    pos_show_clock

    Shows the current time on the Point of Sale screen so cashiers can see it without leaving Odoo. The clock updates every second and appears in the top navigation bar.

Data imported from GitHub: “confirmed” means branch, module directory and installable manifest checked on the review date. A module that is not confirmed in a version may still exist: it may be in another repository or pending the next review. Active support and OCA certification are not assessed.