Salesforce CPQ: Configuration Attributes vs Global Attributes

  • Blog
  • Salesforce CPQ: Configuration Attributes vs Global Attributes
blog image
13
Apr

Sometimes it's necessary to specify additional information for a product during the configuration process. It could be location, color, size, or anything that can further describe the product. This can be achieved with the help of configuration or global attributes. As you can understand, they are very helpful in reducing SKU proliferation and the total number of product records.

When working with attributes, it's important to keep in mind that the Product Configuration page is not an actual record; therefore the attributes are not fields but rather their "projections." 

There are two types of attributes that can be used in Salesforce CPQ. Which one you choose depends on the business requirements and the specific needs. The key distinction between them lies in the fact that the configuration attribute is related to a single bundle while the global attribute is not directly associated with a product, it can be related to multiple options, and you can reuse it even across bundles.

 Creating Configuration Attributes

Please pay attention to the fact that regardless of which attribute you decide to create, they share some steps (see the blocks in green), and you always start the setup by creating a custom field on the Product Option object

Given that the configuration attribute is associated with a bundle, we create it from the Configuration Attribute Related List on the bundle's parent product.

Keep in mind that you will need to add the API name of the field you created on the Product Option object to the Target Field picklist values on the Configuration Attribute object. This way, the user will be able to select it when creating an attribute record (Setup > Object Manager > Configuration Attribute > Fields & Relationships).

CPQ Add Values in Target Picklist On Configuration Attribute

Don't forget to add the new value to the picklist values for a particular Record Type. If you don't check the appropriate box, the value won't be visible.

You can make a configuration attribute Required or not. If you check this field, it will require the user to select a value for it when configuring the product.

The positioning of the configuration attribute is determined by a few fields: 

♦ First of all, there is the Row Order which is an open number field.

♦ Then, there is the Column Order which is a picklist field with three options: 1 for left, 2 for middle and 3 for the right column. 

♦ The Position field lets you choose whether the configuration attribute is positioned above the options (Top) or below them (Bottom).

♦ The Feature field lets you specify the Feature in which the Configuration Attribute should be entered and is only used for placement purposes. When the Feature is specified, the Configuration Attribute is displayed inside the feature, if we don't associate it with a particular feature - it is displayed outside of the features. One way or the other, keep in mind that the configuration attribute still describes the bundle itself and not just a specific feature, no matter where we put it - inside or outside a feature. It doesn't restrict the configuration attribute only to the product options within a feature and it still allows us to have different configuration attributes within different features.

The Apply To Product Options field allows us to cascade down and apply the configuration attribute to the product options. If it is unchecked, it applies only to the bundle parent and is not cascaded to the product options within the bundle.

The Apply Immediately field is available both on the Configuration Attribute record and on the product option record. This field ensures that rules are fired immediately as soon as a change is made to a particular attribute. Remember that this functionality shouldn't be overused because it slows down the quoting process, so it should be used only when indeed necessary.

If you want to default a configuration attribute to a preset value, you should populate the Default Object and the Default Field fields. For example, you have a field with a value on the quote, and you want to pre-populate a configuration attribute with it. Then, it's necessary to add the API name of that field to the Default Field picklist value and afterward select it. Note that the user can change this value during configuration.

You can use the Shown Values or the Hidden Values fields to either show or hide picklist values from the corresponding picklist field selected in the Target field. 

CPQ Configuration Attributes Fields

 Creating Global Attributes

Since the Global Attributes aren't associated with a specific product, create from the Configuration Attribute object itself, from the corresponding tab on the navigation menu. Global Attributes are a record type for configuration attributes; that's why when you click New, you have two choices: Configuration Attribute and Global Action. Further, there are only two necessary fields to fill in when creating a Global Attribute: Attribute Name and the Target Field, which is the field on the Product Option that will store the response that we get to this attribute.

CPQ Location Global Attribute

Global Attributes are grouped together into Attribute Sets which can be reused across different product options. The link between Global Attributes and Attribute Sets is realized through Attribute Items. Then come into play the Product Attribute Sets, which link the Attribute Sets with the necessary Product Options. 

 

 Points to remember:

♦ Very importantly, do not forget to create the twin field of the initial field you created on the Product Option on the Quote Line (and the Order Product).  It will be used to store permanently the value entered via the Configuration Attribute. If you fail to create the field on both these objects, your attribute isn't going to work as expected.  

♦ Don't forget to make sure that Global Attributes are enabled in your org. Go to Setup > Profiles> System Administrator (or any other profile that needs a similar level of access) and click Edit under Custom Record Type Settings, then add both attribute Record Types (Configuration Attribute should be the default record type). 

CPQ Enable Global Attributes for Specified Profile

♦ Also, to avoid the situation of literally looking for and not finding the Global Attributes on the product configuration UI, navigate to package settings and check the Enable Product Option Drawer setting (Setup > Installed Packages > Configure > Additional Settings tab). By default, global attributes are located in the collapsible drawer called the product option drawer. So in order to access them there, it's necessary to turn the drawers on. 

Enable Product Option Drawer on CPQ Settings Editor

♦ Global attributes do NOT work with formula fields, required fields, and hidden or shown picklist values.

Keep reading: Salesforce CPQ: Troubleshooting Configuration Attributes Issues

Comments (0)

Leave a Comment