Developing a product configurator can be challenging due to the many design decisions along the way. Two of the most critical aspects that impact implementation time and skill requirements are:
- Implementation strategy for the rules in the configurator
- Skill level of the intended user
That is why we have put together some examples to help you determine the complexity level based on the approach you take to the configuration, and hopefully guide you in the way you tackle your development project.
The best approach
A typical trade-off for reduced complexity in development and still making life easy for the intended user is to implement predetermined layouts (level 2) or instance chains (level 3) that flow in a controlled manner (see the image below). This helps the developer to create input and rules that are easy to manage and flexible enough to solve most configuration cases.
The advanced approach
A more flexible approach, where instances can be placed freely by the user (level 4), is usually the most challenging to gain control over and will require the most knowledge of the intended user. Unless the configuration of each part that is drawn can be done individually (space planning), it quickly becomes tricky for development, with all relations and edge cases arising from possible combinations that the intended user can create.
The simple approach
The most simple approach, where configuration can be done part by part (level 1), is easy to use but limiting for the intended user due to its lack of combining multiple parts into an assembly (which is often needed).
Example – How complexity vary in a glass railing configurator
Consider the following basic configuration case for a glass railing system to be configured by a novice user in someone’s CPQ or E-commerce.
Qty | Article | Description |
4 | POST-1000-S | Straight Post |
2 | POST-1000-C | Corner Post |
2 | GLASS-750-850 | Glass Panel |
3 | GLASS-700-850 | Glass Panel |
1.1 Configure rail as individual parts (level 1)
Configuring post and glass panels individually would result in two very simple product configurators for the developer to implement; post with two types and panel with different widths.
However, it would require the intended user to calculate each post and panel themselves, keeping track of margins and sizes of each item in the assembly.
- Low skill requirements for the developer
- Short implementation time required by the developer
- High product knowledge requirements for the indended user
1.2 Configure rail as predetermined layouts (level 2)
With a predetermined layout for different types of common railings (U-shape, straight, L-shape, etc.), all parts would be configured in the same product configurator. It would require a list of variable inputs, like L1, L2, L3 that corresponds to each predefined layout.
This would require the developer to incorporate most rules of the product, like margins, parts, valid combinations, type of posts (corner, straight).
The intended user would easily use the configurator since now only each section length (L1, L2, L3) needs to be filled out.
- Medium skill requirements for the developer
- Medium implementation time required by the developer
- Low product knowledge requirements for the indended user
1.3 Configure rail as instance chains (level 3)
If the product configurator is created as a chain of instances, consisting of a straight section of posts and panels to be configured, it results in a lot of design freedom for the intended user and includes all parts in the same configuration. The process would require configuring one section at a time (L), and adding new instances with different relations to the previous ones (straight, angle, etc.).
This approach would require the developer to incorporate most of the product’s rules, such as margins, parts, valid combinations, types of posts (corner, straight) and dynamically handle the relations between the previous and the next instance. Additionally the developer would need to navigate which instance is currently being configured.
The intended user would find the configurator easy to use since only length and angle are required for each instance.
- High skill requirements for the developer
- Medium implementation time required by the developer
- Low product knowledge requirements for the indended user
1.4 Configure rail as free instance placement (level 4)
Developing a product configurator that resembles a traditional design tool where the intended user can freely move parts around is easy to mistake as a natural first step. This often results in high skill requirements for the developer and a hard-to-use tool for the indented user (unless they are an expert).
This approach would require the developer to incorporate most of the product’s rules, such as margins, parts and post types, in a way that dynamically handles relations to all other instances, no matter the order.
The intended user would usually have to figure out how to handle this freedom (move, rotate, interact) in a slightly more complex way than with a more controlled configurator (like 2 or 3).
- High skill requirement of the developer
- Long implementation time required by the developer
- Medium product knowledge requirements for the indended user