Dear Odoo Community,
I'm seeking assistance in upgrading a custom Point of Sale (POS) module from Odoo 16 to Odoo 18. This module introduces several customizations to the POS interface, primarily focusing on displaying product quantities and enhancing the user experience. Due to the substantial changes in the POS architecture between Odoo 16 and 18, a direct upgrade isn't feasible.
Here's a brief overview of the module and the challenges I'm facing:
**Module Functionality:**
This module customizes the Odoo 16 POS by:
* Displaying product quantities on the product screen.
* Adding a "Clear All" button to clear the entire order.
* Adding a "Clear Line" button to remove individual order lines.
* Modifying the order receipt.
* Customizing the Partner Details Edit and Partner List screens.
**Key Files and Structure (Odoo 16):**
The module's structure in Odoo 16 is as follows:
* **Manifest:** (Included in the original post) Defines the module's dependencies, assets, and other metadata.
* **Views:** `views/product_view.xml` - Extends the product form view to potentially add fields related to quantity display (though the primary logic is likely in the JS).
* **Assets:** The `assets` section in the manifest includes:
* CSS: `pos_custom/static/src/css/*` - Custom CSS for styling.
* JavaScript: `pos_custom/static/src/js/*` - JS files handling the core logic for quantity display, button functionality, receipt modification, and partner screen customizations. Specifically:
* `clear_button.js`
* `clear_order_line.js`
* `OrderReceipt.js`
* `PartnerDetailsEdit.js`
* `ProductItem.js` (Likely the most crucial for quantity display)
* XML Templates: `pos_custom/static/src/xml/*` - QWeb templates used to override and extend existing POS components. These templates correspond to the JS files and modify the UI elements. Examples:
* `clear_button.xml`
* `clear_order_line.xml`
* `OrderReceipt.xml`
* `ProductItem.xml`
* `PartnerDetailsEdit.xml`
* `PartnerListScreen.xml`
**Challenges with Odoo 18 Upgrade:**
Odoo 18 has undergone significant changes in its POS architecture. Many of the classes, methods, and templates used in Odoo 16's POS have been refactored or replaced. This means that the existing JavaScript and XML code will likely be incompatible with Odoo 18. Specifically, I anticipate issues with:
* **Product Display:** The way products and their information (including quantities) are rendered and managed in the POS screen has likely changed. `ProductItem.js` and `ProductItem.xml` will need to be rewritten.
* **UI Component Changes:** The structure and names of UI components (buttons, screens, etc.) might be different, requiring updates to the XML templates and corresponding JavaScript files.
* **Backend API Changes:** If the module interacts with the backend (e.g., to fetch product quantities), the API endpoints and data structures might have been modified.
* **General POS Architecture:** The overall structure of the POS application and the way custom modules are integrated could be different.
**Request for Assistance:**
I would greatly appreciate any guidance or resources that could help me upgrade this module. Specifically, I'm looking for information on:
* **Key changes in Odoo 18's POS architecture.**
* **Migration guides or best practices for upgrading POS customizations.**
* **Examples of how to achieve similar functionality in Odoo 18's POS.**
* **Any potential compatibility layers or tools that might simplify the upgrade process.**