Skip to main content
POS Access Rights by Employee — A build-to-order Odoo Point of Sale module that gates POS functionality — discounts, price ed — 1/1Illustrative preview

A build-to-order Odoo Point of Sale module that gates POS functionality

— discounts, price edits, refunds, voids, session close and more — per employee role.

ECOSIRE scopes, builds, installs, and supports it for your Odoo 17/18/19.

What is POS Access Rights by Employee?

A build-to-order Odoo Point of Sale module that gates POS functionality — discounts, price edits, refunds, voids, session close and more — per employee role. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17/18/19. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Per-employee and per-role permission profiles modeled as fields on `hr.employee` plus an optional reusable `pos.access.profile` model
Granular capability toggles: apply discount, edit unit price, void/remove order line, delete order, process refund, reprint receipt, open cash drawer, change customer, close session, view session totals
Server-side enforcement via `ir.model.access.csv` and record rules so blocked actions cannot be bypassed through `JSON-RPC`/`XML-RPC` calls
OWL point-of-sale component extensions that hide or disable unauthorized buttons rather than letting them fail silently
Manager/supervisor override flow using a standard PIN challenge for one-off exception approvals
Permission set resolved at cashier login via the Odoo employee PIN (`pos_hr` employee mode)
Optional discount ceiling per role (e.g. cashier max 10%, shift lead max 25%) enforced before the line is committed
Audit logging of gated attempts and manager overrides via a lightweight model and/or automated actions
Back-office configuration views (XML) to assign profiles to employees without touching code
`@api.depends` computed permission resolution where a right is derived from a profile rather than stored redundantly
Edition-aware build handling Community vs Enterprise POS differences (restaurant, loyalty, and Enterprise-only flows)
Clean `__manifest__.py` with pinned `point_of_sale`/`pos_hr` dependencies and no undeclared side effects
Multi-shop / multi-company aware permission matrices where required (scoped as an add-on)
Built and regression-tested against Odoo 17.0, 18.0, and 19.0

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

Odoo Compatibility
Odoo 17, Odoo 18, Odoo 19
Editions
Enterprise & Community
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
PostgreSQL 12+

About this Product

Most retailers hit the same wall a few weeks after go-live: the Odoo POS is a single trusted surface where any logged-in cashier can apply a discount, override a price, delete an order line, refund a paid receipt, or close the session and see the day's totals. Odoo core gives you a POS access group and a per-user cashier PIN, but it has no concept of "this cashier may sell but not discount" or "only a shift lead may process refunds." Once shrinkage, unauthorized markdowns, or end-of-day discrepancies start showing up, managers are left reconciling the damage after the fact instead of preventing it at the register. This is where the native model runs out of road — the granularity you need lives below the level Odoo exposes out of the box.

POS Access Rights by Employee is a made-to-order module ECOSIRE builds to close that gap. We introduce role-driven permission flags — modeled as boolean and selection fields on hr.employee and/or a dedicated pos.access.profile model, secured through ir.model.access.csv and record rules — that map each capability (apply discount, edit unit price, remove/void a line, delete a whole order, issue a refund, reprint a receipt, open the cash drawer, apply a manual loyalty adjustment, change customer, close the session, view session totals) to an employee or a reusable profile. The POS front end is where it becomes real: we extend the OWL point-of-sale components and patch the relevant action handlers so a blocked action is either hidden, disabled, or gated behind a manager-approval popup, rather than silently failing. Because Odoo evaluates the cashier at login via the employee PIN, the correct permission set loads the moment a cashier signs into the session, and every gated attempt can be written to a log for later review.

Technically, the module ships as a clean __manifest__.py with pinned dependencies on point_of_sale (and pos_hr where employee-mode is used), server-side models with @api.depends computes where a permission is derived rather than stored, XML/OWL view extensions for the POS UI plus back-office configuration views, and optional automated actions or a lightweight audit model to record overrides. Where a manager override is required, we implement the standard supervisor-PIN challenge so an authorized employee can approve a one-off exception without handing over their own session. Everything is enforced on the server side as well as the client, so the rules cannot be bypassed by a crafted JSON-RPC call — the UI gating is convenience, the record rules and access CSV are the real boundary. We build and validate against Odoo 17.0, 18.0, and 19.0, and we account for Community vs Enterprise differences (for example, Enterprise-only POS features such as certain restaurant/loyalty flows) so the permission surface matches exactly what your edition actually exposes.

Delivery is build-to-order: nothing is downloaded off the shelf. It starts with a short scoping call to map your roles to concrete POS capabilities, confirm your edition and version, and agree on override behavior. We then build your version, validate it through UAT on a staging database, and install it on production with a documented rollback plan. Typical delivery is one working week from confirmed scope, depending on how many roles and edge cases you need. Pricing starts from $999 (indicative, single-company base scope); additional roles, multi-company or multi-shop permission matrices, deeper audit/reporting requirements, and integrations with existing HR or loyalty customizations increase the quoted scope.

