I have a price calculation rule like this:

Event: Calculating the sell price of a product

Conditions: Order contains products of particular product types AND User has roles

Actions: Multiply the unit price by some amount

Now, the problem is that when the cart contains products of the type that I selected as a condition AND the user has a specific role, the multiplication in the Action element is executed also on products of other product types. I only want to affect the prices of products with a specific type.

The cart can contain a mix of products of different types, but the rule should only affect the line items with the specific type.

How do I do that?

1 Answer 1


Depending on your multiplication factor (I suppose you want to give a discount), you might want to try Commerce discount which has support for discounts per order and discounts per product.

Commerce Discount provides a new user interface for defining and managing product and order level discounts. Using just the core pricing system of Drupal Commerce requires knowledge of how to use the Rules UI, which is beyond the capabilities of most merchants. Additionally, the core system cannot support order level discounts or certain types of shipping / product discounts. This module addresses all of those things.

The role based discount condition is provided by Commerce discount extra.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.