Product Administration Guide > Release and Manage Customizable Products >
Creating Class-Product Templates
You can create a customizable product and use it as a template for building other customizable products. These templates are called class-products. Use this feature when you have customizable products that include the same group of items. For example, you sell desktop computers. You have seven configurable models that share the same chassis types, keyboards, and mouse. You can create a class-product consisting of these three relationships. You would then use the class-product as the basis for constructing each model.
When you create a customizable product and designate it as a class-product, all products belonging to the same product class and all subclasses inherit its structure. In effect, the class-product becomes an extension of the class definition, and the class-product's structure is inherited in the same fashion as class attributes.
In Figure 5, Template Customizable Product A has been designated as a class-product in Product Class 1. Customizable Product B is in the same product class, so it inherits the structure of Template Customizable Product A. Customizable Product C is in Subclass 2, a subclass of Product Class 1. It also inherits the structure of Template Customizable Product A.
Figure 5. Customizable Product Template
TIP: Assign a customizable product to a class containing a class-product template right after you create its work space. You can then view what parts the class-product contributes. This will help you avoid creating duplicate relationships in the other customizable products assigned to the class.
The following parts of a customizable product are inherited by all class members when you designate it as a class-product:
- Relationships and their contents.
- Configuration rules.
- User interface groups.
- The base theme and product theme are not inherited
- User interface property definitions and scripts are not inherited by class members
When you edit a class-product, the changes propagate to other products in the class when you commit the changes.
When you edit a customizable product that has inherited the structure of a class-product, the class-product portion is viewable in the Product UI Designer, the User Interface Property Designer, and in validation mode. The class-product portion is not visible in the Product Designer, Resource Designer, Link Designer, or Script Designer.
Observe the following guidelines when creating class-products:
- Customizable products that you designate as class-products must not be orderable.
- Assign only customizable products to a class containing a class-product. Assigning simple products to a class containing a class-product can cause unexpected results in the user interface.
- A customizable product must have at least one released version before it can be designated a class-product.
To create a class-product template
- Navigate to Product Administration.
- In Products, select the customizable product you want to use as a template.
- If the customizable product has a check mark in the Orderable field, click in this field to remove the check mark.
- In Customizable Product, lock the customizable product.
- Review the structure, user interface groups, resource definitions, link definitions, and scripts defined for the product. Remove any features that you do not want to propagate to other customizable products.
- Refresh the customizable product's work space.
- Create a product class for the class-product template as needed and assign the class-product to the class.
- In the Products tab, select the customizable product then click Set as Class Product/Reset.
Be careful to click this button only once. Clicking it a second time turns the class product template off.
A check mark appears in the Class Product field.
- Add the desired customizable products to the product class.
Adding a product to the class causes it to inherit the structure of the class-product.
- For the customizable products you add, assign the desired base and product theme in Customizable Product > Versions.
- Open the Product UI Designer and verify the class-product structure has been inherited correctly.