
POS Keyboard Shortcuts
Reusable keyboard-shortcut profiles for the Point of Sale, shared across registers, with per-payment-method keys and an on-screen cheat sheet.
Available for Odoo 17.0, Odoo 18.0, Odoo 19.0. Technical name bambooforge_pos_hotkeys.
POS Keyboard Shortcuts
Overview
BambooForge POS Hotkeys lets cashiers drive the Odoo Point of Sale from the keyboard. You define a shortcut profile once and reuse it on every register, assign a key to each payment method, and press-and-hold a modifier to see an on-screen cheat-sheet of every shortcut available on the current screen.
It solves two things the built-in POS and older shortcut add-ons do not:
Reuse. One profile can be shared by any number of registers. Change it once and every register that uses it follows — no more re-typing the same keys shop by shop.
Duplicate payment methods. The shortcut key lives on the payment method itself, so a register with several cash methods or several bank methods gives each one its own key. Older solutions only bound the first method of a kind.
The dispatcher is written with the native POS component API (OWL), not DOM tricks, so it keeps working when you reskin or extend the Point of Sale.
Requirements
Odoo 17.0.
The Point of Sale application (point_of_sale). No other dependency.
Installation
Copy bambooforge_pos_hotkeys into your addons path.
Update the apps list (Apps → Update Apps List).
Search for BambooForge POS Hotkeys and click Install.
A ready-to-use profile named Default Shortcuts is created on install.
Configuration
Enable the feature per register
Go to Point of Sale → Configuration → Settings.
Pick the register at the top of the page.
Turn on Keyboard Shortcuts and choose a Shortcut Profile (the shipped Default Shortcuts is selected by default).
Save.
Reuse a profile on several registers
Open the same profile on each register's settings, or select it in Point of Sale → Configuration → Hotkey Profiles and see every register that uses it in the Used by registers field. Editing the profile updates all of them at once.
Assign keys to payment methods
Go to Point of Sale → Configuration → Payment Methods.
Open a method and set POS Shortcut Key (e.g. C for Cash, B for Bank).
Give a different key to every method used on the same register.
Use letters for payment keys — digits are reserved for typing the amount on the payment screen.
Using the shortcuts
On each screen, press the configured key to run its action (go to payment, select customer, search, quantity/discount/price mode, print, …).
Hold Ctrl at any time to show the cheat-sheet of shortcuts for the current screen; release to hide it.
On the payment screen, press a payment method's key to add that payment line.
Troubleshooting
Shortcuts do nothing
Check that Keyboard Shortcuts is enabled for this register and a profile is selected, then close and reopen the POS session so the new configuration is loaded.
A key does nothing on one screen but works on another
Shortcuts are per screen. Make sure the action you expect exists on that screen (for example, Print Receipt only applies to the receipt screen).
Digits do not select a payment method
That is by design: on the payment screen digits type the tendered amount. Use a letter as the payment method's key.
A shortcut clashes with the browser (F5, F11, F12, …)
The browser reserves some function keys. Avoid F1, F5, F11 and F12; the defaults use safe keys only.
Typing in a search box triggers a shortcut
It should not — shortcuts are ignored while the focus is in a text field. If you still see it, click once outside the field and retry.
The cheat-sheet does not appear
Hold the Ctrl key (do not tap it). It only shows while the key is held and only when the register has shortcuts enabled.
After changing the profile nothing changed in the POS
The POS loads its configuration when a session opens. Close the session and reopen it, or reload the POS tab.
Frequently asked questions
Can several registers share one profile? Yes — that is the point. Select the same profile on each register.
Can I have per-register keys too? Payment-method keys are per method (shared through the method). Screen action keys come from the profile; make a second profile if a register needs different action keys.
Does it work with two cash or two bank methods? Yes. Each method carries its own key, so every method on a register is reachable.
Will it survive a POS theme or another POS add-on? Yes. It calls the POS component API rather than clicking DOM elements, so a reskin does not break it.
Limits
Shortcuts apply to the product, payment, receipt and customer screens.
Function keys reserved by the browser cannot be captured.
The cheat-sheet lists shortcuts for the current screen only.
Support
This app is designed to run without vendor support: the steps above cover setup, daily use and every common issue. For licensing questions contact support@bambooforge.dev.
Upgrading & version compatibility
This build targets Odoo 18.0. Each Odoo major series (17.0, 18.0, 19.0) has its own dedicated build of this module — always install the build that matches your Odoo version. Mixing a build with a different Odoo series is not supported.
Patch upgrades (same series, e.g. 18.0.1.0.0 → later)
Back up your database and filestore first.
Replace the module folder with the newer build.
Restart Odoo with the module updated:
./odoo-bin -c your.conf -u bambooforge_pos_hotkeys -d your_db
Odoo applies any schema/data changes automatically. Your existing records and configuration are preserved.
Cross-version migration (e.g. Odoo 17 → 18)
Upgrading Odoo itself is a database migration handled by Odoo's standard upgrade tooling. When you migrate the database to the next Odoo series, install the matching build of this module for that series. Data created by this module carries over with the database migration.
Uninstallation
You can remove this module at any time from Apps → (this module) → Uninstall, or from the command line. Uninstalling is clean and reversible by reinstalling — but note what is and is not deleted.
What is removed
The module's own tables and every record in them (1 model, prefixed bf.*) — this is the data this module created.
The menus, actions, views and reports this module installed.
What is preserved
Your standard Odoo data (partners, products, sales, invoices, inventory moves) is not deleted — this module only reads and annotates it; the underlying records stay.
Attachments and chatter messages on standard records are kept.
As always, take a database backup before uninstalling in production.
Changelog
18.0.1.0.0
Current release for Odoo 18.0. This build includes:
Reusable keyboard-shortcut profiles for Odoo POS. Share one profile across every register, per-payment-method keys (works with multiple cash/bank methods), and an on-screen cheat-sheet. OWL-native, no jQuery.
Feature additions and fixes ship as new builds on the Odoo Apps store; this page and the module's version reflect the current published release. Always keep the build matched to your Odoo series (see Upgrading & version compatibility).
Screens



