POS Close Session From Backend
by Odoo DevHouse https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse$ 45.00
In-App PurchasesClose POS Sessions from the Backend - No Register Needed
Let a manager reconcile and close Point of Sale sessions straight from the Odoo backend - one at a time or in bulk - with the same cash-counting rigor as the POS register itself. No need to reopen the till.
Standard Odoo only lets a Point of Sale session be closed from the register itself - the physical POS terminal that opened it. If a cashier forgets to close out, goes on leave, or the terminal is offline, that session sits open indefinitely.
- Managers have no way to close a stuck session without physically reopening that register
- Multiple open sessions across stores pile up - closing each one requires a full frontend visit
- No spending-limit safeguard - anyone can post a large cash mismatch without a second check
- Payment methods like Customer Account (pay later) clutter the closing screen even though there is nothing to count
- Head office has zero backend tool to reconcile and post entries for a chain of registers at day's end
This module adds a "Close Session and Post Entries" button directly on every Point of Sale session record in the backend. Clicking it opens the same expected / counted / difference breakdown used on the POS register - cash and card lines only, with pay-later methods automatically hidden. Add a closing note, confirm, and the session posts its accounting entries exactly like a normal register close. Need to clear out several sessions at once? Select them in the Sessions list and use Close Selected Sessions to auto-reconcile and close every eligible one in a single click.
- One-Click Backend Close - "Close Session and Post Entries" button appears directly on the session form
- Smart Visibility - the button only shows while a session is actually open or in closing control, never on sessions already closed
- Expected vs. Counted Breakdown - every payment method lists its expected amount, a counted field, and the live difference
- Pay-Later Methods Filtered Out - Customer Account and other pay-later methods never appear in the reconciliation list
- Manager Difference Override - if the store enforces a maximum authorized cash difference, only a POS Manager can post beyond it - identical to the frontend rule
- Works With or Without Cash - fully supports card-only / no-cash-journal configurations, not just cash-enabled registers
- Bulk Close from the List View - select any number of sessions and close them all in one "Close Selected Sessions" action
- Clear Bulk Results - a summary notification reports exactly what closed, what was skipped, and what failed (and why)
- Closing Notes - add a note explaining the closure, saved straight into the session's chatter audit trail
- Full Audit Trail - every backend close logs its expected / counted / difference figures on the session, exactly like a frontend close
- Restricted to POS Staff - only Point of Sale Users and Managers can access the closing wizard
- Zero Core Modifications - a lightweight extension of the standard point_of_sale session and accounting flow
1. Open Any Session - See the Close Button in the Backend
A "Close Session and Post Entries" button sits next to "Continue Selling" on every session form while it is in progress or in closing control - no need to touch the register.
2. The Closing Wizard Opens - Expected, Counted, Difference
Total orders and total amount are shown up top. Each payment method lists its expected amount next to an editable counted field, with the difference computed instantly - pay-later methods are left out entirely.
3. Count Cash, Add a Note, Confirm
Enter the counted amount for each method - the difference recalculates live. Add a closing note for the audit trail, then click Close Session.
4. Session Closed & Posted - Full Audit Trail
The session moves straight to Closed & Posted. The chatter logs the exact closing difference, expected amount, counted amount, and your note - identical to a frontend close.
5. Or Select Several Sessions and Close Them All at Once
From the Sessions list, tick any number of open sessions, open the Actions menu, and choose Close Selected Sessions.
6. Get a Clear Summary of What Closed
Every selected session is auto-reconciled and closed. A notification reports exactly which sessions closed, which were skipped, and which failed - with the reason.
7. Works Just as Well on Card-Only Registers
No cash journal on a config? The wizard simply shows the card line and closes cleanly - no cash-counting step forced where there is no cash to count.
Multi-Store Head Office
Reconcile and close registers across every store from one backend screen at end of day - no need to visit each terminal.
Forgotten or Absent Cashier
A manager closes a session left open by a cashier who forgot, went home, or is on leave - without needing their login on the till.
Card-Only Kiosks
Self-service or express-lane kiosks with no cash journal still close in one click, with no irrelevant cash-count step.
Cash-Discrepancy Control
Enforce a maximum authorized cash difference storewide - only a POS Manager can push a close through beyond that limit.
End-of-Day Cleanup
Select every register still open past closing time and clear them all in one bulk action instead of one by one.
Accounting Sign-Off
Give the accounting team a backend tool to review and post session entries without frontend POS access.
No More Stuck Registers
A session left open no longer blocks the next shift - any authorized user can close it from the backend in seconds.
Faster Multi-Store Closing
Bulk-close every eligible session in one action instead of repeating the same steps store by store.
Same Controls as the Register
Manager difference limits and payment-method rules carry over from the frontend, so backend closes never bypass store policy.
Nothing Lost for Accounting
Every close - single or bulk - posts the same journal entries and audit-trail messages as a normal frontend close.
Step 1 - Open the Session
Go to Point of Sale -> Orders -> Sessions and open any session that is In Progress or in Closing Control.
Step 2 - Click "Close Session and Post Entries"
The button sits next to Continue Selling at the top of the form. It opens the closing wizard with every cash and card payment method pre-filled with its expected amount.
Step 3 - Enter Counted Amounts and a Closing Note
Type the actual counted amount for each method. The difference column updates instantly. Add a note if useful for the audit trail, then click Close Session.
Step 4 - Or Close Several Sessions at Once
From the Sessions list, tick the checkboxes of every session you want to close, open Actions, and select Close Selected Sessions. Each session is auto-reconciled (counted set to match expected) and closed in turn.
Step 5 - Review the Result
A single close returns you straight to the now Closed & Posted session, with the full breakdown logged in the chatter. A bulk close shows a notification listing what closed, what was skipped, and what failed.
Pro Tip - Manager Override
If the POS configuration has a maximum authorized difference set, a non-manager who counts a discrepancy beyond that limit will be blocked with a clear message - exactly like the frontend. Only a Point of Sale Manager can post beyond the limit.
Need Help or Want a Custom Feature?
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Point of Sale (point_of_sale)
• Discuss (mail) • Inventory (stock) • Invoicing (account) |
| Lines of code | 197 |
| Technical Name |
pos_manager_close_session |
| License | OPL-1 |
| Website | https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse |
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