More complex Compatibility examples
In some cases there are more complex compatibility relationships between the products.
For example there is the following dependecy Car Model--> Tire--> Rim, in an utopian case in which a user build his car alone. The user should first select his car model, then should select the Tires that suit his car model and then the Rim that is compatible with the selected Tires.
In a structure like this, it is very possible to have a final composition with incompatible parts, without the compatibility check.
To avoid that, we have to use the compatibility check functionality. The following image dipslays the tags that have been assigned to have 2 levels of dependecy. a. Car->Wheel ,b. Wheel ->Rim.
So after selecting a Car, only the compatible Wheels could be selected and after selecting a Wheel only the Rims that are compatible with the selected Wheel can be selected.
The above image demonstrates how the tags should be assigned to have 2 levels of dependency.
The car selection let the user select only the wheels that are suitable for the selected car. Also the wheel selection let us select only the compatible rims.
The Wheel group works as an intermediate between the cars and the rims and has tags assigned that concern both groups.