Skip to Content
Catalog / POS · Point of Sale / POS: Search Products on Enter
POS: Search Products on Enter
pos_search_on_enter

POS: Search Products on Enter

Keep the POS responsive on huge catalogs by searching only when the cashier hits Enter

v19.0.1.0.0 AlshayebCo Point of Sale

Frontend-only Odoo 19 POS module (no Python models, no security, no controllers, no data). Defines EnterSearchInput extending the core POS Input component (@point_of_sale/app/components/inputs/input/input); setValue writes to a local useState buffer instead of the tModel target so no reactive re-filter fires per keystroke, while an added t-on-keydown commits the live DOM value via super.setValue on Enter. getValue re-reads the model each render to adopt external resets (searchProductWord cleared on order change/done), and setValue('') commits immediately to restore the grid. Registered into Navbar.components and PartnerList.components. Three OWL templates: a primary inherit of point_of_sale.input adding the keydown handler, plus extension inherits of point_of_sale.Navbar (product search, tModel [pos, 'searchProductWord']) and point_of_sale.PartnerList (customer search, tModel [state, 'query']) that swap the core Input for EnterSearchInput. Loaded via the point_of_sale._assets_pos bundle.

Overview

On Point of Sale terminals loaded with very large catalogs, the default search-as-you-type bar re-filters the product grid on every single keystroke, which can freeze the screen and slow down checkout. This module changes the product search bar and the customer search dialog so typing only fills a local buffer, and the actual filtering runs once when the cashier presses Enter (or instantly when the field is cleared with the X icon). The result is a smooth, lag-free POS experience even on terminals serving tens of thousands of products.

Key Features

  • Defers POS product search so filtering runs only when the cashier presses Enter instead of on every keystroke.
  • Applies the same press-Enter behavior to the Choose Customer search dialog so partner lookups stay fast.
  • Eliminates per-keystroke UI freezes on terminals with very large catalogs (tested at ~36k products).
  • Clearing the search field with the X icon instantly restores the full product grid, no Enter required.
  • Stays in sync with the POS automatically when the search box is reset on order change or order completion.
  • Preserves the built-in remote customer lookup so customers stored on the server still load on the same Enter press.
  • Pure frontend module with no new database models, configuration screens, or access rules to manage.
  • Drops in on top of standard point_of_sale with no changes to existing POS workflows.

Technical Details

Technical Name pos_search_on_enter
Version 19.0.1.0.0
License LGPL-3
Domain POS · Point of Sale

Security

No security configuration is needed. The module is frontend-only (OWL/JavaScript in the POS assets bundle) and adds no models, so it relies entirely on the existing Point of Sale access rights; any user who can already operate the POS uses it transparently.

Dependencies

point_of_sale