Skip to main content
Simplify POS Access Management — A build-to-order Odoo module that governs exactly what each POS user can see and do — discou — 1/1Illustrative preview

A build-to-order Odoo module that governs exactly what each POS user can see and do

— discounts, refunds, price overrides, cash management and session controls — enforced at the register, not just on paper.

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

What is Simplify POS Access Management?

A build-to-order Odoo module that governs exactly what each POS user can see and do — discounts, refunds, price overrides, cash management and session controls — enforced at the register, not just on paper. ECOSIRE scopes, builds, installs and supports it on 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

Granular POS access groups defined via the module's security/ folder and ir.model.access.csv, extending Odoo's group_pos_user / group_pos_manager beyond the native two-tier model
Per-group maximum discount percentage enforced at the register, so a cashier cannot exceed a configured manual-discount ceiling
Refund and return gating — a 'can refund' permission that hides or disables the refund flow for unauthorized users
Line-void and order-delete restrictions preventing removal of scanned lines or validated orders without rights
Price-override control that blocks manual unit-price edits unless the user's group allows it
Cash-drawer and cash-in/cash-out operation permissions, plus optional restriction of the money-details / closing-count screen
Session control rights: who may open, resume, close and validate a pos.session, enforced server-side on pos.session
Manager-PIN / override prompt that requires an authorized approval before a gated action (discount above threshold, refund, void) completes
Dual-layer enforcement: OWL front-end hides/disables controls for UX, with an authoritative @api.constrains server check on pos.order so JSON-RPC calls cannot bypass it
ir.rule record rules scoping managers to their own store/company sessions, orders and registers in multi-store setups
Audit-log model capturing overrides, large discounts and manager approvals with user, timestamp and amount for accountability
Threshold-based Odoo automated action / server action that notifies a supervisor by email when a limit is crossed
Inherited XML form views to configure the permission matrix per POS user group directly in Settings, no code edits per change
Packaged as an upgrade-safe module with its own __manifest__.py, versioned and tested for Odoo 17.0, 18.0 and 19.0 on Community and Enterprise

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 retail and hospitality teams discover the same gap the hard way: the Point of Sale is where money actually changes hands, yet Odoo out of the box gives nearly every cashier the same power at the register. A junior staffer can apply an unlimited manual discount, reopen a validated order, override a product price, delete a line, or pull cash from the drawer — and by the time it surfaces in an end-of-day report, the shrinkage has already happened. Odoo core does ship a two-tier POS security model (point_of_sale.group_pos_user and point_of_sale.group_pos_manager), but that binary distinction runs out of road quickly: it is essentially store-wide, not per-till or per-role, and it cannot express rules like "this cashier may discount up to 10% but never issue refunds" or "only a shift supervisor may reprint a receipt or change a price."

This is a made-to-order module that ECOSIRE builds specifically for your operation to close that gap. The foundation is Odoo's own security layer used properly: we define granular access groups in the module's security/ folder, wire them through ir.model.access.csv for model-level create/read/write/unlink rights, and add ir.rule record rules so managers only see the sessions, orders and registers that belong to their own store or company. On top of that we extend the POS itself — the OWL-based front-end and the pos.order, pos.session and pos.config server models — so a permission is not just a database ACL but a real gate at the register: buttons are hidden or disabled, an action is blocked, or a manager PIN/override is required before the sale can continue.

Technically, the enforcement lives on both sides of the wire. New boolean and numeric permission fields (for example a per-group maximum discount percentage, a "can refund", "can void line", "can change price", "can open cash drawer" or "can validate session" flag) are declared with fields on the relevant models and exposed through inheriting form views in XML. The POS front-end reads these on session load and enforces them client-side for a smooth cashier experience, while a @api.constrains / server-side check on pos.order validation is the authoritative backstop so nothing can be bypassed by a crafted JSON-RPC call. Sensitive events (an override, a large discount, a manager approval) are written to a lightweight audit log model so you get an accountable trail, and can be surfaced in a QWeb report or an Odoo automated action that emails a supervisor when a threshold is crossed. Everything is packaged as a clean, upgrade-safe module with its own __manifest__.py, versioned for Odoo 17.0, 18.0 or 19.0, and works on both Community and Enterprise (POS restrictions apply the same way; we flag any Enterprise-only touchpoints during scoping).

Because this is build-to-order, delivery starts with a short scoping call to map your roles, tills and the exact operations you want gated, followed by a fixed written quote. We then build against your target Odoo version, deliver and test on a staging database with your real permission matrix (UAT), and only then install on production with a rollback plan. Typical delivery is one working week from confirmed scope, depending on how many roles and edge cases are involved. Pricing starts from $999 (indicative, single-company base scope); multi-company or multi-store rollouts, deep custom permission matrices, and integration with existing loyalty, gift-card or manager-approval workflows increase the quoted scope.

What you get

  • Installable source code for your version of the module, built against your target Odoo 17.0/18.0/19.0
  • Installation and configuration on your environment, including the initial permission matrix wired to your roles and tills
  • Technical documentation: models, permission fields, security groups, ir.rule record rules and extension points
  • User guide plus a live training session for managers and administrators on configuring and using the access controls
  • UAT on a staging database with your real role/till matrix, plus a documented rollback plan before production go-live
  • Post-go-live support window for defect fixes and configuration adjustments
  • Git repository handover with full commit history and README
  • Compatibility notes covering Community vs Enterprise and any version-specific POS touchpoints

