for Product Configuration
With recent advances in web technology it has become quite easy to
implement product configurators and other configure/price/quote
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.
Configuring in the Browser
Running product configurators in the browser has advantages for
- Users enjoy a smooth user experience since they need not
wait for round-trips to the server after each input. Users can
even use the configurator in offline mode when they are
disconnected from the internet.
- IT operations need not worry about scaling up a server-side
configuration engine since for the server a configurator is just
a set of static pages.
- System integrators implementing a custom user interface can
easily access the local configuration state in the browser
without the complexity of requests for remote data.
openCPQ library provides the following advantages to
- openCPQ requires little learning effort since it is just a
thin layer on top of general-purpose web technology.
modeling based on a functional programming style.
Nevertheless imperative code can be integrated seamlessly where
- Having a full-fledged programming language at hand, modelers
can make configurators behave as required and are not
subject to the restrictions imposed by a configuration engine.
powerful domain-specific concepts on top of the generic
openCPQ API. These functions and classes can be used where
needed instead of repeating the implementation every time.
This makes models much easier to understand and maintain.
- Modelers can use state-of-the-art tools such as code
editors, debuggers, version-control systems, and integrated
development environments. They do not depend on the modeling
and model-management tools provided by a configuration
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.
Professional Open Source
openCPQ has been released as open-source
code under the liberal
Professional services and support for openCPQ are available from
webXcerpt. Contact us for discussing your
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:
- Optical Networks:
A configurator for equipment used in optical networks. Based on a
[ Start |
- openCPQ Components: Examples for all the components provided
[ Start ]
Contact us for additional demos, which we
cannot make publicly available.
The following presentations on openCPQ have been given for
audiences with different backgrounds.
Configuring in the Browser, Really!
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
openCPQ – A React-Based Product-Configuration Toolkit
The host of this meet-up, Bayerischer Rundfunk, has
published a Youtube video of this presentation.