With recent advances in web technology it has become quite easy to implement product configurators and other configure/price/quote (CPQ) functionality as JavaScript programs running directly in the web browser without the need for a server-side configuration engine. openCPQ is a library providing generic building blocks for CPQ applications. This allows the application code to concentrate on the product model and to ignore technical details of the configurator.
The openCPQ approach provides advantages both for using a product configurator and for modeling products.
Running product configurators in the browser has advantages for several stakeholders:
Writing product models as JavaScript programs using the openCPQ library provides the following advantages to modellers:
Configurator users make their choices one by one. After each user input the user interface has to be updated to reflect the new configurator state: Other choices might become available or unavailable, computed values might change, conflicts might appear or disappear, and so on.
Unlike the configurator engines of other CPQ tools openCPQ does not incrementally propagate user input to the configurator state and the user interface. It rather recomputes the entire configurator state and user interface from the accumulated user input. This declarative approach from functional programming is much easier to understand and less error-prone. And it fits perfectly with the ideas behind the user-interface library React. openCPQ uses React to finally determine and execute the required incremental updates to the user-interface.
Even the core application state, namely the accumulated user input is not modified by new input. A new copy of the state is generated instead. This usage of immutable data structures (another concept from functional programming) makes it easy to provide undo and redo functionality.
openCPQ has been released as open-source code under the liberal MIT license.
Professional services and support for openCPQ are available from webXcerpt. Contact us for discussing your configuration tasks.
The source code is hosted at Github, making it easy for you to clone the project or even to fork it and to adapt it to your needs. We encourage you to submit your enhancements back (as pull requests) for inclusion in the mainline development.
The following demonstrations are available online:
Contact us for additional demos, which we cannot make publicly available.
The following presentations on openCPQ have been given for audiences with different backgrounds.
Configuration Workgroup (CWG) European Conference Prague, April 2015
This presentation has been given to an audience with a background on product-configuration and modeling, especially with SAP variant-configuration tools.
Munich JavaScript User Group (MunichJS) meet-up, May 2015
This presentation has been given to an audience with a background on JavaScript, but did not expect any knowledge of React.
The host of this meet-up, Bayerischer Rundfunk, has published a Youtube video of this presentation.