The OpenSPP Pos module extends the standard Odoo Point of Sale (POS) system to facilitate the secure and efficient redemption of social protection entitlements. It integrates directly with OpenSPP's entitlement management system, allowing beneficiaries to redeem their benefits at participating retail locations.
The spp_pos module provides a critical link between social
protection programs and beneficiaries at the point of transaction. It
enables the seamless and controlled distribution of benefits through
retail channels.
- Secure Entitlement Redemption: Allows beneficiaries to redeem their specific entitlements (e.g., vouchers, credits) directly at a POS terminal. This ensures that benefits reach the intended recipients for authorized goods or services.
- Real-time Validation: Validates entitlement codes instantly, checking their existence, amount, and status to prevent fraudulent or expired redemptions. This enhances program integrity and reduces losses.
- Streamlined Transaction Processing: Integrates entitlement redemption into the standard POS workflow, simplifying the process for both beneficiaries and POS operators. This improves efficiency and reduces wait times.
- Controlled Product Access: Designates specific products that can only be purchased using entitlements, ensuring that program funds are spent according to program rules. For example, a food assistance program can ensure funds are used only for approved food items.
- Enhanced Beneficiary Service: Provides a quick and transparent mechanism for beneficiaries to access their benefits, improving their experience and trust in the program.
The spp_pos module integrates with key OpenSPP and Odoo modules to
provide its functionality:
- Point of Sale (``point_of_sale``): This module extends the core Odoo Point of Sale functionality, adding the necessary features for entitlement redemption. It leverages the existing POS interface and workflows.
- G2P Registry Base (``g2p_registry_base``): While not a direct
dependency,
spp_posinteracts withg2p.entitlementwhich itself relies ong2p_registry_basefor core beneficiary and registrant data. This ensures that entitlements are linked to verified beneficiaries. - G2P Programs (``g2p_programs``): This is a crucial dependency as
spp_posis designed to redeemg2p.entitlementrecords, which are generated and managed by theg2p_programsmodule.spp_posprovides the final step in the entitlement lifecycle by enabling their consumption.
The spp_pos module serves as the operational interface for the final
delivery of benefits defined and managed by the g2p_programs module,
ensuring that the entitlements created can be effectively utilized by
beneficiaries.
The spp_pos module introduces several key features to manage
entitlement redemptions:
POS operators can initiate an entitlement redemption by scanning or
manually entering an entitlement code (e.g., a QR code or alphanumeric
string). The system then performs a real-time lookup against the
g2p.entitlement records, verifying the entitlement's validity and
available amount. If valid, the entitlement's value is applied to the
POS transaction, and the entitlement status is updated accordingly. If
the entitlement is invalid or does not exist, the POS operator receives
an immediate notification.
To clearly distinguish entitlement-based transactions from regular sales, the module introduces a specific product template and a dedicated POS category. This allows for:
- Clear Identification: A designated "Entitlement Product" simplifies the POS interface for operators when processing entitlement redemptions.
- Organized Reporting: Separating entitlement-related items into their own category helps in financial tracking and reporting for social protection programs.
The spp_pos module adds an is_locked field to
product.template records. This allows administrators to mark
specific products as "locked," meaning they can only be purchased using
a valid entitlement and cannot be bought with standard payment methods
like cash or card. This feature is vital for:
- Program Compliance: Ensures that program funds are used exclusively for their intended purpose, such as specific food items or educational supplies.
- Fraud Prevention: Prevents the misuse or unauthorized sale of subsidized goods, maintaining the integrity of the social protection program.
The OpenSPP Pos module is essential for the last-mile delivery of social protection benefits, providing a secure, efficient, and controlled mechanism for beneficiaries to redeem their entitlements at the point of sale.
Table of contents
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.
Do not contact contributors directly about support or help with technical issues.
- OpenSPP.org
Current maintainers:
This module is part of the OpenSPP/openspp-modules project on GitHub.
You are welcome to contribute.




