Migrating from Odoo 18 to Odoo 19: which OCA modules are available
Of the 3,112 OCA modules confirmed in Odoo 18.0, 1,272 (41 %) are also confirmed in Odoo 19.0. The other 1,840 do not have a confirmed 19.0 version in the catalogue yet: if you use any of them, check its page before planning the migration. In addition, 260 modules are in Odoo 19.0 without being in 18.0.
- 3,112
- in Odoo 18
- 1,272
- also in Odoo 19
- 1,840
- pending in Odoo 19
- 41 %
- already migrated
See also
Odoo 18 modules not yet confirmed in Odoo 19
- Shopfloor single product transfer mobileOdoo 14, 16, 18shopfloor_single_product_transfer_mobile
Adds a mobile Shopfloor screen for transferring a single product, guiding warehouse workers step by step from scanning a source location or package to setting the quantity and destination.
- Shopfloor Vendor PackagingOdoo 14, 18shopfloor_vendor_packaging
Adds a per-menu option in Shopfloor to show or hide vendor packagings in the mobile frontend, so operators only see the packagings you want them to pick.
- Shopfloor WorkstationOdoo 13, 14, 16, 18shopfloor_workstation
Lets you register shopfloor workstations with a barcode, a default printer and a shopfloor profile, so mobile app users can scan a workstation barcode to set their default configuration.
- Shopfloor Workstation Label PrinterOdoo 14, 18shopfloor_workstation_label_printer
Lets you set a default label printer on a shopfloor workstation, so when a worker selects that workstation the printer is automatically applied to their user profile.
- Shopfloor Workstation MobileOdoo 13, 14, 16, 18shopfloor_workstation_mobile
Adds a Workstation settings screen to the Shopfloor mobile app so operators can scan a workstation barcode and select which workstation they are working at.
- No automatic deletion of SMSOdoo 14, 16, 18sms_no_automatic_delete
Lets you control how long sent SMS messages are kept before being permanently removed, instead of Odoo deleting them automatically. You set the retention period in days from the Settings screen.
- Spec Driven ModelOdoo 12, 13, 14, 15, 16, 17, 18spec_driven_model
Lets Odoo models be generated from XML schemas and exchange data with XML files in both directions, turning parsed XML into Odoo records and Odoo records back into XML.
- spreadsheet_quotation
Link spreadsheet calculators to quotation templates and sale orders. When a quotation is created from a template, a copy of the calculator is attached and filtered to that order, and calculated values can be synced back to the order lines.
- SQL ExportOdoo 12, 14, 15, 16, 17, 18sql_export
Lets users run read-only SQL queries on Odoo data and download the results as CSV files. Queries can include user-entered parameters (dates, IDs, categories) before exporting.
- SQL Export (delta support)Odoo 16, 18sql_export_delta
Adds a Delta option to SQL exports so each run only outputs rows that are new compared to the previous export, instead of the full query result.
- SQL Export ExcelOdoo 12, 14, 15, 16, 17, 18sql_export_excel
Adds an Excel option to SQL exports, so query results can be downloaded as .xlsx files or injected into a pre-configured Excel template.
- SQL Export MailOdoo 12, 14, 15, 16, 17, 18sql_export_mail
Send the CSV result of a saved SQL query by email to selected users or partners, either manually or automatically on a schedule.
- StayOdoo 14, 16, 18stay
Manage guest stays, room and dormitory assignments, and meals (breakfast, lunch, picnic, dinner, bed nights) with capacity and conflict checks. Includes dashboards, printable journals, fire reports and Excel exports.
- Stay APIOdoo 14, 16, 18stay_api
Adds a REST API so an external web form can create, read, update and cancel stays in Odoo, with automatic guest matching, validation, notifications and a configurable stay type list.
- Stay Report Py3oOdoo 14, 16, 18stay_report_py3o
This module changes the stay reports in Odoo so they are generated with Py3o templates instead of the standard Qweb layout, giving a cleaner printed result.
- Account Invoice Report Lot Expiry DateOdoo 16, 18stock_account_invoice_report_lot_expiry
Adds an Expiration Date column to the lots table on the customer invoice PDF, so each tracked lot listed on the invoice shows its expiry date.
- Stock account move reset to draftOdoo 16, 17, 18stock_account_move_reset_to_draft
Allows resetting a posted vendor bill to draft even when stock valuation layers exist due to price differences, and automatically creates offsetting valuation entries.
- Stock Account Quantity History LocationOdoo 12, 13, 14, 15, 18stock_account_quantity_history_location
Adds location filtering to the stock valuation history report, so users can see the value of stock at a specific date for a chosen location and its sub-locations.
- stock_account_show_automatic_valuation
This module brings back the 'Automatic Accounting' option in Inventory settings so you can turn on automatic stock valuation in Odoo Community Edition.
- Stock Account Valuation ReportOdoo 12, 13, 14, 15, 16, 18stock_account_valuation_report
Compare the stock value and quantity from inventory records with the value and quantity recorded in accounting, product by product, and spot differences. A new report under Inventory / Reporting / Dual Inventory Valuation shows both sides side by side.
- Stock archive constraintOdoo 12, 13, 14, 15, 17, 18stock_archive_constraint
Stops users from archiving products or storage locations that still have stock on hand or unfinished stock operations, showing a clear error message instead.
- Stock Available Base Exclude LocationOdoo 14, 16, 17, 18stock_available_base_exclude_location
This technical base module lets other Odoo modules exclude specific stock locations when calculating a product's available quantity. It provides a reusable mixin to store excluded locations or a location filter, and adjusts the product availability…
- Exclude locations from immediately usable quantityOdoo 14, 16, 18stock_available_immediately_exclude_location
Adds a checkbox on stock locations to exclude them from the "immediately usable" quantity shown for products, so stock sitting in those locations is no longer counted as available right away.
- Stock Available Location Get DomainOdoo 16, 18stock_available_location_get_domain
Technical helper module that lets other Odoo modules reuse the standard stock location domain logic for locations instead of stock quants. It adds no visible screens or menus for end users.
- Stock Available to Promise ReleaseOdoo 13, 14, 16, 18stock_available_to_promise_release
Lets warehouse staff release delivery transfers in a chosen order while still reserving stock fairly, based on the quantity promised to each customer. Adds release and unrelease buttons, priority dates, and available-to-promise quantities on transfers and…
- stock_available_to_promise_release_carrier_alternative
Lets you list alternative shipping methods on a delivery carrier so Odoo can automatically switch to the best valid carrier when a delivery order is released, based on available-to-promise quantity.
- stock_available_to_promise_release_delivery
When you change the delivery method (carrier) on a delivery order that has not yet been released, this module automatically re-routes its stock moves to follow the new carrier's routes.
- Available to Promise Release - Dynamic RoutingOdoo 13, 14, 16, 18stock_available_to_promise_release_dynamic_routing
Technical glue module that makes the Available to Promise Release and Dynamic Routing warehouse modules work together. It adds no new screens or settings for users.
- Stock Available To Promise Release Exclude LocationOdoo 14, 16, 18stock_available_to_promise_release_exclude_location
Automatically excludes locations marked as excluded from immediately usable stock when Odoo computes available-to-promise quantities for release.
- Stock Available UnreservedOdoo 12, 13, 14, 15, 16, 18stock_available_unreserved
Shows how much stock is on hand but not reserved for any delivery or move, directly on products and product variants. Adds a button and filters to jump to the unreserved stock quantities.
- Stock BarcodesOdoo 12, 13, 14, 15, 16, 18stock_barcodes
Adds a barcode scanning screen to Odoo stock operations (receipts, deliveries, internal transfers, relocations and inventory counts) for USB/Bluetooth scanners, without needing the Enterprise barcode app.
- Stock Change Quantity ReasonOdoo 12, 13, 14, 15, 17, 18stock_change_qty_reason
Lets you record a reason whenever you change a product's quantity in inventory adjustments, either by typing free text or by picking from a list of predefined reasons.
- Stock Checkout SynchronizationOdoo 13, 14, 18stock_checkout_sync
Adds a "Checkout Sync" button on transfers that lets you pick one destination location for all moves heading to a checkout operation type, updating the move lines automatically.
- Stock Customer DepositOdoo 16, 18stock_customer_deposit
Lets you manage goods your customers store in your warehouse (customer deposits) and sell them back to the same customer, automatically giving a 100% discount on the deposited quantity.
- Stock Cycle CountOdoo 12, 13, 14, 15, 16, 17, 18stock_cycle_count
Plan and run cycle counts (partial stock counts) in your warehouse based on rules, instead of doing full physical inventories. Odoo proposes which locations to count, creates the inventory adjustments, and tracks counting accuracy.
- Loading DockOdoo 13, 14, 16, 17, 18stock_dock
Lets you register the loading docks of your warehouses in Odoo, each with a name, an optional barcode and the warehouse it belongs to, so docks can be listed, searched and grouped.
- Stock Dynamic RoutingOdoo 13, 14, 16, 18stock_dynamic_routing
Lets warehouse managers define dynamic routing rules that automatically split, redirect or re-type stock moves based on the source or destination location, so goods passing through zones like a high-bay or handover area get the right operation type and extra…
- Stock Dynamic Routing - Checkout SyncOdoo 13, 14, 18stock_dynamic_routing_checkout_sync
This is a technical glue module that ensures the Dynamic Routing and Checkout Sync warehouse modules work together. It adds no new screens or features for users.
- stock_dynamic_routing_delivery
Adds a "Propagation of carrier" option on dynamic routing rules so that, when a routing rule creates a new delivery, the carrier (shipping method) of the original sales order is copied onto it.
- stock_dynamic_routing_delivery_procurement_group_carrier
Automatically copies the delivery carrier from the procurement group onto new pickings created by dynamic routing rules, when the rule is set to propagate the carrier.
- Stock Dynamic Routing - Reservation RulesOdoo 13, 14, 18stock_dynamic_routing_reserve_rule
Adds a warning and a shortcut button on dynamic routing rules so users can see when reservation rules are missing between the origin and destination operation types.
- Partner Stock RiskOdoo 12, 13, 14, 16, 18stock_financial_risk
Blocks outgoing stock transfers to customers whose financial risk limit is exceeded, showing a warning wizard before confirming, reserving or validating the transfer.
- Stock Free QuantityOdoo 14, 15, 16, 17, 18stock_free_quantity
Shows a 'Free Quantity' (stock on hand minus reserved) on product forms, kanban cards and stock lists, so users can see what is really available to sell or use.
- Stock Intercompany Delivery-ReceptionOdoo 14, 15, 16, 18stock_intercompany
When a delivery to a customer is validated and that customer is another company in your database, Odoo automatically creates the matching incoming receipt in that other company. You choose which incoming operation type is used per company in Inventory…
- Stock Inventory Count To ZeroOdoo 15, 16, 17, 18stock_inventory_count_to_zero
Lets you request an inventory count and automatically fill the counted quantities with zero, so you can quickly declare that stock is empty instead of typing each quantity by hand.
- stock_inventory_hide_apply_all
Hides the 'Apply All' button on the inventory adjustment list for most users. Only users added to the new 'Apply All Inventory Adjustments' group can see and use it.
- stock_inventory_location_state
Track each sub-location of an inventory and prevent validating the inventory until every sub-location has been counted. A counter button on the inventory form shows how many locations are done.
- Extended Inventory Preparation FiltersOdoo 12, 13, 14, 16, 17, 18stock_inventory_preparation_filter
Adds a new "Filtered Products" option when preparing an inventory adjustment, letting users pick products with a custom filter instead of only by category or one by one.
- Stock Inventory RestrictionOdoo 18stock_inventory_restriction
Restricts who can modify and validate stock inventories: only the assigned responsible user can change an inventory, while inventory managers keep full access.
- Stock Inventory Valuation ReportOdoo 12, 14, 18stock_inventory_valuation_report
Adds a valuation report to the Inventory Valuation screen so users can see the stock quantity and value of every storable product at a chosen date, then view it on screen or export it as PDF or Excel.
- Stock Inventory Verification RequestOdoo 12, 15, 18stock_inventory_verification_request
Lets warehouse staff raise a Slot Verification Request (SVR) when an inventory count shows a discrepancy above the allowed threshold, so a manager can assign someone to re-check the location before the error spreads.
- Stock Landed Costs AnalyticOdoo 13, 16, 17, 18stock_landed_costs_analytic
Adds analytic account and analytic tags fields to landed cost lines, so that when a landed cost is validated, the resulting accounting entries carry the analytic distribution from the cost line.
- Stock Landed Costs CurrencyOdoo 12, 13, 16, 18stock_landed_costs_currency
Lets users enter landed costs in a foreign currency on a landed cost record; the amount is automatically converted into the company currency for the cost lines.
- Stock Landed Costs PriorityOdoo 15, 16, 17, 18stock_landed_costs_priority
Adds a priority flag (Normal or Important) to landed costs, so you can mark the urgent ones and see them first in lists, kanban and searches.
- Stock Location addressOdoo 12, 13, 14, 15, 16, 17, 18stock_location_address
Lets you attach a contact address to a stock location, and shows the address inherited from the closest parent location when none is set directly.
- Purchase Location addressOdoo 12, 13, 14, 15, 16, 17, 18stock_location_address_purchase
Links purchase orders to the address of the destination warehouse location, so the delivery address on a purchase order is automatically filled from the receiving location.
- Stock Location Bin NameOdoo 13, 14, 18stock_location_bin_name
Automatically builds bin location names in Odoo from a format you define on the parent area, using attributes like corridor, row, rack and level.
- Stock location childrenOdoo 13, 14, 16, 18stock_location_children
Adds a "Children" button on stock location forms that lists every sub-location at any depth, not just the direct ones. Useful when you need to see the full hierarchy of a warehouse location.
- Stock Location EmptyOdoo 14, 18stock_location_empty
Adds a stock quantity column and an 'Empty' filter to stock locations, plus a new 'Empty stock' menu that lists locations with no stock.
- Stock Location Fill StateOdoo 16, 18stock_location_fill_state
Shows whether each stock location is empty, filled, about to be filled, or about to be emptied, directly on the location form, list and search screens.