Restrict, log, and restore every POS order deletion

Server-authoritative delete controls for Odoo Point of Sale: role-based policies, a tamper-evident audit log, one-click restore, and self-service access requests — so managers stay in control without slowing down the till.

The problem

Cashiers can delete completed orders or wipe order lines with no oversight and no trail, letting theft and cash discrepancies go unnoticed — while a single mis-tap under pressure destroys a legitimate sale and forces the customer to start over.

The solution

POS Order Deletion Control enforces delete permissions on the server, records every attempt — blocked or successful — in a tamper-evident audit log, and lets managers restore a deleted order or approve a cashier's access request in a click.

Capabilities

Everything a register needs to stay accountable

Every capability below is implemented in the module.

01

Role-based delete policies

Grant or block delete access by employee, user, security group, department, or job position — resolved per POS with clear precedence, so a store is configured by role instead of one person at a time.

02

Server-authoritative enforcement

Delete permission is checked and logged on the server, not just hidden in the interface — even a tampered POS client cannot delete a synced order without the attempt being recorded.

03

Tamper-evident audit log

Every delete attempt, blocked or successful, is written to an append-only log with employee, timestamp, order reference, and amount — log rows cannot be edited or deleted, even by managers.

04

One-click order restore

Each audit log entry keeps a snapshot of the order header and lines, so a manager can recreate a deleted order as a draft directly from the log within the configured restore window.

05

Self-service access requests

A blocked cashier can request delete, line-removal, or cart-clear access straight from the POS without leaving the register; managers approve or refuse from the back office.

06

Confirmation before destructive actions

Deleting an order, removing a line, or clearing the cart can require a confirmation dialog first, preventing the accidental taps that erase a legitimate sale under pressure.

07

In-session undo

A removed line or cleared cart can be undone within a configurable window, giving cashiers an immediate way to reverse a mistake before it is committed.

08

Bulk removal and one-action clear cart

Select and remove several order lines at once, or clear an entire cart in a single action, so fast-moving registers stay quick without losing the controls above.

09

Per-location configuration

Turn restriction, confirmation, undo, bulk removal, and clear-cart on or off independently for each point of sale, so a franchise can run strict and lenient locations side by side.

Workflow

How it works

1

Define delete policies

Set up role, employee, or group-based delete policies and per-location toggles from the Point of Sale settings and config forms.

2

Cashiers work at the register

The POS enforces each cashier's permissions live — hiding blocked actions and prompting for confirmation where required.

3

Every attempt is logged

Blocked and successful deletions are recorded automatically with employee, order, and timestamp in the audit log.

4

Review, restore, and approve

Managers review the audit log, restore a deleted order in a click, and approve or refuse cashier access requests.

Questions

Frequently asked

No sales fog. If your question isn't here, email us and we'll answer it the same way.

Enforcement happens on the server when the order-cancel action runs, not only in the POS interface, so the permission check and the audit log entry apply even if the delete button were somehow reached.

Get the app

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 Order Deletion Control

Role-based delete policies with a tamper-evident audit log and one-click restore — server-authoritative protection against a wiped order or a single mis-tap.

Buy on Odoo App Store