Guess what! Price Rules can operate inside of the configurator! Most times, folks configure them to run in one of the four calculation events in the line editor. But you can also configure them to run within the configurator too! I am going to use an example Price Rule to illustrate some things about configurator rules. Lookie here.
There are fields! That configure the Price Rule for configurator action.
- Price Rule
- Evaluation Scope: Configurator
- Configurator Evaluation Event
- Save: This will fire the rule when you click the Save button in the configurator.
- Edit: This will fire the rule when you change something that has Apply Immediately set to TRUE (Product Options or Configuration Attributes). It also fires them when you click the Save button just like above.
- Price Condition
- Object: Product Option
The Field must exist on the Product Option object for this to work.
- Object: Product Option
- Lookup Query
- Tested Object: Product Option
The Tested Field must exist on the Product Option object for this to work.
- Tested Object: Product Option
- Price Action
- Target Object: Product Option
The Target Field must exist on the Product Option object for this to work.
- Target Object: Product Option
Caveats!
There is one issue with the above rule. For this to work properly, the tested fields must be in the OptionConfiguration field set (ie. they must be columns in the table of options). You have to be able to edit these for the rule to look up a value in the lookup table.
Configuration Attributes
You might think, well maybe I can create some Configuration Attributes for these fields and have them set as Apply to Product Options = TRUE so that I don’t have to have them as columns! Hey. Great idea, ma’am. Or sir. Whatever you go by. But NO. This will not work. As of this article’s publish date, the application of values to Product Options does not *actually* happen until AFTER the save button is clicked and AFTER Price Rules are run. So the values never get to the options and your action to inject a lookup value never fires. In this case, move your rule to the line editor. Pretty huge gap in an otherwise wonderful feature.
More Caveats!
In Price Condition, you can not use field API values other than Quantity and Product Code in the “Field” field. It will not work.
In Price Action, you can not use the Formula field or Source Field field in configurator Price Rules.
Search Terms
I am putting search terms here so that when people have this problem, they find this article. No sense in scouring the internet of dead ends and not getting your questions answered.
Search Terms: Salesforce CPQ Configuration Attributes “Apply to Product Options” field lookup Price Rule
SFDC Success Articles
– https://success.salesforce.com/answers?id=9063A000000ZvosQAC
– https://success.salesforce.com/answers?id=9063A000000ibxGQAQ
– https://success.salesforce.com/answers?id=9063A000000pQzMQAU
Hey there. I think this is close to an issue I’m having. I have a Config Att on a Bundle that is a number and I want to populate that number in the quantity of certain Product Options. I would like for it to update in the Bundle Configurator but having trouble with that. Any suggestions?
Hi Megan!
I am hoping you found an answer to this already but here is my answer! Unfortunately, you can not directly copy a value from the Configuration Attribute to the option Quantity field. You’ll have to use something else to get what you need done. Convert the config attribute to an option and use that value in a summary variable and then copy the summary variable to the quantity field of those product options.
Hi,
Did you find a workaround for this or it the only option have the Price Rule run with Scope Calculator?
Thanks!
Are you speaking of Configuration Attributes? If so, no there is no work around at this point. It would be best to have a rule on Calculator as you stated.
Hi Dennis,
Can we have formula evaluating the unit price of product option in Price Action.
Example : SBQQ__UnitPrice__c/100
Thank you
Hi Pavithra,
This is a good thing for you to test! What I am thinking: is when you save you will see it reflected in the quote line record, but you will not see the change in the configuration page if you have the field visible.
I have a scenario where I need to set the value of a configuration attribute, which will then be a controlling field value for a dependent picklist, which is another configuration attribute. I have set my price rule up with scope of Configurator and have my configuration attributes set to apply immediately. For testing, I have no price conditions or lookup queries, just a price action. My price action is currently set to apply text from the “value” field. However, it is not firing. I did add the target field to the field set as you mentioned. But it’s still not firing. Any suggestions?
Hi Emily!
Currently, setting configuration attributes with configurator scoped price rules is not supported. This is a huge missed opportunity for CPQ. Perhaps in a future release, they’ll support this.
We wanted to add validation on the product option that quantity should always be multiplier of a field specified on the product record during product configuration. For ex. If multiplier is 50 then quantity can be 50,100,150.
Yes! You can do this!
Product
– Qty Multiplier
Quote Line
– Qty Multiplier (Twin field of Product field)
– Multiplier Remainder
Product Option
– Qty Multiplier (Twin field of Product field)
– Multiplier Remainder
Price Rule
Calculate Multiplier Remainder on Product Option with MOD(Quantity, Qty Multiplier)
Product Rule
Type: Validation
Message: Qty must be a multiplier of the Qty Multiplier value.
Product Condition
Tested Object: Product Option
Tested Field: Multiplier Remainder
Operator: greater than
Filter Type: Value
Filter Value: 0
Hi , We want to set Quantity on Configurator screen based on formula (mentioned in Price Action)
Target Object – Product Option
Target Field – SBQQ_Quantity__c
Formula – CEILING(SBQQ_Quanity__c) or any other simple formula like 4+5
none of the formula is working and everytime it is blanking out the Target Field. Any help in this regard ? Thanks.
Unfortunately: In Price Action, you can not use the Formula field or Source Field field in configurator Price Rules.
Is there a possibility when a quote is configured by CPQ quote Api and saved using calculateQuote.Post that when next time Quote is edited and saved. Will price rules trigger?
I am observing the price rule not getting trigerred post configuration.
This is interesting. I actually don’t know the answer to this. I’d have to test it out to give you a good answer.
Hi,
we have a requirement like on the configuration page we have configuration attribute which is of pick list field. Based on the selection of the configuration attribute value i need to quto populate the quantity field on the configuration page itself.
Unfortunately this is not possible: In Price Action, you can not use the Formula field or Source Field field in configurator Price Rules. Also, the “Apply to Product Options” field does not actually apply the value to the options until after you click the Save button. So the option lines in the configurator will never know what the value of the configuration attribute is.
You would need to put the picklist field in the option configuration field set (instead of having it in a configuration attribute) and use it in a lookup price rule. Look up table has the pick list field as lookup query and a decimal value of the quantity as the source lookup field. Then you would need to set the picklist field for every line that needs a value for this.
Hi Dennis,
Does the change in in-line attributes of product options triggers the configurator scoped Price Rules(Evaluation event as Edit) if the Apply Immediately on product option is set to true. As far as i know whenever we select/deselect/ and when Apply Rules custom action is clicked then only the rules will run. Changing in any in-line picklist attribute won’t enforce the Price rules to run even if the condition is being satisfied ? Is this the right assumption ?
Thanks,
Nitish
Yes these Price Rules only get fired when Product Rules get fired. So you have to do something to the configuration of the bundle for them to fire. 👍🏻