Monday, September 15, 2025
11 changes
2 changes
Enhancements to existing features
Invoices created from sales orders now keep the sales order name as the customer reference when no customer reference already exists. This helps businesses match invoices and prepayments more reliably while reducing incorrect payment matches caused by customer names in payment memos.
Original PR description
Unless there's already a customer reference, we need the SO name to be able to match any prepayment --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#224999
Point of Sale users can now reopen combo and configurable items directly from the order, adjust their choices, and discard changes if needed. Matching edited items are automatically combined to keep orders cleaner, while custom text and combo pricing are preserved more reliably after edits or page refreshes.
Original PR description
Task: [#4890396](https://www.odoo.com/odoo/my-tasks/4890396) Community PR: [#221924](https://github.com/odoo/odoo/pull/221924) --- Improves the POS experience by allowing users to reopen and edit…
Task: [#4890396](https://www.odoo.com/odoo/my-tasks/4890396) Community PR: [#221924](https://github.com/odoo/odoo/pull/221924) --- Improves the POS experience by allowing users to reopen and edit configurable and combo products directly from their orderlines. When a product is edited to match another existing line, the lines are automatically merged to avoid duplicates. - Introduced `useTimedPress` to support both click and long press interactions. - Reopening a configurator now pre-fills default attributes, custom values, and combo selections. - Removed click delay when selecting an orderline, improving responsiveness. - Extracted logic for configurator, combo choice, unit price computation, and orderline merging from `addProductToOrder` into dedicated functions (`tryMergeOrderline`, etc.) for reuse across the codebase. --- The Combo/Product Configurator popups no longer receive default values directly. Instead, they now work with the orderline passed as a prop. ** Combo Configurator Popup ** - Use `props.line.selectedComboIds` as the source for default values. - Save the initial `state.combo` so it can be restored on discard. - Add a **Discard** button in the popup footer. ** Product Configurator Popup ** - Use `props.line.selectedAttributes` for the default values. - If there is no orderline like new combo item, fall back to `props.comboItem?.saveStateAttributes`. - Save the initial `state.selectedAttributes` so it can be restored on discard. - Expose `selectedAttributes` on `pos.orderline` as a function so it can be recomputed at any time. ** Bug Fix: Price ** - Fixed a bug where updating a combo item directly from the Order Summary used the wrong price (ignoring the combo). - We now open the **Combo Configurator** instead of the **Product Configurator** when editing a combo item from the Order Summary. --- When refreshing the page, we also lose the `free text` of the `custom_attribute_value`. By adding the model `product.attribute.custom.value` to the `get databaseTable()` from `DataServiceOptions`, we ensure that the records are saved in IndexedDB Forward-Port-Of: odoo/odoo#227097 Forward-Port-Of: odoo/odoo#221924
3 changes
Enhancements to existing features
Point of Sale users can now reopen configurable and combo products from an order line to adjust choices without starting over. Matching edited lines are merged automatically, prices are handled more reliably, and custom text selections are preserved after refreshes.
Original PR description
2 changes
Enhancements to existing features
Public website pages can now be cached after they are generated, helping them load faster for visitors and reducing server/database workload. Safeguards avoid caching pages that may contain dynamic or sensitive information, while allowing teams to customize cache behavior where needed.
3 changes
Enhancements to existing features
Product descriptions in the shopping cart are no longer shortened, so customers can see all important details before checkout. This reduces the risk of missing key information that may affect purchasing decisions.
Original PR description
In the `/cart` we were truncating the description to avoid it being to long. The issue is that the truncation might happen on a very important information in the description. Thus we decided to take the tradeoff and always show the full description. task-5026288 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
1 change
Enhancements to existing features
This update adds SUNAT refund reason 13 for Peruvian electronic credit notes. Businesses can now issue compliant credit notes when correcting outstanding payment amounts, due dates, or installment amounts.
Original PR description
In Peru, electronic invoicing requires refund reasons (motivos de nota de crédito) defined by SUNAT. The current implementation includes codes 01–12, but is missing code 13, which is mandatory in…
Task: [#4890396](https://www.odoo.com/odoo/my-tasks/4890396) Community PR: [#221924](https://github.com/odoo/odoo/pull/221924) --- Improves the POS experience by allowing users to reopen and edit…
Task: [#4890396](https://www.odoo.com/odoo/my-tasks/4890396) Community PR: [#221924](https://github.com/odoo/odoo/pull/221924) --- Improves the POS experience by allowing users to reopen and edit configurable and combo products directly from their orderlines. When a product is edited to match another existing line, the lines are automatically merged to avoid duplicates. - Introduced `useTimedPress` to support both click and long press interactions. - Reopening a configurator now pre-fills default attributes, custom values, and combo selections. - Removed click delay when selecting an orderline, improving responsiveness. - Extracted logic for configurator, combo choice, unit price computation, and orderline merging from `addProductToOrder` into dedicated functions (`tryMergeOrderline`, etc.) for reuse across the codebase. --- The Combo/Product Configurator popups no longer receive default values directly. Instead, they now work with the orderline passed as a prop. ** Combo Configurator Popup ** - Use `props.line.selectedComboIds` as the source for default values. - Save the initial `state.combo` so it can be restored on discard. - Add a **Discard** button in the popup footer. ** Product Configurator Popup ** - Use `props.line.selectedAttributes` for the default values. - If there is no orderline like new combo item, fall back to `props.comboItem?.saveStateAttributes`. - Save the initial `state.selectedAttributes` so it can be restored on discard. - Expose `selectedAttributes` on `pos.orderline` as a function so it can be recomputed at any time. ** Bug Fix: Price ** - Fixed a bug where updating a combo item directly from the Order Summary used the wrong price (ignoring the combo). - We now open the **Combo Configurator** instead of the **Product Configurator** when editing a combo item from the Order Summary. --- When refreshing the page, we also lose the `free text` of the `custom_attribute_value`. By adding the model `product.attribute.custom.value` to the `get databaseTable()` from `DataServiceOptions`, we ensure that the records are saved in IndexedDB Forward-Port-Of: odoo/odoo#221924
Point of Sale now cleans up internal record links more efficiently during bulk updates. This helps prevent slowdowns when sales sessions involve many related records, improving reliability for busy retail operations.
Original PR description
When the “set” command is used, we will manually clean up the indexes to avoid performance issues when there are too many associated records. Forward-Port-Of: odoo/odoo#226958 Forward-Port-Of: odoo/odoo#225854
Improves how draft, cancelled, and posted vendor bills are matched during Indian GST return reconciliation. This reduces missed or incorrect matches, helping businesses reconcile GST-2B data more accurately for the return period.
Original PR description
Before this PR: - `line_ids.tax_ids` filter was applied too early, excluding some valid draft/cancelled bills. - Bill reference and IRN checks were not consistently combined, leading to missed matches in reconciliation. - Posted bills could be incorrectly excluded when the reconciliation status was not considered properly. After this PR: - Refined domain grouping so `line_ids.tax_ids` and GST treatment checks only apply for posted bills. - Draft/cancelled bills are matched if they have a valid IRN or bill reference. - Posted bills require bill reference, tax, reconciliation status, and GST treatment checks for accurate matching. This ensures more reliable matching of draft bills with GST-2 B during the GST return period reconciliation.
The mobile point of sale now remembers the customer display chosen by the user and reopens it automatically the next time POS starts. This saves staff time and reduces repeated setup when using customer-facing screens.
Original PR description
- Save the selected display in cookie - Open the selected display automatically when open the PoS Forward-Port-Of: odoo/enterprise#94391
Adds US-specific Profit & Loss and Balance Sheet reports that follow GAAP expectations instead of the generic IFRS-based format. This helps US companies produce financial statements that better match local accounting standards, with supporting test updates to keep reporting checks stable.
Original PR description
The generic reports are based on International Financial Reporting Standards (IFRS) whereas the US expects reports based on Generally Accepted Accounting Principles (GAAP). This also includes some changes to the account_reports tests to avoid _init_options_variants() from automatically picking these new reports in the tour tests. task-5068369
Stock forecasts now calculate and show subscription-related quantities and orders per product. This gives teams a clearer view of expected demand from subscriptions, helping them plan inventory more accurately.
Original PR description
Update the stock forecast backend and frontend to support per-product computation and display of subscription quantities and orders. Task [4763124](https://www.odoo.com/odoo/project/966/tasks/4763124) odoo/odoo#212774
In Peru, electronic invoicing requires refund reasons (motivos de nota de crédito) defined by SUNAT. The current implementation includes codes 01–12, but is missing code 13, which is mandatory in some scenarios. **Before this PR** - Only refund reasons 01 to 12 are available in the selection field "Refund Reason" on credit notes. - Users cannot issue a credit note with reason 13: "Correction of the outstanding net amount to be paid and/or the due date(s) of the single payment or the installments and/or the amounts corresponding to each installment, if applicable." **After this PR** - Refund reason 13 is added to the selection field in `account.move`. - Users can issue credit notes with this refund reason, and the value is exported correctly in the XML according to SUNAT requirements. - Translation updated in `es_419.po`. This ensures that credit notes with this refund reason can be issued in compliance with SUNAT regulations. [Task](https://www.odoo.com/odoo/project/809/tasks/5091062)