Extends OpenSPP API V2 to expose product catalog data through REST endpoints. Allows external systems to query products, product categories, and units of measure for in-kind entitlement programs. Uses OAuth 2.0 with scope-based access control and product code/name as external identifiers.
- Search and retrieve products by default_code (SKU) or name
- Query product categories for classification and filtering
- List units of measure with category filtering
- Paginated search with filters: name, code, category, last updated date
- OAuth 2.0 authentication with "product" resource scope
- Returns JSON responses with references to related resources (category, UoM)
This module extends existing models rather than introducing new ones:
| Model | Extension |
|---|---|
spp.api.client.scope |
Adds "product" resource type for scope management |
fastapi.endpoint |
Registers Product, ProductCategory, UoM routers |
After installing (auto-installs with spp_api_v2 + product):
- Navigate to Registry > Configuration > API V2 > API Clients
- Create or edit an API client
- Add scope with resource="product", permission="read"
- Use OAuth 2.0 client credentials flow to authenticate
No standalone menu. This is an API-only module.
API Endpoints:
GET /api/v2/spp/Product- Search productsGET /api/v2/spp/Product/{identifier}- Read product by code or nameGET /api/v2/spp/ProductCategory- Search categoriesGET /api/v2/spp/ProductCategory/{identifier}- Read category by nameGET /api/v2/spp/UnitOfMeasure- Search units of measureGET /api/v2/spp/UnitOfMeasure/{identifier}- Read UoM by name
Configuration: Registry > Configuration > API V2 > API Clients
| Group/Mechanism | Access |
|---|---|
| OAuth 2.0 scope | Requires "product:read" scope on API client |
| API authentication | All endpoints require valid OAuth 2.0 access token |
No ir.model.access.csv entries. Security is enforced at the API
layer through OAuth scopes.
- Inherit
ProductService,ProductCategoryService, orUomServiceto customize API responses - Override
to_api_schema()methods to add fields to Product, ProductCategory, or UnitOfMeasure schemas - Override
search()methods to add custom filtering logic
spp_api_v2, product, uom
Table of contents
- Initial migration to OpenSPP2
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/OpenSPP2 project on GitHub.
You are welcome to contribute.





