You are here:
Object Types and Guidelines (Communications)
An object type is a reusable entity that defines properties, such as fields and attributes, and layouts for all product instances. Object types are like Salesforce record-types but with enhanced capabilities. You can use object types to group products with similar characteristics and ensure consistent behavior and application of rules.
Object Types Inheritance
Object types support hierarchy inheritance, which allows you to create objects such as a mobile device with attributes like brand, capacity, and color that are common among mobile devices. From the object type, you can create a child object type, such as an iPhone, and assign specific attributes, such as color. Any product linked to the iPhone object type will automatically inherit the iPhone attributes from the mobile device parent object type as well as any iPhone-specific attributes of the iPhone child object type.
Object types support hierarchy inheritance. From the object type, you can create a child object type, and assign specific attributes. Any product linked to the object type will automatically inherit the attributes from the parent object type as well as any attributes of the child object type. When using Product Console, the inherited attributes by the child object type must be overridden to reflect in the product referencing the child object type. For example, in the diagram below, the Unit Rate Component object type inherits attributes from its parent object type, Commodity Component, and its grandparent, Base Commodity.
For CME 246 or earlier, manually override attributes within the product itself (using dummy values or changing existing values). For versions after CME 246, use the EPCAddMissingAttributeAssignment job to automatically fill-in missing inherited attributes.
Salesforce Industries Communications, Media, and Energy (CME) object types are designed as an "Is A" inheritance architecture, meaning you can create relationships between abstractions, where one object type is a subtype of another object type. The first level of abstraction is known as an object type, and the subsequent levels are known as subtypes. When you apply this relationship to a product, you create a relationship consisting of a product instance.
When defining object types and their inheritance:
-
We recommend creating a base object during the initial setup. This is your product catalog’s prime object from which all the other objects descend, and should include all the fields (but not attributes) in the product catalog.
-
You can then create child object types for all the product classes and all the products in your catalog, and they inherit the layout of the base product and all the associated fields and attributes.
-
You create the layout for the base product manually.
-
An object subtype inherits the layout via deep copy, but any subsequent changes to the parent object type’s layout are not replicated down the hierarchy after initial creation. This allows you to change the layout, allowing you to add or delete fields for each object type without altering the layout with the addition of any fields on the parent object type.
-
Inherited attributes and fields cannot be deleted but must be unassigned from the parent object type. Attributes are specific to products and classes of products and cannot be removed.
-
New attributes and fields assigned to an object type are inherited dynamically by its subtypes. If you assign new attributes to an object type, all object subtypes and products linked to the object type hierarchy are dynamically assigned those attributes.
Guidelines for Creating Object Types
-
Each object type can have only one layout.
-
Each layout has sections and elements.
-
The General Properties facet can have different sections to organize your elements.
-
You can add metadata.
-
Attribute Category is not hard-coded, so you can define it any way you want.

