# 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 1. **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. 2. **Simplified Customer Creation Wizard:** - Overrides the POS Customer Edit/Creation screen to show only essential details: * Name * Phone * Email * Address (Street, Zip, City, State, Country) * Birthday 3. **Automatic Lowest Level Membership Assignment:** - Automatically provisions new partners with a loyalty card for the lowest membership tier (`Membership Silver`) immediately upon registration. 4. **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 `sudo` environment execution. 5. **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.