Give every cashier exactly the access they need and nothing more
Define reusable POS Access Roles, assign them to users and employees, and enforce payment, discount, refund and pricing permissions live at the register — with instant on-screen feedback and manager overrides when staff need an exception.
The problem
Out of the box, every Odoo POS cashier can apply discounts, issue refunds, delete order lines, override unit prices and browse the full customer list. In cash-heavy, high-turnover retail and hospitality stores, that all-or-nothing access is a direct source of shrinkage — unauthorized discounts and friendly refunds are among the most common ways margin leaks at the register.
The solution
POS Access Rights adds a first-class role model with a visual permission matrix. Build role templates once, assign them to users and employees, and the two levels combine most-restrictive-wins at checkout — so the same login can show different capabilities for every cashier who signs in.
Everything you need to lock down the register
Every capability below is implemented in the module.
Visual Permission Matrix
A single list view shows every role against every permission as boolean toggles, so you can answer "who can issue refunds?" in one glance instead of opening user records one by one.
Role Templates & One-Click Duplication
Trainee, Cashier, Senior Cashier and Shift Manager templates ship ready to use. Duplicate any role in one click as the starting point for a new one instead of re-entering permissions by hand.
Dual-Level Enforcement
Assign a role to the Odoo user and to the employee/cashier at the same time. The two are combined most-restrictive-wins, so a manager logging in as different cashiers always sees the right capabilities.
Payment & Capped Discount Control
Disable the Pay button entirely for a role, or allow discounting only up to a per-role maximum percentage — enforced live on the numpad, not just hidden in the UI.
Refund & Order-Line Protection
Block refund processing and order-line removal for roles that should not have them, closing two of the most common register-level fraud paths.
Price, Quantity & Customer Guards
Lock the numpad's Price and Qty modes so only trusted roles override a unit price or change a quantity, and hide the customer-select button for roles that should not browse the customer list.
On-Screen "Why Is This Blocked" Feedback
Restricted buttons never just vanish. A clear notification explains that the action is restricted for the cashier's role, ending the confusion of silently missing controls.
Manager Override In The Moment
A blocked cashier can ask any manager-role employee to authorize the action on the spot, so a restricted register is never fully stuck — without removing the restriction for everyone else.
Full Audit Trail
Every blocked or overridden action is logged with the cashier, effective role and outcome, and every permission change on a role is tracked in its chatter history.
How it works
Create roles
Use the four ready-made templates or build your own POS Access Roles with the exact payment, discount, refund and pricing permissions you need.
Assign to users & employees
Link a role to backend users and to employees/cashiers so both the login and the cashier context are protected.
Turn it on at the register
Enable Restrict POS Access on any point of sale, pick a default role and choose whether manager override is allowed.
Cashiers work, you stay covered
Restricted actions are blocked in real time with a clear explanation, an optional manager override, and every attempt recorded in the audit log.
Frequently asked
No sales fog. If your question isn't here, email us and we'll answer it the same way.
Yes. You can assign a role to an Odoo user, to an employee/cashier, or to both. When both are set, the two roles combine and the most restrictive setting always wins.
Buy it on the Odoo App Store
Purchase, download and install directly from the official Odoo Apps Store — you'll always get the latest supported build.
POS Access Rights - Role-Based Feature Control
Role templates and a visual permission matrix that lock discounts, refunds, price overrides and customer data at the register — enforced on the server, not just hidden in the UI.
Buy on Odoo App Store