OdooWiki OCA HUB

OCA modules for Odoo 17

There are 1,994 OCA community modules confirmed in Odoo 17.0: for each one, the branch, the module directory and the installable manifest have been checked on GitHub. Odoo 16 has 3,166. Open any module to see what it does, its availability in the other versions and its sources.

Confirmed modules per version

Repositories with the most modules in Odoo 17

See also

Modules for Odoo 17

  • PayrollOdoo 13, 14, 15, 16, 17, 18, 19
    payroll

    Manage employee payroll in Odoo: define salary structures and rules, generate payslips individually or in batches, compute worked days and leaves, and print payslip and contribution reports.

  • Payroll AccountingOdoo 13, 14, 15, 16, 17, 18
    payroll_account

    Links payroll to accounting: when a payslip is confirmed, Odoo automatically creates and posts the corresponding journal entry, using the salary journal and accounts defined on contracts and salary rules.

  • Payroll Contract AdvantagesOdoo 14, 16, 17, 18
    payroll_contract_advantages

    Lets payroll users define reusable advantage templates (with code, default value and allowed minimum/maximum) and attach a list of advantages with amounts to each employee contract, so salary rules can use them in payslip calculations.

  • payroll_hr_public_holidays

    Adds public holidays as a worked-days line on payslips, so salary rules can use public holiday days and hours in payroll computation.

  • PDF HelperOdoo 14, 15, 16, 17
    pdf_helper

    This technical module provides reusable helpers to read XML files embedded inside PDFs and to attach XML files to PDFs. It adds no menus or screens; other modules use it to exchange electronic documents.

  • portal_account_personal_data_only

    Restricts portal users so they only see their own invoices and invoice lines, instead of every document of the organizations they follow. It replaces Odoo's default portal accounting access rules with stricter personal ones.

  • portal_invitation_by_website

    When inviting contacts as portal users, you can pick a website for the invitation. The signup email then uses that website's name and domain instead of the company's.

  • Remove Odoo Branding from WebsiteOdoo 12, 13, 14, 15, 16, 17, 18
    portal_odoo_debranding

    Removes Odoo branding from portal pages by hiding the Odoo promotion block and the hidden sidebar element on customer portal screens.

  • portal_sale_confirm_require_login

    Adds an option to force customers to log in before opening a quotation or sale order from a portal link, and blocks signing, accepting or paying until their contact details (phone, VAT, address, country) are complete.

  • Portal Sale Personal Data OnlyOdoo 12, 13, 14, 15, 16, 17, 18, 19
    portal_sale_personal_data_only

    Restricts portal users so they only see their own quotations, sales orders, invoices and invoice lines, instead of all documents of their organization.

  • POS Analytic ConfigOdoo 12, 13, 14, 15, 16, 17, 18, 19
    pos_analytic_by_config

    Lets you set analytic distribution rules that apply only to a specific Point of Sale configuration, so POS orders and their invoices get the right analytic accounts automatically.

  • pos_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 in-out reasonOdoo 12, 14, 15, 16, 17
    pos_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_category_multicompany

    Adds a Company field to Point of Sale categories so each category can belong to a specific company. Users only see categories of their allowed companies, keeping multi-company POS data separated.

  • 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_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_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_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.

  • pos_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_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.

  • POS Lot BarcodeOdoo 15, 16, 17, 18
    pos_lot_barcode

    In the Point of Sale, cashiers can scan a lot or serial number barcode to add the matching product to the order, and scan it again to fill the lot/serial number popup instead of typing it.

  • POS Lot SelectionOdoo 15, 16, 17
    pos_lot_selection

    In the Point of Sale, when a cashier sells a tracked product and must enter a lot or serial number, Odoo now suggests the existing lots that still have stock, so the right number can be picked from a list instead of typed from memory.

  • PoS Order MarginOdoo 12, 13, 14, 16, 17, 18
    pos_margin

    Shows the profit margin and margin rate of each product line and of the whole order directly in the Point of Sale screen, and adds margin information to the POS order list and report.

  • pos_open_cashbox_after_payment

    Automatically opens the cash drawer after every payment in the Point of Sale, even for card or other non-cash payments, so cashiers can store the receipt in the drawer.

  • pos_operating_unit

    Assign operating units to Point of Sale configurations so that users only see the POS configs, sessions, orders, order lines and payments that belong to their allowed operating units.

  • pos_order_attachment

    Lets cashiers attach files (photos, PDFs, etc.) to Point of Sale orders directly from the POS screen, and lets back-office users see and filter those attachments on the order form.

  • pos_order_copy

    Lets Point of Sale users duplicate an existing order directly from the POS screen, creating a new draft order with the same products and details so it can be adjusted and paid.

  • pos_order_line_customer_history

    Adds a History button in the Point of Sale that shows a customer's past purchased products and lets cashiers add those products to the current order with one click.

  • pos_order_line_show_product_info

    Adds an information icon to each Point of Sale order line so cashiers can open the product info popup directly from the cart.

  • pos_order_split_invoice

    Lets a Point of Sale order be split between two customers: the customer pays part of the price at the till and a second partner is invoiced for the remaining share, which Odoo creates automatically as a separate invoice.

  • PoS Order To Sale OrderOdoo 12, 13, 14, 16, 17, 18
    pos_order_to_sale_order

    Lets cashiers turn the current Point of Sale order into a real sale order (draft, confirmed, delivered or invoiced) and then clears the POS screen. Useful for shops that take orders on a simple screen and invoice customers later.

  • pos_partner_address_required

    In the Point of Sale, when a cashier creates or edits a customer, the street, city and zip code fields must be filled in before the customer can be saved.

  • pos_partner_birthdate

    Shows the customer's birthdate in the Point of Sale customer list and lets cashiers search customers by that date.

  • POS Partner FirstnameOdoo 12, 14, 16, 17
    pos_partner_firstname

    In the Point of Sale customer form, you can now edit a customer's first name and last name separately, and mark a customer as a company. The full display name is built automatically from those parts.

  • pos_partner_firstname_required

    In the Point of Sale, when creating or editing a customer who is a person, the first name and last name become mandatory. If either is missing, a popup blocks saving until both are filled in.

  • pos_partner_ref

    Adds the customer reference field to the Point of Sale customer screen, so cashiers can view and edit a customer's reference directly in the POS and search customers by it.

  • pos_partner_sale_warning

    Shows sales warnings for customers directly in the Point of Sale when a cashier selects a partner, and can block the selection if the warning is set to block sales.

  • pos_partner_second_lastname

    Adds a "Second Lastname" field to the customer form in the Point of Sale, so cashiers can capture and edit a customer's second surname directly at the till.

  • pos_partner_vat_required

    In the Point of Sale, the customer form now requires a Tax ID (VAT) before a new or edited customer can be saved, showing an error popup if it is left empty.

  • pos_partner_vat_valid

    When a cashier creates or edits a customer in the Point of Sale, the Tax ID (VAT) is checked against the selected country before the customer is saved. If the number does not match, an error popup appears and the change is not saved.

  • Point Of Sale - Change PaymentsOdoo 12, 14, 15, 16, 17
    pos_payment_change

    Lets a cashier correct the payment lines of a paid Point of Sale order while its session is still open, either by updating the payments directly or by refunding and re-selling the order.

  • pos_payment_description

    Adds a 'Payments' column to the Point of Sale orders list showing how each order was paid (payment method or journal and amount), and lets you search orders by that payment text.

  • PoS Payment Method CashDroOdoo 12, 14, 16, 17, 18
    pos_payment_method_cashdro

    Lets Point of Sale users take payments through a Cashdro cash terminal. You configure the terminal on a payment method, and the cash amount is filled in automatically from the machine.

  • 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 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 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_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 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 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_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_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 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.

  • pos_stock_available_online

    Show live available stock quantities on Point of Sale product tiles, per warehouse, and update them automatically whenever stock changes.

  • pos_user_restrict_stripe_bypass_user

    Lets cashiers who are limited to their assigned points of sale still pay with Stripe in the Point of Sale, without being blocked by the point-of-sale user restriction.

  • Point of Sale - Restrict usersOdoo 12, 13, 14, 15, 17, 18
    pos_user_restriction

    Lets you assign specific users to specific points of sale so those users only see and work with their own POS, sessions, orders and reports.

  • Printer ZPL IIOdoo 12, 13, 14, 15, 16, 17, 18, 19
    printer_zpl2

    Lets you design ZPL II labels (text, barcodes, shapes, images) for any Odoo model and print them on Zebra printers, with a preview via the Labelary service and an import tool for existing ZPL code.

  • Data Privacy and ProtectionOdoo 12, 13, 14, 15, 16, 17, 18
    privacy

    Adds a Privacy area in Odoo where you can record data processing activities, naming who controls and processes personal data, and which partners are affected. Access is controlled by two new user groups.

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.