Thursday, January 22, 2026
15 changes · 18.0
New functionality added to Odoo
This update adds support for the Caribbean Guilder (XCG) as a new currency option within Odoo. It designates the XCG as the default currency for Curaçao and Sint Maarten, expanding Odoo's currency coverage to include these regions. This enhancement improves the system's ability to handle transactions in these local markets.
Original PR description
Introduce the Caribbean Guilder (XCG) as an available currency and set it as the default currency for Curaçao and Sint Maarten. Related PR-https://github.com/odoo/enterprise/pull/104404 taskID-5490423
This update introduces the Caribbean Guilder (XCG) as a supported currency within Odoo Enterprise. It’s now the default currency for Curaçao and Sint Maarten, aligning our financial data with the broader Odoo community. This change supports international business operations in these regions.
Original PR description
Align enterprise currency data with the community with addition of new currency XCG. Related PR-https://github.com/odoo/odoo/pull/243955 taskID-5490423
Resolved issues and error corrections
This update addresses a discrepancy in the testing process for Mexican VAT (CFDI) invoices, specifically related to rounding rules. The change ensures that test cases accurately reflect the latest Mexican tax regulations regarding rounding, improving the reliability of the l10n_mx_edi module. This ensures accurate VAT calculations for Mexican businesses using Odoo Enterprise.
Original PR description
Adapt the test cfdi rounding 9 for commit https://github.com/odoo/odoo/pull/233278
This update corrects a rounding issue in the payment wizard when converting invoices to MXN currency. Previously, the displayed amount was slightly off due to differences in how currency conversions were handled. This fix ensures accurate currency conversion and display, particularly for companies using MXN as their primary currency.
Original PR description
With a company where the main currency is, for instance, MXN (easier to reproduce with l10n_mx): - Create a currency exchange rate for USD: 0.051908143350 unit per MXN and 19.264800000000 MXN per unit. - Create an invoice in USD with a product priced at 432, quantity of 2, and 16% taxes. In the journal items of the invoice, the balance is 19307.96 MXN. However, in the payment wizard, the amount shown when switching to MXN currency is 19307.95. In _get_total_amount_in_wizard_currency_to_full_reconcile, we convert the source amount currency (which includes line + tax not yet converted), then perform the conversion. Whereas in the invoice, we first convert the product line and tax line separately and then sum them up. opw-4846090 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update addresses a technical issue preventing Odoo from correctly importing a necessary exception class from the 'requests' library. The issue stemmed from a recent change in the 'requests' package itself. By installing a specific version of 'requests' and importing the exception correctly, this fix ensures Odoo's functionality continues without interruption.
Original PR description
Installing `requests==2.25.1` and using the following line of code:
from requests.exceptions import JSONDecodeError
It raises the following error:
ImportError: cannot import name 'JSONDecodeError' from 'requests.exceptions' (python3.10/site-packages/requests/exceptions.py)
It was removed from the following commit in the `requests` package:
https://github.com/psf/requests/commit/db575eeedcfdb03bf31285afd3033e301df8b685
This change fixes this error importing the original exception from `json` package
Description of the issue/feature this PR addresses:
Current behavior before PR:
Desired behavior after PR is merged:
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis update resolves an issue where products with single attribute values (like color or shape) weren't correctly displayed when ordered via barcode in Point of Sale. The fix ensures that variants are only shown when multiple attribute selections are present, aligning with current Odoo 18.2 functionality. This improves the user experience for barcode-based ordering.
Original PR description
**Steps to reproduce:** - Make a product with 2 attributes, like color and shape - Enter a single value for each of them - Enter a Barcode on it - Go to PoS, click on it, the variants will be shown in it's name - Order it using the Barcode you defined - The product will not display the variants **Problem:** When ordering a product that has multiple attributes with a single value, the "selected" variants will be shown, even though it is always the same. When ordering it through the Barcode, the variants will not be shown. **Why the fix:** The variants are now not shown if all attributes only have one value, like it is done with the Barcode. If there are some attributes that have multiple values, it will be displayed when clicking on it. It is not possible to order them through Barcode as it does not support the value selection in 18.0. Only showing the variants if there are some choices to be made is how it is done from 18.2 onwards. opw-4946547
This update fixes a technical issue where booking appointments with flexible resources resulted in a 404 error page for users. The change ensures appointments with these resources can be successfully booked, improving the user experience and preventing lost bookings.
Original PR description
**issue:** booking an appointment with a flexible resource returns a 404 error page. **steps to reproduce:** - create an appointment with a flexible resource - go to website - attempt to book an appointment - 404 page not found is returned opw-5039947
This update enhances the stability of the account winbooks import function by breaking down large move creation processes into smaller batches. This prevents potential memory issues that could cause the import to fail, ensuring smoother and more reliable data imports.
Original PR description
The part of the import function that created moves could easily attempt to create thousands of moves at once, potentially leading to a memory error. This PR splits the calls into batches to avoid using too much memory. opw-5003045 Forward-Port-Of: odoo/enterprise#97263 Forward-Port-Of: odoo/enterprise#91931
This update resolves minor visual inconsistencies in the new image gallery template. Specifically, it corrects issues with missing styling and undefined class names, ensuring a more polished and reliable display of images for users. This improves the overall user experience.
Original PR description
This commit fixes a few minor issues in the new carousel items template introduced in [1]: items having an `"undefined"` class, and a missing margin style in the main snippet template. [1]: https://github.com/odoo/odoo/commit/9042b1cae7b630b20e0670788b7a4ed9e4c97609 linked-task-3414281
This update fixes a display issue in the appointment calendar for Ukrainian and Polish users. Previously, month names were shown in the genitive case, which was incorrect. The fix ensures month names are displayed in the nominative case, aligning with standard calendar conventions and improving the user experience for these languages.
Original PR description
In the appointment calendar, the "Month Year" (e.g. January 2026) is displayed at the top of the calendar selector as is standard for calendars. Unfortunately in some languages, the word month word…
In the appointment calendar, the "Month Year" (e.g. January 2026) is displayed at the top of the calendar selector as is standard for calendars. Unfortunately in some languages, the word month word used depends on grammatical situation. Steps to reproduce: - activate Ukrainian (or Polish) language - Preview (i.e. the website view) of any appointment - Change the preview into Ukrainian (or Polish) Expected result: Calendar month at top of calendar is shown in the nominative case: e.g. January 2026 = січень 2026 (in Ukrainian) Actual result: Calendar month is shown in the genitive case (e.g. "of January", as in "the 12th of January): e.g. January 2026 = січня 2026 (in Ukrainian) Fix is to switch from the "MMMM Y" format (i.e. month based on grammar context) to "LLLL Y" (i.e. stand alone month) which will use the correct month case. Ref: https://www.unicode.org/reports/tr35/tr35-dates.html#dfst-month Note that for most languages this won't make a difference since there is usually only 1 way of writing a month. opw-5474705 picture diff (for January 2026): before fix: <img width="1168" height="468" alt="image" src="https://github.com/user-attachments/assets/36754439-e664-40f3-9c5b-7c9c76cd7cca" /> after fix: <img width="1215" height="492" alt="image" src="https://github.com/user-attachments/assets/82f0665e-fe70-4b9f-b1d4-f420b52db38f" />
This update resolves an issue where internal users without sales permissions encountered errors when accessing their sales orders through the /my page. This change ensures a smoother experience for all users within Odoo, preventing disruptions to sales workflows. The fix mirrors a previous update to maintain consistency and stability.
Original PR description
Avoid error when internal user (no sale permissions) see Orders at /my Similar to https://github.com/odoo/odoo/commit/5ebab949a06ec338cc28e912317a74bbfb3fe6ac @Tecnativa TT60025 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes a performance issue in the Point of Sale module. Previously, scanning invalid barcodes triggered unnecessary recalculations of product pricing data, slowing down the system. This change prevents those unnecessary calculations, resulting in faster and more efficient point-of-sale operations.
Original PR description
Before this commit, if scanning a barcode that does not correspond to any product, computeProductPricelistCache was called with no data, therefor it recomputed the cache for all records. opw-5476560 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes a technical error in the delivery IoT module that caused tracebacks when confirming print jobs. The change ensures compatibility with IoT boxes that don't provide standard print IDs, preventing duplicate print job creation and improving system stability. This resolves a potential issue impacting report processing.
Original PR description
In `delivery_iot`, as reports are fetched in the chatter from the backend, we end up creating one print job in the front end but multiple print jobs can be sent with WebSocket in the backend. We then get a traceback when getting a second confirmation from a print job that has just been deleted from the job list. Additionally, we ensure compatibility with the stable IoT Box, that do not return a `print_id` or `iot_mac`. opw-5464957
This update removes a restriction that limited the use of certain accounts within journals. Previously, accounts used as default debit or credit accounts in journals couldn't be marked as non-reconcilable. This change provides greater flexibility for users to manage their accounting records, simplifying account setup and reconciliation processes.
Original PR description
Previously, a constraint prevented accounts from being non-reconcilable if they were used as default debit/credit accounts involved in journals. This behavior is too restrictive. This commit removes the constraint. task-5254202 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This pull request corrects a technical issue related to the translation of Odoo's Greek language support. Specifically, the incorrect language code 'gr' was replaced with the correct 'el' code, ensuring accurate translations for Greek-speaking users. This update ensures proper localization and a better user experience for our Greek-speaking customers.
Original PR description
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#244684