2.2 KiB
2.2 KiB
POS Loyalty Member Customization
This custom Odoo module enhances the POS Loyalty interface and partner creation wizard, optimizing workflow efficiency and resolving critical multi-company operational constraints.
Features
-
Strict Customer Selection Filter:
- Limits customer loading and search lists in the POS UI strictly to real individuals who hold an active membership or loyalty card (
is_loyalty_member = True). - Automatically excludes cashier accounts, user accounts, and company partners from being selected as customers.
- Limits customer loading and search lists in the POS UI strictly to real individuals who hold an active membership or loyalty card (
-
Simplified Customer Creation Wizard:
- Overrides the POS Customer Edit/Creation screen to show only essential details:
- Name
- Phone
- Address (Street, Zip, City, State, Country)
- Birthday
- Overrides the POS Customer Edit/Creation screen to show only essential details:
-
Automatic Lowest Level Membership Assignment:
- Automatically provisions new partners with a loyalty card for the lowest membership tier (
Membership Silver) immediately upon registration.
- Automatically provisions new partners with a loyalty card for the lowest membership tier (
-
Robust Multi-Company Loyalty Processing:
- Solves a core Odoo 19 multi-company operational bug where cashiers in branch companies encounter "Access Errors" when validating orders for customers whose loyalty cards belong to the parent company.
- Bypasses company-specific record rules during POS loyalty audit logging using standard and safe
sudoenvironment execution.
-
Loyalty Reward and Point Access Control:
- Restricts loyalty program reward eligibility, point balance displays, and program applicability in the POS UI strictly to customers who have a persisted, active card in the database for that specific program.
- Prevents unauthorized claim/access to zero-point rewards (e.g., 100% discount rewards in executive/exclusive programs) by non-enrolled members.
Technical Details
- JS OWL Patching: Overrides POS frontend partner management and order processing (
PosOrder) safely using clean, standard owl-level class overrides to filter program eligibility, claimable rewards, and loyalty point lists based on card status. - Python Inheritance: Customizes backend models (
res.partner,pos.order) to clean loading domains and securely provision cross-company data.