Who this is for

Multi-store retail operations manager

Runs several branches on one Odoo database and needs each store's supervisors to manage only their own tills and sessions, with cashiers unable to discount, refund or void beyond set limits. Wants an audit trail to explain end-of-day variances.

Hospitality / restaurant owner

Has high staff turnover and fast-moving service where price overrides and comped items are common. Needs manager-PIN approval on discounts, voids and refunds so shrinkage is controlled without slowing the line.

Finance / loss-prevention lead

Cares about accountability: who approved what, how large the discount was, and whether cash-drawer access is restricted. Wants override events logged and threshold breaches emailed automatically.

Odoo administrator / IT lead

Owns the Odoo instance and wants a clean, upgrade-safe module using standard security groups, ir.model.access.csv and record rules — not brittle studio hacks — with source, docs and a git handover they can maintain.

How Simplify POS Access Management Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Permission granularityPer-role, per-till limits (discount %, refund, void, price, cash, session) tailored to youWhatever you spec and can build in-houseFixed set of toggles, rarely matches your exact matrixTwo tiers only: POS user vs POS manager, store-wide
Enforcement strengthFront-end UX gating plus authoritative server-side @api.constrains backstopDepends on your engineering rigorOften front-end only; bypassable via RPC in weaker onesCoarse group-based ACLs, no per-action POS gating
Multi-store scopingir.rule record rules scope managers to their own store/companyBuildable but must be designed and tested by youUsually global, limited multi-store awarenessNo per-store manager scoping at the POS level
Audit & alertsOverride/discount audit log plus threshold email via automated actionOnly if you build and maintain itRarely included or basicNo dedicated override audit trail
Fit to your workflowScoped to your roles, approvals and integrations before a line is writtenFull control, but you own all the design decisionsYou adapt your process to the app's assumptionsYou live within core's two-tier model
Ownership & maintenanceFull source, git handover, docs, upgrade-safe manifest, support windowYou own everything, including the maintenance burdenVendor-controlled; you wait for their release cycleMaintained by core, but not extensible without dev
Version coverageBuilt and tested for your Odoo 17.0/18.0/19.0, Community or EnterpriseWhatever you target and validateVersion support varies; upgrades may lagShips with the version you run
Total cost & riskIndicative from $999, fixed quote after scoping, UAT and rollback planUnbounded dev time and QA costLow sticker price, but gaps and rework riskFree, but the control gap stays unsolved

Frequently Asked Questions about Simplify POS Access Management

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

No. This is a build-to-order module. ECOSIRE builds it specifically for your roles, tills and operations, then installs and supports it. There is no instant download — you request a quotation, we scope it, and we deliver a tested module for your Odoo version.

How long does delivery take?

Typical delivery is one working week from confirmed scope. The timeline depends on how many roles, stores and gated operations are involved and whether it must integrate with existing loyalty, gift-card or approval workflows. We agree the exact schedule with you at the end of the scoping call.

How does pricing and scoping work?

Pricing starts from $999 (indicative, single-company base scope). After a short scoping call we send a fixed written quote — no surprise costs. Drivers like multi-company/multi-store rollouts, deep custom permission matrices and third-party integrations increase the quoted scope.

Which Odoo versions and editions are supported?

We build for Odoo 17.0, 18.0 or 19.0, targeting the version you run. It works on both Community and Enterprise — POS access restrictions apply the same way. We flag any Enterprise-only touchpoints during scoping so there are no surprises.

What about support and future updates?

Every build includes a post-go-live support window for defect fixes and configuration adjustments. Because you receive the full source and git repository, you can maintain it yourself, and we offer paid support or a version upgrade when you move to a newer Odoo release.

Can a cashier bypass the restrictions with a direct API call?

No. The controls are enforced on two layers. The OWL front-end hides or disables buttons for a clean cashier experience, but the authoritative check runs server-side on pos.order validation via @api.constrains, plus ir.model.access.csv and ir.rule record rules — so a crafted JSON-RPC/XML-RPC request cannot get past the gate.

Can different roles have different limits, like discount ceilings per group?

Yes. That is the core of the module. Each POS user group gets its own permission set — for example a maximum discount percentage, whether it can refund, void lines, override prices, open the cash drawer or validate a session — all configurable from Settings without code changes once delivered.

Request a quote

Simplify POS Access Management

A build-to-order Odoo module that governs exactly what each POS user can see and do — discounts, refunds, price overrides, cash management and session controls — enforced at the register, not just on paper. ECOSIRE scopes, builds, installs and supports it on your Odoo 17/18/19.

  • Granular POS access groups defined via the module's security/ folder and ir.model.access.csv, extending Odoo's group_pos_user / group_pos_manager beyond the native two-tier model
  • Per-group maximum discount percentage enforced at the register, so a cashier cannot exceed a configured manual-discount ceiling
  • Refund and return gating — a 'can refund' permission that hides or disables the refund flow for unauthorized users
  • Line-void and order-delete restrictions preventing removal of scanned lines or validated orders without rights

Request a Quotation

Tell us about your Simplify POS Access Management 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.