Product Administration Guide > Product Classes >

About Classes

A product or service can be thought of as a collection of physical features and characteristics. Color, size, manufacturer, capacity, voltage, license type, expiration period, interest rate, and height are just a few of these. Those characteristics needed to describe your product meaningfully for your customers are called product attributes.

Classes provide a way to organize and administer product attributes. The key to understanding classes is inheritance. Attributes defined at the class level are automatically inherited by all the class members. When you assign a product to a class, it automatically inherits all the attributes defined for that class. Classes let you define what attributes are maintained for products, propagate those attributes to the products, and maintain those attributes in a consistent fashion.

When you define an attribute for a class, you specify both the attribute name and the range of values that the attribute can have. This range of values is called the attribute domain. For example, for a class called blanket, you define an attribute called color and define its domain to be green, red, and blue. Every blanket you assign to this class inherits the attribute color and its possible values.

Subclasses are classes that have a parent class. Subclasses have the following characteristics:

  • Subclasses can be nested as deeply as needed. This forms the class hierarchy.
  • Subclasses inherit the attributes of their parent class. As you nest downward, each subclass inherits the entire set of attributes from the classes above it.
  • You can modify the definitions of inherited attributes. If you do so, this breaks inheritance from the parent class. Changes to attribute definitions in the parent class are not inherited by modified attributes in subclasses.

The class hierarchy is a mechanism for organizing and managing product attributes. It is separate from the mechanisms you use to organize products themselves, such as product lines and product categories.

For example, you have the class hierarchy in Figure 1. The product class called Class has two attributes defined on it, Attribute 1 and Attribute 2. Class also has a subclass called Subclass. Subclass has Attribute 3 defined on it and contains one product, called Product C.

Figure 1.  Class Hierarchy

Subclass inherits Attribute 1 and Attribute 2. It also has an attribute definition of its own, Attribute 3. Product C, assigned to Subclass, inherits all three attribute definitions.

When you define a customizable product, you define named parts called relationships. Then you add the contents of classes to them. Adding a small number of products to a relationship from a large product class requires that the entire class be searched each time the customizable product is instantiated. This can adversely affect performance. Consider defining the class system to avoid this.

In Application Administration > Class Administration, you can create classes, organize them into hierarchies, and define attributes for them.

A class record in Application Administration > Class Administration has the following fields:

  • Name. This is the class name.
  • Display Name. This is the name that is seen by the customer. If left blank, the name in the Name field is displayed to customers.
  • Parent Class Name. If the class is a subclass, this field lists the parent class name.
  • Searchable. Put a check mark in this field to make the class name available for parametric search.
Product Administration Guide