Thursday, March 26, 2026
8 changes · 19.0
Enhancements to existing features
This update enables Peruvian Point of Sale (POS) systems to directly print E-invoices and receipts on thermal printers, aligning with local regulations and common retail practices. Previously, customers had to download invoices from an online portal. This change improves the customer experience by providing immediate, legally-recognized documentation.
Original PR description
Before: - In Peru, Point of Sale (POS) systems are allowed to generate E-invoices and E-receipts that comply with SUNAT’s requirements. - In the POS, Odoo prints a ticket that only includes a QR code linking to the customer portal, where the A4 invoice can be downloaded. - However, according to SUNAT and common practice in Peruvian retail environments, the printed POS ticket itself should serve as the legal representation of the electronic document After: - We allow Peruvian POS users to print electronic invoices and receipts directly on thermal printers (58 mm / 80 mm) using the same electronic document flow and data as the accounting module, ensuring full compliance with SUNAT’s representation requirements. Impact: - Improve customer experience by avoiding portal-only invoice download task-5193544
Resolved issues and error corrections
This update fixes an issue where the KMD INF report incorrectly included partners with turnover below 1,000 EUR. Now, the report accurately filters partners based on total invoice and credit note amounts, ensuring more precise financial reporting. The logic considers both standard and Part B transactions.
Original PR description
The KMD INF report should only include partners whose total turnover for the period reaches 1,000 EUR. Before this PR: - The report did not check this threshold, so partners below €1,000 were still shown. After this PR: - The threshold is now calculated correctly based on specific rules: - The threshold is calculated separately for invoices and credit notes per partner. - If invoices total base amount >= €1,000 OR credit notes total base amount >= €1,000, both invoices and credit notes are included in the report - The same logic applies to bills and refunds in Part B. task-5373606 Forward-Port-Of: odoo/enterprise#111737 Forward-Port-Of: odoo/enterprise#101333
This update resolves an issue where deleted serial numbers could not be rescanned using the rfid barcode scanner. The fix removes the serial number from a temporary cache, allowing it to be correctly processed when rescanned. This ensures accurate inventory tracking when using the rfid scanning feature.
Original PR description
**Problem:** When using rfid scan, a deleted line can not be scanned again **Steps to reproduce on localhost:** 1) create a new db with stock_barcode module 2) enable lot and sn setting 3) create a…
**Problem:**
When using rfid scan, a deleted line can
not be scanned again
**Steps to reproduce on localhost:**
1) create a new db with stock_barcode module
2) enable lot and sn setting
3) create a storable serial number product with
barcode 06016478556455
4) open barcode/ Count Inventory
5) to simulate a rfid scan of 3 serial numbers [1,2 and 3]:
- open browser console
- enter the following command :
`odoo.__WOWL_DEBUG__.root.env.services.mobile.bus.trigger("mobile_reader_scanned", { data: [
"urn:epc:id:sgtin:601647.0855645.1urn:epc:id:sgtin:601647.0855645.2urn:epc:id:sgtin:601647.0855645.3"
]});`
6) click the line with serial number "2", click on
the "-1" and then bin red button
7) repeat step 5
**Current behavior:**
the line for sn 2 is not added to the product
**Expected behavior:**
it should be added when rescanned
**Cause of the issue:**
When the uri barcodes are first scanned at step 5,
every uri is added to the uri cache, to be sure that
they are not mistakenly rescanned.
https://github.com/odoo/enterprise/blob/4296be6a81909dcdb094f728f8be45a8617ff54b/stock_barcode/static/src/models/barcode_model.js#L1615
Then when we scan again at step 7, because the uri
is in the cache, it's not added to filteredBarcodes and
it will not be processed.
https://github.com/odoo/enterprise/blob/4296be6a81909dcdb094f728f8be45a8617ff54b/stock_barcode/static/src/models/barcode_model.js#L688-L696
**fix**
we remove the uri from the cache when the line is deleted.
opw-5193250This update resolves an issue where the POS scale integration was not accurately displaying product weights, particularly with newer IoT box versions. The fix adjusts how the scale's measurement data is processed, ensuring correct weight readings are shown in the POS system. This improves the accuracy of product weighing for customers.
Original PR description
Steps to reproduce - Use a localisation other than a european one (l10n_eu_iot_scale_cert must not be installed) - Setup the scale for the POS - Open the POS - Add a product to be weighted by scale to the order - Add product to the physical scale - The displayed weight is always 0 Cause: New versions of the IoT box uses the field result to return the scale measure instead of value. Fix for version 18.0 and its intermediary versions. [opw-5990467](https://www.odoo.com/odoo/project/49/tasks/5990467) Forward-Port-Of: odoo/enterprise#111963
This update fixes a limitation in the Arabic reporting module, allowing businesses to accurately track and manage VAT across multiple branches. Previously, VAT book functionality was restricted, now it's enabled to support a more complete and compliant accounting process for businesses operating with multiple branches in the Arabic-speaking region.
Original PR description
Task: 62111 Manual FW of https://github.com/odoo/enterprise/pull/101898
This update resolves an issue where searching for delivery locations using only a zip code resulted in inaccurate location suggestions. The system was incorrectly interpreting zip codes as solely postal codes without a city designation, leading to incorrect data being sent to Sendcloud. This fix ensures accurate location retrieval for Sendcloud deliveries.
Original PR description
Issue ----- Searching for locations by only providing a zip code has unexpected results. Steps to reproduce ----- - Set up Sendcloud with Mondial Relay - Create a sale through the website - Get to the delivery part - Select sendcloud delivery - Search for a zip code only (11000) > Points are all in the 12200 area Cause ----- When searching through the wizard, a temporary address is created in https://github.com/odoo/odoo/blob/89e5038c224d58a2f6be8f3001fd0a2932733cbc/addons/delivery/models/sale_order.py#L108-L112 which always has its' city field set to `False`, as all of the wizard's info is interpreted as the zip code. This leads to the address field sent to Sendcloud being '11000 False' instead of the expected '11000', which Sendcloud fails to interpret correctly. ----- Ticket: opw-5999194
This update fixes a recurring issue where the Italian POS printer experienced errors when the system was offline. The fix adds a safety mechanism to gracefully handle network interruptions during receipt printing, preventing errors and improving the overall stability of the POS system for Italian businesses. This ensures smoother transactions even without an internet connection.
Original PR description
When loosing internet connexion a lot of tracebacks appear is the pos if we use the italian fiscal printer. Steps to reproduce: ------------------- * Setup italian fiscal printer for a shop * Open shop * Turn wi-fi off * Add items to cart * Go to payment screen > Traceback * Add a payment and validate > Traceback Why the fix: ------------ Don't try to reach the printer if we're offline regarding the price to pay. We add a try catch block around the call for printing the receipt. If the try block fails when the network is offline we assume it's just because of the offline mode. If it failed while online we raise the error. opw-5432090 Forward-Port-Of: odoo/enterprise#111487 Forward-Port-Of: odoo/enterprise#105515
This update resolves an issue where imported CFDI invoices (public invoices) were not correctly marked as 'public' during the import process. Previously, the system incorrectly defaulted to 'not public'. This change ensures that public CFDI invoices are properly recognized and processed, aligning with Mexican tax regulations.
Original PR description
**PROBLEM** When importing a XML to create an invoice, even if the XML is an invoice to public, l10n_mx_edi_cfdi_to_public is False. **STEP TO REPRODUCE** 1. Create an invoice to public, and generate the xml (send with CFDI). 2. Use this xml to upload an new invoice and notice the cfdi to public checkbox is unticked. **NOTE** Previously, there was a [bug](https://www.odoo.com/odoo/my-support-tasks/5911542) where it would always be ticked. opw-5934626