eb805e85f4a3bb7113c67feeb1d7101714bd4238
Test case: ~ 16 000 products and using a pricelist with a fixed price for all products (so ~16 000 pricelist_item). To reproduce: Open PoS and add an item to the order -> Very slow and not responsive: ~5 seconds to do the operation & around 2 minutes to fully load the PoS. Issue: `get_price` JS method is called several times and is a bit slow (~200ms). Mostly because of the linear search in the pricelist to check if the product does match. Note that the function is called once per ProductItem rendered. Each time a product is added to the order the rendering is refreshed for all ProductItem displayed. So the performance impact is significant if several of them are displayed. To solve: As the pricelist per Product.id is constant, we store the possible applied pricelist records on the product itself. After this commit: Order does take a few milliseconds to be added (2 ms VS 200ms) Other notes: A. With the current OWL version, it is not possible to force the render on only some of the ProductItem. A more appropriate fix could be done with "fine-grained reactivity" using a more recent OWL version B. It was thought to store/cache the price value on the ProductItem itself. It does have its share of disadvantages (no check if the pricelist time period did start/end, etc.). Either way, with that being implemented, the PoS was still a bit slow (because of the 200ms per `_get_price` call) OPW-2826122 closes odoo/odoo#90245 X-original-commit: 6f0bfb36a11e52e20b90ca85fc8847faadcdc95e Signed-off-by: Trinh Jacky (trj) <trj@odoo.com> Signed-off-by: Masereel Pierre <pim@odoo.com>
Odoo
Odoo is a suite of web based open source business apps.
The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Warehouse Management, Project Management, Billing & Accounting, Point of Sale, Human Resources, Marketing, Manufacturing, ...
Odoo Apps can be used as stand-alone applications, but they also integrate seamlessly so you get a full-featured Open Source ERP when you install several Apps.
Getting started with Odoo
For a standard installation please follow the Setup instructions from the documentation.
To learn the software, we recommend the Odoo eLearning, or Scale-up, the business game. Developers can start with the developer tutorials
Languages
Python
49.6%
JavaScript
47.8%
SCSS
2%
CSS
0.3%
HTML
0.2%