OdooWiki OCA HUB

Migrating from Odoo 16 to Odoo 17: which OCA modules are available

Of the 3,166 OCA modules confirmed in Odoo 16.0, 1,542 (49 %) are also confirmed in Odoo 17.0. The other 1,624 do not have a confirmed 17.0 version in the catalogue yet: if you use any of them, check its page before planning the migration. In addition, 452 modules are in Odoo 17.0 without being in 16.0.

3,166
in Odoo 16
1,542
also in Odoo 17
1,624
pending in Odoo 17
49 %
already migrated

See also

Odoo 16 modules not yet confirmed in Odoo 17

  • Project Stock Product SetOdoo 13, 14, 15, 16
    project_stock_product_set

    Add product sets directly to project tasks that use stock moves. A new "Add set" button on the task form opens a wizard to pick a set and quantity, then creates the related stock moves.

  • project_tag_multicompany

    Lets you assign a company to project tags, so each tag is visible only in that company or shared with all companies when left empty.

  • Project Tag SecurityOdoo 16, 18, 19
    project_tag_security

    Restrict each project tag to a chosen list of projects, so tags only appear where they are meant to be used. Tags left without allowed projects stay available everywhere.

  • project_task_code_portal

    This module lets customers open and search project tasks in the portal using the task's custom code instead of its internal number, and shows a copyable portal link on the task form.

  • project_task_creation_description_notification

    When a project task is created, the notification message now includes the task description, so recipients see the context directly in the notification without opening the task.

  • project_task_description_portal

    Lets you write a separate description for a task that only portal (customer) users see, instead of the internal task description.

  • project_task_link

    Adds a smart button on the project form showing the number of tasks and opening the list of tasks linked to that project.

  • project_task_parent_completion_blocking

    Blocks closing a project task while it still has open subtasks, so parents can only be marked done once all their children are finished.

  • project_task_parent_due_auto

    Automatically updates a parent task's deadline to match the earliest deadline among its child tasks whenever a child's deadline is created or changed.

  • project_task_personal_stage_auto_fold

    When a project task is moved to a closed (folded) stage, the personal stage of the user who made the change is automatically moved to a matching folded personal stage.

  • project_task_project_required

    This module makes the Project field mandatory on tasks, so users cannot save a task without choosing a project. The requirement can be turned on or off per company in Project settings.

  • project_task_pull_request_state

    Adds a Pull Request State field to tasks, showing whether the linked pull request is Draft, Open, Merged or Closed. A default state can be set globally in Project settings or per project.

  • Project Task ReportOdoo 12, 13, 14, 16, 18
    project_task_report

    Adds two printable PDF reports for project tasks: a simple task sheet and a fuller version that also includes the task's chatter history. Both are available from the Print menu on tasks.

  • project_task_stage_allow_timesheet

    Adds an "Allow timesheets" option on project task stages so you can block logging time on tasks that are in stages where timesheets should not be recorded.

  • project_task_stage_change_restriction

    Lets you control who is allowed to move a project task into a specific stage. On each task stage you can require that the user is assigned to the task, is the project manager, or belongs to selected groups.

  • project_update_portal

    Portal users who follow a project or one of its updates can now read those project updates from the customer portal, with a dedicated list page and detail page.

  • project_update_visible

    Makes the project field visible on the Project Update form, so users can see which project an update belongs to directly on the same screen.

  • proxy_trusted_hops

    Lets administrators tell Odoo how many reverse proxies sit in front of it, so the real client IP address is used instead of an internal proxy address when several proxies are chained.

  • Purchase - Analytic Account GlobalOdoo 12, 13, 14, 15, 16, 18
    purchase_analytic_global

    Lets you set one analytic distribution on a purchase order and automatically copy it to every order line, so you don't have to fill it in line by line.

  • purchase_backorder

    Shows, on purchase orders and in a dedicated list, how much has been received but not yet invoiced (UIGR) and how much is still pending delivery (backorder), with quantities, values and last receipt/bill dates.

  • purchase_company_invoice_address

    Lets you choose, on each purchase order or request for quotation, which of your own company's invoice addresses the vendor should bill, and prints that address on the order and quotation PDFs.

  • purchase_date_planned_manual

    Keeps the scheduled date you enter on purchase order lines instead of letting Odoo recalculate it, and warns you when a line is expected to arrive after that date.

  • purchase_deposit_company_amount

    Lets you enter, on a foreign-currency deposit vendor bill, the company-currency amount you actually paid, so the deposit is booked at the real paid value and the final bill clears the deposit account exactly.

  • purchase_discount

    Add a discount percentage to each purchase order line and to supplier price lists, so you can negotiate prices with suppliers without changing the unit price. The discount also appears on the purchase order PDF and in purchase analysis.

  • purchase_force_invoiced_quantity

    Adds a manual "Force Invoiced Qty" column on purchase order lines that is deducted from the quantity to invoice, so buyers can reduce or close the remaining billable quantity without changing received quantities.

  • purchase_fully_invoiced

    Adds a "Posted Billing Status" field on purchase orders that only shows "Fully Billed" when all related bills are actually posted, plus a search filter to find those orders.

  • purchase_fully_received

    Adds a new "Is Fully Shipped" filter and a hidden indicator on purchase orders, so you can quickly find orders where every line has been fully received.

  • purchase_invoice_new_picking_line

    When you create a vendor bill from a purchase order, this module also adds invoice lines for products that were received in the order's pickings but were not part of the order itself, so you can pay for misdelivered items.

  • purchase_invoice_partial_status

    Adds a new 'Partially Invoiced' status to purchase orders, so you can see at a glance when an order has been partly billed but not fully invoiced.

  • purchase_invoicing_no_zero_line

    Adds an option on purchase journals to skip invoice lines with zero quantity when a vendor bill is created from a purchase order.

  • purchase_landed_cost

    Lets you record extra purchase costs (freight, customs, insurance) on a separate 'Costs distributions' screen and spread them over the received goods, updating product costs.

  • Purchase Line Procurement GroupOdoo 12, 13, 14, 16, 18
    purchase_line_procurement_group

    Keeps purchase order lines and their stock moves separate when they come from different procurement groups, so demands from different sources are not merged into one line.

  • Purchase Minimum AmountOdoo 12, 13, 14, 16
    purchase_minimum_amount

    Set a minimum purchase amount per vendor and let Odoo automatically block purchase orders that fall below it, with a clear approval block reason.

  • purchase_mto_owner

    When Odoo automatically creates a request for quotation from a make-to-order stock rule, this module copies the owner (the customer who owns the goods) onto that purchase order, so the purchase is linked to the right owner.

  • purchase_only_by_packaging

    Lets you restrict a product so it can only be bought in whole packagings on purchase orders, and optionally force the ordered quantity up to the next full packaging.

  • Purchase Order Approval BlockOdoo 12, 13, 14, 15, 16, 18
    purchase_order_approval_block

    Lets you flag a request for quotation with an approval block reason so it cannot be approved until a manager releases the block. Block reasons are managed in a new configuration menu.

  • purchase_order_downpayment

    Create supplier down payments directly from a purchase order. Choose a regular payment, a percentage, or a fixed amount, and the payment is created in draft for review.

  • purchase_order_duplicate_check

    Warns buyers when confirming a purchase order or RFQ that already has pending orders for the same products, showing a confirmation wizard before proceeding. It also shows a 'Pending Orders' field on purchase order lines and can create an activity for the…

  • purchase_order_hide_receipt_status

    Hides the receipt status field on purchase order forms and lists, so users no longer see this column or indicator when working with purchase orders.

  • purchase_order_line_receipt_status

    Adds a Receipt Status column to purchase order lines showing whether each line is Not Received, Partially Received or Fully Received, updated automatically as goods are received.

  • purchase_order_no_zero_price

    Prevents purchase order lines from having a zero unit price once the order is confirmed, helping ensure correct stock valuation. If a line has no price, Odoo shows an error and blocks the change.

  • Purchase Order OwnerOdoo 16, 18, 19
    purchase_order_owner

    Adds an "Assign Owner" field on purchase orders and quotations. When the order is confirmed, that owner is automatically copied onto the incoming stock receipt, so the goods are recorded as belonging to that contact.

  • purchase_order_price_recalculation

    Adds an 'Update lines info' button on draft and sent purchase orders that recalculates the prices of all order lines based on the currently selected vendor.

  • purchase_order_product_attachment_mgmt

    Adds an Attachments button on the purchase order form that opens a list of all files attached to the products and product templates contained in the order lines.

  • purchase_order_purchase_manager

    Automatically fills the buyer (Purchase Representative) on a purchase order with the purchasing manager defined on the supplier, as long as the order is still a draft or sent.

  • purchase_order_report_hide_tax

    Automatically hides the Taxes column on the Purchase Order PDF sent to vendors when every line uses the same taxes, keeping the document cleaner. You can force the column to always appear per tax group.

  • purchase_order_revision

    Lets buyers create a new revision of a cancelled or sent request for quotation/purchase order, keeping the same base reference with a revision suffix and archiving the old versions.

  • purchase_order_supplier_return

    When you return products to a supplier on a purchase order that has a negative quantity, this module automatically marks the stock move as a refund so the received quantity is updated correctly.

  • Purchase Order UBLOdoo 12, 13, 14, 16, 18, 19
    purchase_order_ubl

    When you print a purchase order or request for quotation (RFQ) PDF, this module automatically embeds a UBL XML file inside the PDF. The XML follows the UBL 2.1/2.0 standard so suppliers can import it into their own systems.

  • purchase_packaging_default

    Adds a company setting that automatically fills in a default packaging on purchase order lines, using the first packaging marked for purchase in the product configuration, and rounds the packaging quantity up to whole units.

  • purchase_packaging_level_qty

    Shows on each purchase order how many transport packages (for example pallets) are needed, based on a packaging level chosen in the Purchase settings.

  • purchase_planned_date_container_deposit

    Keeps the planned date you set on a purchase order when container deposit lines are created for products with packaging deposits. It is a glue module that combines two other purchase modules.

  • purchase_product_pack

    Buy product packs on purchase orders: when you add a pack product, Odoo automatically creates one purchase line per component, with prices taken from the vendor or the product cost.

  • purchase_product_packaging_container_deposit

    Automatically adds container deposit lines to purchase orders based on the packaging of the products ordered, and updates those deposit quantities when the related stock moves are completed.

  • Quick Purchase orderOdoo 12, 14, 15, 16
    purchase_quick

    Add many products to a purchase order at once from a supplier-specific product list, with quantities and prices filled in automatically.

  • purchase_quick_discount

    Adds a Discount column to the quick purchase product list, showing the supplier discount that will be applied for the selected vendor and quantity.

  • purchase_quick_triple_discount

    Adds three separate supplier discount columns (Disc.1%, Disc.2%, Disc.3%) to the product list used for quick purchase entry, so buyers can see each discount level before adding products to a request for quotation.

  • Purchase Request ExceptionOdoo 14, 15, 16, 18
    purchase_request_exception

    Adds customizable exception rules to purchase requests so blocked requests are flagged, filtered and can be reviewed or ignored before approval.

  • Purchase Request TypeOdoo 14, 16, 18, 19
    purchase_request_type

    Lets you classify purchase requests by a configurable type (for example Regular, Contract or Reduce Step), each with its own numbering sequence and optional operation type, and to skip the request-for-quotation step for certain types.

  • purchase_return

    Create purchase return orders to send products back to a vendor and generate the related vendor refund bills. It adds a dedicated Purchase Return Orders menu with its own order form, lines, statuses and printable report.

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.