function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Kyle GolikKyle Golik 

Discount formula Help and thoughts

IF ( [Quote].TotalPrice <= 19999.99([Quote].TotalPrice=[Quote].TotalPrice * 1 ) 
IF ( [Quote].TotalPrice >= 20000.00 && [Quote].TotalPrice <= 39999.99([Quote].TotalPrice=[Quote].TotalPrice * 0.98) 
IF ( [Quote].TotalPrice >= 40000.00 && [Quote].TotalPrice <= 59999.99([Quote].TotalPrice=[Quote].TotalPrice * 0.96)  
IF ( [Quote].TotalPrice >= 60000.00 && [Quote].TotalPrice <= 79999.99([Quote].TotalPrice=[Quote].TotalPrice * 0.94) 
IF ( [Quote].TotalPrice >= 80000.00 && [Quote].TotalPrice <= 99999.99([Quote].TotalPrice=[Quote].TotalPrice * 0.92) 
IF ( [Quote].TotalPrice >= 100000.00 && [Quote].TotalPrice <= 119999.99([Quote].TotalPrice=[Quote].TotalPrice * 0.90) 
IF ( [Quote].TotalPrice >= 120000.00 && [Quote].TotalPrice <= 139999.99([Quote].TotalPrice=[Quote].TotalPrice * 0.88) 
IF ( [Quote].TotalPrice >= 140000.00 && [Quote].TotalPrice <= 159999.99([Quote].TotalPrice=[Quote].TotalPrice * 0.86) 
IF ( [Quote].TotalPrice >= 160000.00 && [Quote].TotalPrice <= 179999.99([Quote].TotalPrice=[Quote].TotalPrice * 0.84) 
IF ( [Quote].TotalPrice >= 180000.00 && [Quote].TotalPrice <= 199999.99([Quote].TotalPrice=[Quote].TotalPrice * 0.82) 
IF ( [Quote].TotalPrice >= 200000.00 ([Quote].TotalPrice=[Quote].TotalPrice * 0.80)  
ELSE NULL ) ) ) ) ) ) ) ) ) ) )

Our company is trying to unveil new discount opportunities to our clients and I have implemented frequency/volume pricing on products, loyalty pricing. One last discount they are looking for is the ability to discount the entire quote/opportunity.

Through research I learned without CPQ the best way is to use a workflow in process builder.

Above is the formula that I am getting the error "The formula expression is invalid: Syntax error. Missing ')'" I have reviewed several times and believe each parenthesis is accounted for. Only other thing I can think of is the way I am trying to use the ELSE clause is confusing SF.

So my questions are:

#1 Is my thought process through Process Builder sound or is there a better way?

#2 More applicable to this discussion section - what am I erroring out on here in the sample code?

Thank you in advance

Alain CabonAlain Cabon
Hi,

In a formula, you don't use "ELSE"  (even for the default value). Just commas and parenthesis.

IF ( <condition>, <result when true> , <result when false> )

IF ( <condition1> , <result1 when true>,   IF ( <condition2>, <result2 when true> , <default value> )   )  
 
Sudhir gonuguntlaSudhir gonuguntla
Try This formule below. 
 
OR (
[Quote].TotalPrice <= 19999.99, [Quote].TotalPrice * 1), 
IF (
AND (
[Quote].TotalPrice >= 20000.00,  [Quote].TotalPrice <= 39999.99) ,
 [Quote].TotalPrice * 0.98,
IF (
AND (
[Quote].TotalPrice >= 40000.00,  [Quote].TotalPrice <= 59999.99) ,
 [Quote].TotalPrice * 0.96,
IF (
AND (
[Quote].TotalPrice >= 60000.00,  [Quote].TotalPrice <= 79999.99) ,
 [Quote].TotalPrice * 0.94,
IF (
AND (
[Quote].TotalPrice >= 80000.00,  [Quote].TotalPrice <= 99999.99) ,
 [Quote].TotalPrice *0.92,
IF (
AND (
[Quote].TotalPrice >= 100000.00,  [Quote].TotalPrice <= 119999.99) ,
 [Quote].TotalPrice * 0.90,
IF (
AND (
[Quote].TotalPrice >= 120000.00,  [Quote].TotalPrice <= 139999.99) ,
 [Quote].TotalPrice * 0.88,
IF (
AND (
[Quote].TotalPrice >= 140000.00,  [Quote].TotalPrice <= 119999.99) ,
 [Quote].TotalPrice * 0.86,
IF (
AND (
[Quote].TotalPrice >= 160000.00,  [Quote].TotalPrice <= 159999.99) ,
 [Quote].TotalPrice * 0.84,
IF (
AND (
[Quote].TotalPrice >= 180000.00,  [Quote].TotalPrice <= 199999.99) ,
 [Quote].TotalPrice * 0.82,
IF (
[Quote].TotalPrice >= 200000.00, [Quote].TotalPrice * 0.80, 
Null
)))))))))))