Sell faster with keyboard shortcuts in Point of Sale
Reusable shortcut profiles for every register, a key for each payment method (even several cash or bank methods), and a hold-to-show cheat-sheet — all OWL-native so it survives themes and add-ons.
From product to payment without touching the mouse
A quick walkthrough of shortcuts, payment keys and the cheat-sheet.
What you get
Reusable profiles
Define keys once. Point every register at the same profile and edit them all in one place. New registers inherit a shipped Default Shortcuts profile automatically.
Per-method payment keys
The key lives on the payment method, so two cash or two bank methods each get their own shortcut. No more "only the first one works".
Every screen covered
Product, payment, receipt and customer screens: go to payment, pick a customer, search, quantity/discount/price, refund, print, next order and more.
Hold-to-show cheat-sheet
Hold Ctrl to see every shortcut for the current screen. New cashiers learn
in minutes; release to hide.
Reskin-safe by design
Shortcuts call the POS component API, not fragile DOM selectors, so a theme or another POS add-on will not break them.
Clean & reversible
Full OPL-1 source, safe uninstall, no external services. Works on Community and Enterprise.
A closer look
Why this one
| Capability | Older shortcut add-ons | BambooForge POS Hotkeys |
|---|---|---|
| Reuse one profile on many registers | ✗ | |
| A key for every payment method (duplicates too) | first only | |
| Survives a POS reskin / other add-ons | breaks on DOM change | |
| On-screen cheat-sheet | ✗ | |
| No jQuery / native OWL | ✗ |
Questions
Can several registers share one profile?
Yes — select the same profile on each register. That is the headline feature.
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 break if I install a POS theme?
No. It uses the POS component API rather than clicking DOM elements.
Community or Enterprise?
Both. It only depends on the Point of Sale app.
BambooForge Labs · OPL-1 · bambooforge.labs@gmail.com
BambooForge POS Hotkeys — Keyboard Shortcuts for POS
- Overview
- Requirements
- Installation
- Configuration
- Using the shortcuts
- Troubleshooting
- Shortcuts do nothing
- A key does nothing on one screen but works on another
- Two actions share a key
- Two payment methods share a key
- Digits do not select a payment method
- A shortcut clashes with the browser (F5, F11, F12, …)
- Typing in a search box triggers a shortcut
- The cheat-sheet does not appear
- After changing the profile nothing changed in the POS
- Frequently asked questions
- Limits
- Support
- Upgrading & version compatibility
- Uninstallation
- Changelog
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 bambooforge.labs@gmail.com.
Upgrading & version compatibility
This build targets Odoo 17.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. 17.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
17.0.1.0.0
Current release for Odoo 17.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).
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module