Wednesday, July 9, 2025
9 changes · 18.0
New functionality added to Odoo
This adds a dedicated module for EU scale certification in Point of Sale, making certification status clearer for store staff and customers. It improves compliance checks by including receipt and order line details in the certification checksum, warning when setups are not certified, and preventing unsupported weighing units.
Original PR description
This PR brings the LNE scale certification code out of `pos_iot` and into a new module. The following changes have also been made: - The Receipt and Orderline XML are now part of the certification checksum. - When certified, clicking the green scale icon will show various details about the certified setup. - When not certified, a warning will be shown in both the customer display and at the bottom of receipts. - Trying to set a product to 'to weigh with scale' which is not using kg or lb will raise an error. - The unit of measure is now shown on the discount section of an orderline. task-4910716 Community PR: https://github.com/odoo/odoo/pull/217135
Enhancements to existing features
Odoo now accepts Vietnam’s updated VAT identification formats, including the 12-digit personal CCCD format required from July 2025. This helps businesses keep customer and vendor tax records compliant with new Vietnamese tax registration rules while still supporting existing enterprise and branch VAT numbers.
Original PR description
The current validation uses stdnum.vn.mst.validate(), which only accepts 10- or 13-digit MST with legacy checksum logic. It does not support the 12-digit CCCD format now required for individuals from…
The current validation uses stdnum.vn.mst.validate(), which only accepts 10- or 13-digit MST with legacy checksum logic. It does not support the 12-digit CCCD format now required for individuals from 01/07/2025 (per Circular 86/2024/TT-BTC). * This patch introduces a separate format-level validator for: • 10-digit enterprise VAT • 13-digit branch VAT (10-digit + suffix) • 12-digit CCCD (from 01/07/2025) * References: • Circular 86/2024/TT-BTC (tax registration & CCCD admin): https://thuvienphapluat.vn/van-ban/Thue-Phi-Le-Phi/Thong-tu-86-2024-TT-BTC-dang-ky-thue-565309.aspx • CCCD replacing tax ID from 01 Jul 2025: https://thuvienphapluat.vn/ma-so-thue/bai-viet/cach-doi-ma-so-thue-sang-ma-so-dinh-danh-ca-nhan-tu-0172025-200926.html • VAT ID structure 10/13 digits (Law, TT 105/2020): https://thuvienphapluat.vn/phap-luat/cau-truc-ma-so-thue-la-10-chu-so-hay-13-chu-so-phan-loai-cau-truc-ma-so-thue-nhu-the-nao-theo-quy-d-796465-178397.html --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#217456 Forward-Port-Of: odoo/odoo#217253
Resolved issues and error corrections
Odoo now notifies the database when an IoT box's details change, not only when new devices are found. This helps keep device information such as network address, hostname, domain, and version accurate, including more reliable IP detection on Windows.
Original PR description
Currently we notify the database of any iot changes only if the iot box discovered new devices. However if its ip address/hostname/mac address/domain/version change the db is never notified. This PR adds this change + fixes the get_ip() method which was using netifaces which is unreliable on Windows to now use socket to get the iot box ip address
When a shopper updates their address outside the checkout flow, open website carts now refresh the applicable tax rules before payment. This helps ensure customers are charged the correct taxes based on their address and avoids incorrect order totals.
Original PR description
Versions -------- - 16.0+ Steps ----- 1. Have a fiscal position with a country-based tax mapping; 2. go to `/shop` as a public user, 3. create a new account; 4. add a product to your cart; 5. go to…
Versions -------- - 16.0+ Steps ----- 1. Have a fiscal position with a country-based tax mapping; 2. go to `/shop` as a public user, 3. create a new account; 4. add a product to your cart; 5. go to user settings & add an address that matches the fiscal position; 6. go to checkout & pay for the cart. Issue ----- The fiscal position's taxes aren't applied to the order. Cause ----- The `_compute_fiscal_position_id` method is triggered when changing the `partner_id` or `partner_shipping_id` of an order. It does not trigger when modifying the address of the order's current partner. There is logic in place to recompute fiscal position & taxes when an address gets entered via checkout, but not via any other route. Solution -------- Adding address fields to the `api.depends` of the compute method could introduce the unintended behavior of changing taxes & fiscal position of confirmed sale orders. Instead, we can check for fields relevant to fiscal position in `write`, then search for unconfirmed website orders, and recompute their fiscal position & taxes if need be. opw-4844132 opw-4753332 Forward-Port-Of: odoo/odoo#217721 Forward-Port-Of: odoo/odoo#214588
This fix makes the HTML editor handle preformatted text areas more consistently. Pasted content inside these areas is treated as plain text while preserving list numbers and markers, reducing unexpected formatting issues for users.
Original PR description
Description of the issue this PR addresses: Current behavior before PR: `pre` was not considered paragraph related element. Also it allowed flow content. Desired behavior after PR is merged: `pre` is considered paragraph related element and now it only allows phrasing content also anything pasted within `pre` is now pasted as plain text and list numbering and markers are preserved. task-4766648 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Changing the product on a sales quotation now recalculates the line price, even if the previous price had been manually adjusted. This prevents outdated prices from carrying over to a different product and helps keep quotations accurate.
Original PR description
step to reproduce - Create a quotation, - Select a product - Update the price manually - change the product - The amount stays the same expectation: with change of product in SO, price should also recompute issue: currently,`_compute_price_unit` depends on `technical_price_unit` such that `price_unit` won't update if `price_unit` and `technical_price_unit` are not same. which is the case when price_unit was manually set, regardless of the product https://github.com/odoo/odoo/blob/12ef230df58122fbdac0b4c1b4781c535b8516ba/addons/sale/models/sale_order_line.py#L567-L570 we should reset to original price with change of product opw-4813069 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
When users generate an electronic invoice XML through the Send & Print wizard for download only, Odoo now creates the related document record as expected. This keeps accounting documents complete even when the invoice attachment is not sent by email.
Original PR description
Event with the document integration correctly setup, e-invoice xml generated in the send&print wizard will not create an associated document unless the attachment is actually sent via mail Steps to reproduce: - Have a EU Company setup - Enable and configure Peppol Electronic Invoicing - Enable documents integration with accounting - Create an invoice to a Peppol enabled customer, confirm - Open send&print wizard, enable only 'Download' and 'BIS Billing 3.0' Issue: Document related to the xml attachment is not created. This will work as expected when the message is sent to the customer opw-4720588 Enterprise PR https://github.com/odoo/enterprise/pull/88746 Forward-Port-Of: odoo/odoo#216243
This fixes an error that could stop users from creating reordering rules for products with variants in Inventory. Businesses can now set replenishment rules for variant products without hitting a rounding-related crash.
Original PR description
The system encounters an error when attempting to `create` a `reordering rule` for products that have `variants`. **Steps to Reproduce:-** 1. Install the `Inventory` module. 2. Navigate to the…
The system encounters an error when attempting to `create` a `reordering rule` for products that have `variants`. **Steps to Reproduce:-** 1. Install the `Inventory` module. 2. Navigate to the `Products` section and create a product with variants (Make sure the `variants` option is `enabled` in the `settings`). 3. Click on `Reordering Rules` for that product and attempt to`create a new rule`. **Error:-** `AssertionError: precision_rounding must be positive, got 0.0` **Root Cause:-** - When trying to create the reordering rule for a product with variants, the `rounding` value comes as `0.0` at [1]. This occurs because there are `no products` in the `order point`, and consequently, there is `no unit of measure (UoM)` associated with it. [1] https://github.com/odoo/odoo/blob/970bd0e13319b2363c3ec186983faae2713ef5ef/addons/stock/models/stock_orderpoint.py#L343 **Solution:-** - In this commit, set the `rounding` value to `0.01` by default when the value is 0.0. This adjustment will ensure that all float comparisons using that UoM function will work correctly. **Sentry-6731259843** I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Electronic invoice XML files created from the send and print flow now create the expected document record even when the user only downloads them instead of emailing them. This keeps accounting documents complete and easier to find for companies using Peppol and Documents integration.
Original PR description
Event with the document integration correctly setup, e-invoice xml generated in the send&print wizard will not create an associated document unless the attachment is actually sent via mail Steps to reproduce: - Have a EU Company setup - Enable and configure Peppol Electronic Invoicing - Enable documents integration with accounting - Create an invoice to a Peppol enabled customer, confirm - Open send&print wizard, enable only 'Download' and 'BIS Billing 3.0' Issue: Document related to the xml attachment is not created. This will work as expected when the message is sent to the customer It occurs because, in case of xml attachment, we don't create an associated document until some attachment have been registered on the move, effectively delaying document creation until the mail attachments are created opw-4720588 Forward-Port-Of: odoo/enterprise#88746