POS Floor Payment Methods Filter
by Odoo DevHouse https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse$ 50.04
In-App Purchases| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Point of Sale (point_of_sale)
• Restaurant (pos_restaurant) • Discuss (mail) • Inventory (stock) • Invoicing (account) |
| Lines of code | 42 |
| Technical Name |
pos_floor_pm_assign |
| License | OPL-1 |
| Website | https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse |
| Versions | 18.0 19.0 |
POS Floor Payment Methods - Restrict Payment Methods Per Floor
Assign a dedicated set of allowed payment methods to each restaurant floor in Odoo POS Restaurant. Cash-only terrace, card-only VIP lounge, or any combination - the Payment screen enforces it automatically.
In standard Odoo 18/19 POS Restaurant, payment methods are linked only to the Point of Sale as a whole - every table, on every floor, sees the exact same list of payment methods at checkout.
This creates real operational problems for multi-floor and multi-zone venues:
- Cannot make the terrace or patio cash-only while the main hall accepts cards
- No way to restrict VIP lounges to premium payment methods only
- Hotels cannot separate room-service floors from restaurant floor billing rules
- Event venues cannot enforce different payment rules per section
- Staff must manually remember which methods are "allowed" per area - error prone
- No built-in way to block card readers on outdoor floors with weak connectivity
This module adds an Allowed Payment Methods field directly on the restaurant floor form. Pick any subset of the methods already configured on that floor's Point of Sale. The POS Payment screen is patched to read the table's floor and automatically filter the visible payment methods to that subset. Leave the field empty on a floor and nothing changes - every payment method configured on the POS remains available, exactly as before.
- Per-Floor Payment Rules: Assign a specific set of allowed payment methods to each restaurant floor
- Automatic Payment Screen Filtering: The Payment screen shows only the methods allowed for the table's floor
- Smart Domain: Only payment methods already linked to the floor's POS can be selected - no invalid combinations
- Safe Default Behaviour: Floors with no methods assigned continue to show every POS payment method, unchanged
- Multi-POS Aware: Rules apply per floor, per POS session - works correctly when several POS share the same restaurant
- Zero Configuration Overhead: No new model, no new security rules - just one field on the existing floor form
- Lightweight OWL Patch: A small, focused patch on the POS Payment screen - no core Odoo files touched
1. Default Behaviour - Every Payment Method Available
On a floor with no restriction configured (Main Floor), the Payment screen shows every method configured on the POS - Cash, Card, and Customer Account.
2. Configure Allowed Payment Methods Per Floor
Open the floor form (Patio) and pick the payment methods allowed on that floor - here restricted to Cash only.
3. Payment Screen - Filtered Automatically
Pay a table on the Patio floor - only Cash appears, Card and Customer Account are hidden, exactly as configured.
Installation & Configuration
- Install the Module: Install through Odoo Apps or manually copy to addons path
- Dependencies: Requires
point_of_saleandpos_restaurant - Restart Server & Update: Restart Odoo and update the app list
- Configure Floors: Open each restaurant floor form and pick its allowed payment methods
- No Manual Data Changes: Existing floors keep working with the default (unrestricted) behaviour until configured
- Test: Open POS Restaurant -> pay a table on a configured floor -> only the allowed methods appear
Step 1: Install Module
Step 2: Open a Restaurant Floor
Go to Point of Sale -> Restaurant -> Floor Plans and open the floor you want to restrict. You will see a new Allowed Payment Methods field next to the Point(s) of Sale field.
Step 3: Pick the Allowed Methods
Select any combination of the payment methods already configured on that floor's Point of Sale. Typical setups include:
- Terrace / Patio - Cash only, to avoid card readers outdoors
- VIP Lounge - Card and digital wallet only
- Bar Counter - Cash and Card, no house account
- Room Service Floor - House account and Card only
- Banquet / Event Hall - Bank transfer and Card only
- Main Dining Room - Leave empty to keep every method available
Step 4: Save and Reload the POS
Save the floor. The next POS session load (or a page refresh in an open session) picks up the new configuration automatically - no server restart needed.
Step 5: Pay a Table - Methods Filter Automatically
Open a table on the configured floor and go to Payment. Only the allowed methods are shown. Tables on floors with no configuration keep showing every method available on the POS.
Pro Tip - Safe by Default
The filter only activates when a floor has at least one payment method assigned. An empty field is treated as "no restriction," so you can roll this module out floor by floor without any risk of accidentally blocking checkout on floors you haven't configured yet.
Compatibility Note
This module is specifically designed for Odoo 18 and 19 POS Restaurant. It only adds a field and a small Payment screen patch - no core Odoo files are modified, so it stays compatible with other POS customizations.
Cash-Only Outdoor Floors
Keep card readers indoors - terraces, patios, and gardens accept cash only.
VIP & Executive Lounges
Restrict premium areas to card or digital wallet payments only.
Hotels & Room Service
Route room-service floors to house account and card, separate from restaurant floors.
Event Venues & Banquet Halls
Enforce bank transfer or card-only settlement for banquet and event floors.
Bars & Nightclubs
Limit bar counters and dance floors to fast-settling methods like cash and card.
Multi-Floor Resorts
Poolside, spa, and rooftop floors each get their own accepted payment methods.
Tighter Cash Handling Control
Enforce payment policy per area instead of relying on staff memory.
No Data Migration Needed
Installs cleanly on top of existing floors, tables, and payment methods.
Fewer Checkout Mistakes
Staff only ever see the payment methods that are actually valid for that floor.
Zero Operational Disruption
Unconfigured floors behave exactly as before - roll out gradually, floor by floor.
Do You Need Assistance or Have a Feature Request?
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Point of Sale (point_of_sale)
• Restaurant (pos_restaurant) • Discuss (mail) • Inventory (stock) • Invoicing (account) |
| Lines of code | 42 |
| Technical Name |
pos_floor_pm_assign |
| 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