Procurement of materials and services

Procurement should be fairly automatic and auditable. It should be possible to assign permissions to all users to procure learning materials or whole services. It must be possible to define procurement rules at runtime when the rules change based on contracts.