So, we have two ways to do this:
1) Create Rollup Summary fields counting the products based on something available via rollup summary.
2) Create an apex controller extension that sets different boolean values based on a query of products.
Advantage of the RUS is that anyone can update them and the initial set up will be super easy to create. Disadvantage is there are only so many fields we can use from Opportunity Product and we can't access Product fields unless we create a workflow rule to update a custom Opportunity Product field.
Advantage of the apex controller is that we can access product fields and set it up in such a way that if the field is set on the product, new products will always count correctly (same is true for RUS, as long as we use workflow field updates).
I'm vacillating between the two. There are only 2 of us and I'm the only one who knows Apex so I feel like Rollup summary fields will be safer even if the Apex code would be more robust.
Opinions?
2 answers
My opinion
RUS+ WF
>> In a long run if there will be scenario that your business need more complex logic to deal arround this functionality which u are building then WF Field update might not fit. You can not add any logical update in WF field update. here u just choose a filed and what its new value. No manupulation on what to update.
>> Also there is matter of fact that salesforce adding more robost feature to Process builder as it gives more capability than WF.
APEX
>> You can scale and build the way you want. If there are some driving factor for this functionality then keep them in custom label/custom setting and refer then in code so that it can be better maintainable in future.
So long story short...
>> If this seems to be a one time feature (Or very less chance that any modification required in future) then go for RUS+WF approach.
>> If there is chances of feature enhancement then go for Apex