Product Groups were initially used as a simple way to group products for Segmented Account Pricing (previously known as Matrix Pricing). A product could be connected to a single Product Group.
When Simple Product Configurator and Percentage Pricing were developed, we tried to avoid creating more and more objects by scaling up the ‘Product Group’ object. As well as a ‘Direct’ relationship with a Product, a ‘Membership’ concept was created by introducing two junction objects:
- Group Member
- Group Relationship
- Consider a Product with a Group Member record as having a child relationship to the Product Group.
- If, for example, you were selling cars and had different options for types of wheel, you might have a Product Group called ‘Wheels’ and all of your products that are wheels might have ‘Group Member’ records associating them to the ‘Wheels’ Product Group.
- Consider a Product with a Group Relationship record as having a parent relationship to “the Group Members of a Product Group”.
- So, taking the car example above, you may have a ‘Car’ product that has a Group Relationship record to associate it with the ‘Wheels’ Product Group. If you add a Car to an opportunity/quote, you might want to see all the wheel products as options.
Super-set of Group Members
- Finally, consider that “the Group Members of a Product Group” are the super-set of Products that are within the ‘Default Selected Product Group’ and ‘Default Unselected Product Group’ lookup fields on the Group Relationship record. Yikes!
So, in the example above, we could split the ‘Wheels’ Product Group into two groups:
- Standard Wheels
- Optional Wheels
In the Group Relationship record for the ‘Car’ product, we could select
- ‘Standard Wheels’ as the ‘Default Selected Product Group’
- ‘Optional Wheels’ as the ‘Default Unselected Product Group’.
All the wheels in ‘Standard Wheels’ and ‘Optional Wheels’ are available to the Car product but the default selected wheels are those in the ‘Default Selected Product Group’.
Visually with another example
The Record Type of a Group Relationship record dictates FlexPricer’s behaviour when creating or updating line items.
The behaviour may be different to Group Members of the associated Default Selected Product Group to Group Members of the associated Default Unselected Product Group depending on the record type of the Group Relationship record.
If a Product has a related Group Relationship record of record type Option, then in the Simple Product Configurator, Group Members of the ‘Default Selected Product Group’ are considered to be options that are automatically selected by default in the configurator. Group Members of the Product Group associated with the ‘Default Unselected Product Group’ are not selected by default in the configurator.
If a Product has a related Group Relationship record of type Percentage, then in Percentage Pricing for Salesforce Products, that Product’s percentage calculation will take place only on line items where their associated products are Group Members of the ‘Default Selected Product Group’. Conversely, the percentage calculation will take place on all line items except those where their associated products are Group Members of the ‘Default Unselected Product Group’.
- Product Groups have Group Members that are Products – there will typically be lots of products as members of a group
- Products can have Group Relationships that are Product Groups – there will typically be a few ‘master’ products that will have relationships to a group