What you get

  • Installable source code for your version of the module, targeted to your Odoo 17.0/18.0/19.0 and edition
  • Installation and configuration on your environment, including profile-to-employee assignment
  • Technical documentation: models, fields, access rules, and extension points
  • End-user guide plus a live training session for POS managers and administrators
  • Post-go-live support window for defect fixes and configuration adjustments
  • UAT on a staging database with a documented, tested rollback plan before production install
  • Git repository handover with full commit history and tagged release
  • Configuration matrix mapping your roles to enabled POS capabilities

Who this is for

Multi-store retail operations manager

Runs several POS-driven shops on Odoo and needs consistent, role-based limits on discounts, refunds and voids so shrinkage and unauthorized markdowns are prevented at the register, not caught in month-end reconciliation.

Odoo administrator / internal IT lead

Owns the Odoo instance and wants permission logic enforced server-side through access rules and record rules — not just hidden buttons — so it survives upgrades and can't be bypassed via the RPC API.

Finance / loss-prevention controller

Needs an auditable trail of who was allowed to discount, refund, or override, with per-role ceilings, to satisfy internal controls and investigate discrepancies with evidence.

Hospitality / franchise operator

Runs high-turnover shifts with mixed-trust staff and shift leads, and needs a fast manager-PIN override so authorized exceptions are quick but every gated action is still logged.

How POS Access Rights by Employee Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Permission granularityPer-capability, per-role or per-employee across discounts, refunds, voids, session close and moreWhatever you build, if in-house Odoo skills existFixed set of toggles the vendor choseSingle POS access group + cashier PIN; no per-action control
Enforcement layerServer-side access CSV + record rules, plus UI gatingDepends on developer disciplineOften UI-only; RPC bypass possibleCoarse group-level only
Fit to your rolesScoped to your exact role map in a scoping callFully bespoke but you own all effortGeneric; you adapt to its modelNo role concept beyond cashier/manager
Manager overrideSupervisor-PIN approval flow, loggedBuild it yourselfSometimes included, behavior variesNot available
Audit trailLogs gated attempts and overridesOnly if you implement itRarely includedNone
Version & edition supportBuilt/tested for 17/18/19, Community & EnterpriseYou maintain across versionsWhatever the listing states; may lagShips with core, no extra work
Ownership & lock-inFull source + git repo handed overYou own it fullyVendor-controlled, licensed binaryN/A
Support modelPost-go-live window + quoted upgradesSelf-supported or ad-hocVendor tickets, variable SLAsCommunity/Enterprise support, no custom logic

Frequently Asked Questions about POS Access Rights by Employee

Is this an existing app I can download and install today?

No. This is a build-to-order module. ECOSIRE scopes it to your roles, edition and version, then builds, tests and installs it for you. There is no instant download — you receive installable source code for your specific version once it's built.

How long does delivery take?

Typical delivery is one working week from confirmed scope. Simple single-shop, few-role setups land toward the shorter end; multi-company permission matrices, deep audit requirements, or integrations with existing customizations move it toward the longer end. We commit to a timeline in the fixed quote after the scoping call.

How does pricing and scoping work?

Pricing starts from $999 as an indicative single-company base scope. After a short scoping call we send a fixed written quote. Drivers that increase scope include the number of roles, multi-company/multi-shop matrices, discount-ceiling logic, audit and reporting depth, and integration with your existing HR or loyalty customizations.

Will these permissions actually stop a determined user, or just hide buttons?

Both layers are enforced. The POS UI hides or disables unauthorized actions for convenience, but the real boundary is server-side: `ir.model.access.csv` and record rules mean a blocked action is rejected even if attempted through a crafted `JSON-RPC`/`XML-RPC` call.

Which Odoo versions and editions do you support?

We build and regression-test against Odoo 17.0, 18.0 and 19.0, on both Community and Enterprise. During scoping we confirm your edition so the permission surface matches exactly what your POS exposes — including Enterprise-only restaurant and loyalty flows where relevant.

What about support and future Odoo updates?

Every build includes a post-go-live support window for defect fixes and configuration adjustments. Upgrades to a newer major Odoo version, or new capabilities beyond the delivered scope, are handled as a separate quoted engagement — you own the source and the git repository, so you're never locked in.

Can a manager override a block when a genuine exception is needed?

Yes. We implement a supervisor-PIN override flow so an authorized employee can approve a one-off exception in the cashier's session without handing over their own login. Each override is logged, so exceptions remain auditable.

Request a quote

POS Access Rights by Employee

A build-to-order Odoo Point of Sale module that gates POS functionality — discounts, price edits, refunds, voids, session close and more — per employee role. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17/18/19.

  • Per-employee and per-role permission profiles modeled as fields on `hr.employee` plus an optional reusable `pos.access.profile` model
  • Granular capability toggles: apply discount, edit unit price, void/remove order line, delete order, process refund, reprint receipt, open cash drawer, change customer, close session, view session totals
  • Server-side enforcement via `ir.model.access.csv` and record rules so blocked actions cannot be bypassed through `JSON-RPC`/`XML-RPC` calls
  • OWL point-of-sale component extensions that hide or disable unauthorized buttons rather than letting them fail silently

Request a Quotation

Tell us about your POS Access Rights by Employee requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.