Tuesday, August 19, 2025
17 changes · 18.0
Enhancements to existing features
This update adds automated checks to make sure barcode lookup correctly retrieves product information and supports product creation across point of sale, stock barcode, and website flows. It helps reduce the risk of errors when teams use barcode-based product setup in day-to-day operations.
Original PR description
*: pos_barcodelookup, stock_barcode_barcodelookup, website_product_barcodelookup In this commit: ------------------- - Added tests for barcodelookup to check whether the data fetched and set properly. - Added tests in respective modules to check the flow and creation of the products using barcodelookup. task - 3920661
Resolved issues and error corrections
This update corrects how Odoo tracks changes to an electronic invoice identifier after a previous field rename. It has minimal day-to-day impact, but helps avoid issues for customers who customize screens or workflows to use this field.
Original PR description
In previous PR [1], we renamed field `ubl_xml_id` to `ubl_cii_xml_id`, but failed the compute dependencies. It has next to no impact since this field it not in views, but could lead to problems if people add it through Studio. [1]: https://github.com/odoo/odoo/pull/115627/files#diff-5f7f5f6e9c54527b31f7579db7ef63b5b910794e462cd3346e32387900c13efdR12 task-none Forward-Port-Of: odoo/odoo#223259
Documentation and clarification updates
The Adhoc corporate contributor license agreement record was updated to add new members. This keeps Odoo's contribution permissions and legal records current, with no impact on product functionality.
Original PR description
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update corrects invalid formatting in delivery reports that could cause problems when editing or generating reports. It helps ensure delivery documents display reliably and avoids issues in the report editor.
Original PR description
because of odoo/odoo#169512, there was some illegal html generated in the delivery report. Indeed a <div> in a <p> is not supported. This created issues in the reportEditor, and possibly elsewhere 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 fixes an intermittent issue in point-of-sale loyalty testing by ensuring the customer appears consistently at the top of the selection list. The change helps keep automated checks stable so loyalty features can be validated more reliably before release.
Original PR description
This commit make sure that the partner is always at the top of the list runbot-230704
Purchase orders now recalculate the company total when the order currency is changed. This prevents outdated totals from being shown after currency changes, improving accuracy for purchasing and reporting.
Original PR description
**Steps to reproduce:** 1. Create a Purchase Order (PO) with a non-company currency (e.g., EUR if the main currency is USD). 2. Add at least one order line so the "Amount Total" is greater than zero. 3. Change the currency of the PO to a different one and save the record. **Expected behavior:** The `Company Total` field is recomputed using the new currency's exchange rate. **Actual behavior:** The `Company Total` remains unchanged, still showing the value in the original currency. **Fix:** Add `currency_id` to the `@api.depends` decorator of the `_amount_all` compute method. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Updating a parent or child contact no longer raises an unnecessary error when one VAT number is blank and the other is empty. This prevents avoidable disruption while still protecting accounting consistency for existing journal items.
Original PR description
An error exists if we update the parent partner and the the VAT number does not match with the child partner to prenvent inconsistencies between journal item created before the change. This error is also triggered when one partner vat is '' and the other is False. This commit aims to fix that. opw-4915851
Dutch Peppol invoice XML files now use the correct identifier scheme when the company ID is a 20-character OIN number. This helps ensure NLCIUS e-invoices are accepted and interpreted correctly by recipients and Peppol systems.
Original PR description
## Short functional explanation of the error For Dutch companies, when downloading the NLCIUS file of an invoice, the schemeID of the companyID in the XML isn't correct. ## Reproduction Steps 1. Make…
## Short functional explanation of the error For Dutch companies, when downloading the NLCIUS file of an invoice, the schemeID of the companyID in the XML isn't correct. ## Reproduction Steps 1. Make sure you use a dutch company: in apps, download the 'l10n_nl' and 'account_edi_ubl_cii' modules. Then, click on your company and select the NL Company. 2. Go to settings and type Peppol. Under Customer Invoices, check the Peppo format. Then, setup a Peppol Endpoint. Hit save. 3. Go to the Accounting app and click on the customers tab, then invoices. Click on new. 4. Select a customer. Make sure that the customer is from the Netherlands, has an email address, and in the accounting tab, an account number. Still in the accounting tab, under Electronic Invoicing, set the format at NLCIUS, set a Peppol e-address and a Peppol Endpoint that is 20 characters long. 5. Add a product, click confirm then Send & Print. Make sure that NLCIUS is well checked and click again Send & Print. 6. In the bottom right corner of the page, just under the Amount Due, there's a paper clip icon. Click on it and you'll see the XML. Download it. ### Expected behavior As the CompanyID is 20 characters long, the schemeID next to the CompanyID should have the value of 0190. ### Unexpected behavior If you scroll a bit, you'll see that the SchemeID next to the CompanyID has a number of 0106. ## Origin of the issue In the code, the SchemeID will have a value of 0190 if the CompanyID is 9 characters long. __ opw-4943262 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#219424
The Australian localization now treats the GST Only on Imports tax as fully included for customs calculations again. This restores the intended tax setup so import-related accounting reports and transactions calculate GST correctly.
Original PR description
It was price_include before and got removed with the changes from https://github.com/odoo/odoo/commit/be308e106ce9699f99efe133976c40519d6128f9 Re-add them 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
## Versions 18.0+ ## Issue The icon's class is changed from `fa fa-bell` to `fa fa-bell me-2` when rendering making the translation unable to find the spot ## Steps to reproduce - Ensure at least 2 languages (with at least one different from English) are set for the website; - Go to a published product without variants (e.g. "Office Chair"): - Ensure the "Track Inventory" checkbox is checked under "General Information" tab; - Set its stock quantity to 0 or less; - Under the "S
Original PR description
## Versions
18.0+
## Issue
The icon's class is changed from `fa fa-bell` to `fa fa-bell me-2` when rendering making the translation unable to find the spot
## Steps to reproduce
- Ensure at least 2 languages (with at least one different from English) are set for the website;
- Go to a published product without variants (e.g. "Office Chair"):
- Ensure the "Track Inventory" checkbox is checked under "General Information" tab;
- Set its stock quantity to 0 or less;
- Under the "Sales" tab, ensure the "Out-of-Stock" checkbox ("Continue Selling") is unchecked;
- Click the "Go to website" smart button;
- Change the website's language for the non-English one;
- As out of stock, as to get notified when the product is back in stock:
- Submit the email address.
opw-4955314Event reminder emails now follow the language selected by the website visitor during registration. This keeps reminder messages consistent with confirmation emails and avoids sending English reminders to attendees using another installed language.
Original PR description
How to reproduce this bug: 1- Create a db with only one language installed e.g. fr_FR and event app installed 2- Create an event and publish it on the website 3- Register for the event using public user 4- The confirmation email is in fr_FR but the reminders are in English This is caused because partner_id.lang is empty as a public user. The correct way to fetch the visitor lang is by `visitor_id.lang.id`. opw-4794184
This fix makes tests consistently verify that files show an uploading state when they are added in messaging, knowledge, helpdesk, spreadsheet comments, and WhatsApp-related areas. It helps prevent regressions where users might not get clear feedback while attachments are being uploaded.
Original PR description
\* = knowledge, test_mail_enterprise, test_spreadsheet_edition, website_helpdesk_knowledge, whatsapp Enterprise counter-part. https://runbot.odoo.com/odoo/error/230901 https://github.com/odoo/odoo/pull/223367
Fixes product searches by Kenya KRA item code so users no longer hit errors or blank results when using the product search filter. This helps Kenyan companies find products more reliably in sales workflows.
Original PR description
This commit odoo/enterprise@c17ebfc7cdf2b218945280e6e3bd09f2b9ee8adc added a [searchview](https://github.com/odoo/enterprise/blob/17.0/l10n_ke_edi_oscu/views/product_views.xml#L74-L84) for `l10n_ke_item_code` but it never worked. as `l10n_ke_item_code` in `product.template` is non-stored field, we generally get error in console about it. fast forward to newer version e.g. saas-18.3, searching on non-stored fields raises traceback on frontend. Step to reproduce: - install L10N_ke and sale_management - switch to kenya company - go to product in sales app - type something in search bar and select 'kra item code' from autocomplete Observation: - nothing happens on frontend - on backend we receive a error `ERROR odoo.osv.expression: Non-stored field product.template.l10n_ke_item_code cannot be searched.` Fix: - we introduce a search method for l10n_ke_item_code field opw-4985176 Forward-Port-Of: odoo/enterprise#91526
Odoo Studio now handles cases where a button points to a deleted server action without crashing. This keeps users able to reopen and edit forms in Studio even after the related action has been removed.
Original PR description
The error is triggered when a user configures a button to execute a serveraction, deletes the associated server action, and then attempts to edit the button. This causes a failure at the line `self.env.ref(str_action)` due to the missing external ID. **Steps to reproduce:** * Install `crm` and `web_studio` * crm > Form View> Studio > `Add a button`> Run a server Action > Enrich * Settings > Technical > Actions > Server Actions > `Enrich` > Delete it * crm > Form View > Studio `ValueError: External ID not found in the system: crm_iap_enrich.action_enrich_mail` **Solution:** * Return `False` when the referenced server action cannot be found or has been removed. **Sentry-6608495874**
This fix prevents financial report spreadsheet exports from failing when an account code looks like an extremely large number, such as "1E1000". Users can now export Trial Balance and related accounting reports reliably even when account identifiers contain these values.
Original PR description
_set_xlsx_cell_sizes tries to convert each cell into a float if it's possible. If the cell contains "inf", "1e1000" (or any value such that float(value) = float("inf")), then there is an OverflowError which is not catch by the try/except.
To reproduce, set an account code as "1E1000", make this account appearing in the trial balance (by creating a move) and export it as XLSX.
opw-4981385This update fixes how the Indian GST reports determine the month and year for a return period. It helps ensure GST reporting periods are computed consistently, reducing the risk of incorrect report timing or filing data.
Original PR description
Backport of commit: https://github.com/odoo/enterprise/commit/eda621c07393ad8e897503c852a9b00480affc52 Forward-Port-Of: odoo/enterprise#92499
Opening the Journal Audit report no longer fails if the related Journal Report has had all of its lines removed. The system now safely stops processing when there are no lines, preventing an error and improving reliability for accounting users.
Original PR description
Currently, error occurs when user try to open Journal Audit with no lines. Steps to replicate: - Install `accountant`. - Navigate to `Accountant > Configuration > Accounting reports`, search for `Journal Report` and open it. - Under the Lines tab, delete all the records and save. - Open the `Journal Audit` report, and the error will appear. Error: `IndexError: list index out of range` Cause: - An error occurred because the user deleted all the lines from the report, and the code tried to access the first element [1] of those lines (`lines[0]`) which caused the error. Solution: - Added a check if lines are present, if not then returned from the function. [1]: https://github.com/odoo/enterprise/blob/5670a73ef63d313f6c3df2b1ceeec7f7d6cd6a1b/account_reports/models/account_journal_report.py#L167 sentry-6795898305