Go to file
2026-05-26 12:04:50 +07:00
models first commit 2026-05-21 17:04:01 +07:00
static/src/app feat: include all loyalty programs in points calculation even if no points are awarded 2026-05-26 12:04:50 +07:00
views first commit 2026-05-21 17:04:01 +07:00
__init__.py first commit 2026-05-21 17:04:01 +07:00
__manifest__.py feat: patch PosOrder to exclude temporary loyalty cards from applicability and rewards calculations 2026-05-22 22:27:10 +07:00
.gitignore first commit 2026-05-21 17:04:01 +07:00
README.md feat: patch PosOrder to exclude temporary loyalty cards from applicability and rewards calculations 2026-05-22 22:27:10 +07:00

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.