GEPPETTO
Product selection/configuration tool
White Paper
Version 0.2
Revision history
0.1 |
Creation of the document |
0.2 |
Refining the specifications of the combination engine (feedback from coding!) |
0. Purpose of this paper
This paper is to describe high level specifications for a product selection and configuration.
The problem to solve is as follows:
I want to select one or many products in a catalog to achieve a defined function. I want to know what combinations are possible and what references to order.
Input: User needs
Output: One or more product references
1. Different examples
1.1. Example 1: car
1.1.1. User’s choices
Let’s consider a car manufacturer. The following combinations are available.
Manual gearbox |
Automatic gearbox |
|
City car |
O |
|
Sedan |
O |
O |
Van |
O |
O |
Moreover the customer may choose some options:
But Leather seats are not available for the Van and the two options can not be chosen simultaneously for the city car
Finally the customer can choose the color of his car. The following combinations are available
Blue |
Pink |
Green |
Yellow |
Black |
|
City car |
O |
O |
O |
O |
O |
Sedan |
O |
O |
O |
O |
|
Van |
O |
O |
O |
1.1.2. Result
The user will choose depending on his preferences, but we have to find a representation of his choices in computer format.
There are basically two approaches:
- Give a product code to every possible reference. This may be just a “serial” code without any meaning or a code indicating the choices (for example the third character represents the initial of the color)->we will call it “combination configuration”: the car can be made only if its characteristics are in the list of combinations (pre-set references)
- Issue a Bill of Material (BOM) indicating what components to include to build the car-> we will call it “rule configuration”: the car can be made only if the characteristic comply with explicit rules. There is no pre-set reference.
But, in general, the solution is a mix of these two approaches. The final product is a rule-defined set of combination defined products.
2. The “combination configuration” engine
In this part no “rule” will be used. The only source of information is the characteristics of each product. Data are from example 1.
All the table keys are 10 characters long and texts 80 characters long.
2.1. Characteristics
The basic data for the combination engine is the characteristic (type of vehicle, options, color).
Characteristic types are defined with their code and their text.
CHRTYP
Characteristic code |
Characteristic Name |
CHTYPE |
CHTEXT |
CARTYPE |
Type of car |
The following types are reserved by the system:
Type |
Meaning |
INTEGER |
Integer value |
VARCHAR |
Characters value (10 chr long) |
Each characteristic type has possible selections, called items (except the system types which hold open values).
CHRITM
Characteristic code |
Item code |
Item text |
CHTYPE |
ITCODE |
ITTEXT |
CARTYPE |
CITY |
City car |
CARTYPE |
VAN |
Van |
CARTYPE |
SEDAN |
Sedan |
2.2. Product
descriptionThe product data defines what kind of characteristics is available for a given product.
PRDTYP
Product type code |
Engine |
Nb of columns |
Product type text |
PRTYPE |
PRENG |
COL |
TEXT |
CAR |
COMB |
2 |
Car |
The Engine field COMB indicates that the product is managed with the combination engine.
The number of columns COL is used to build the user interface.
PRDCHR
Product type |
Characteristic |
Characteristic type |
Nb of columns |
Internal char |
Display Type |
Text |
PRTYPE |
CHCODE |
CHTYPE |
COL |
INTERNAL |
DISTYP |
TEXT |
CAR |
CARTYPE |
CARTYPE |
0 |
RADIO |
Car type |
|
CAR |
GEARBOX |
GEARBOX |
1 |
LIST |
Gearbox |
|
CAR |
AIRCON |
AIRCON |
1 |
LIST |
Air conditioning |
|
CAR |
SEATS |
SEATS |
1 |
LIST |
Seats |
|
CAR |
COLOR |
COLOR |
1 |
COMBO |
Color |
|
CAR |
PRICE |
INTEGER |
X |
Price |
An internal characteristic is a characteristic that cannot be selected by the user. In this example, price.
Display type may be:
- COMBO: combo box
- LIST: list
- RADIO: Radio buttons
The number of columns COL is used to indicate the number of columns used to display the characteristic choice. Special value 0 is used to indicate that the display uses till the end of the line.
The display type and number of columns are not relevant for the internal characteristics.
2.3. Products data
For each available product, the characteristic values are to be defined.
Ex model “BCBG” is an automatic blue city car with no options.
PRSLST
Product reference |
Product type |
Description |
PSREF |
PRTYPE |
PSTEXT |
BCBG |
CAR |
Blue city basic G |
PRSCHR
Product reference |
Characteristic |
Item code |
PSREF |
CHCODE |
ITCODE |
BCBG |
CARTYPE |
CITY |
BCBG |
GEARBOX |
AUTO |
BCBG |
SEATS |
STANDARD |
BCBG |
COLOR |
BLUE |
BCBG |
PRICE |
10000 |
If a characteristic is not defined for a given product, it will be considered as non relevant. Any selection on this characteristic will exclude the product from the hit list.
2.3. The engine
Initially, all the characteristics are left blank (=undecided).
When the user changes one of the characteristics, the following steps are processed
- Selection of data matching the new characteristics
- Display of matching products (number of matching products and details on 10 of them)
- Every characteristic possible values (items) are recalculated. If there is only one possibility, the characteristic is displayed in blue and the value forced to this only possible value. The impossible choices are displayed in gray.
With this mechanism, the user never faces “impossible” selections.
3. The “rule configuration engine”
In this case, there are no predefined references (no PRSLST and PRSCHR table).
Only rules defining the available combinations are available
3.1. Characteristics
The same tables as for the combination configuration are used. Refer to 2.1.
3.2. Product description
As above, no change in the tables, except that the engine has to be set to RULEx instead of COMB.
3.3. Rules
Example
10 (include)
20 IF CARTYPE = CITY AND GEARBOX = FALSE (exclude)
30 IF CARTYPE = SEDAN AND COLOR = PINK (exclude)
40 IF CARTYPE = VAN AND COLOR = PINK (exclude)
50 IF CARTYPE = VAN AND COLOR = YELLOW (exclude)
60 IF CARTYPE = CITY AND SEAT = LEATHER AND AIRCON = TRUE (exclude)