Together with some colleagues from Technopolis we recently started PCE, an open source project for managing products and business rules.
Why PCE?
The need for a framework like PCE stems from the recurring task of having to manage, persist, retrieve and display products (or for that matter entities that can be viewed as products) of some sort in nearly all our software projects. And even in simple projects there comes the point when business rules need to be applied to the raw products because the requirement is that you only show to the user a subset or the attributes need to be augmented (i.e. compute a current price).
Features
- Model products in Excel. Columns are the product attributes, their cells are product values
- Write business rules in Near Natural Language (NNL).
- Business rules have IF and THEN clauses and can be used to select and modify products
- Define your own NNL terms by programming them in Javascript effectively creating a Domain Specific Language (DSL)
- Reload products and rules in real time without restarting the application
Current restrictions
- Products are a flat set of string attributes, i.e. there are no complex components or hierarchies. For now this can be programmatically circumvented by the client application operating PCE
- No GUI
- Excel is the only source for products
Examples
![]() |
Products: Offers for bundles of mobile phones and memory cards |
![]() |
|
Rules: Compute price and validity of products |