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. Userfs choices

Letfs 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 gserialh 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 gcombination configurationh: 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 grule configurationh: 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 gcombination configurationh engine

In this part no gruleh 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@description

The 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 gBCBGh 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 gimpossibleh selections.

3. The grule configuration engineh

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)