I'm here with a tricky question about Drupal Commerce. Here's my need:

  1. I have a group of products that have a variable price based on quantity.
  2. Each product has specific (only for that product) attributes that can modify the price.
  3. [The real problem] Each attribute price is variable based on the original product quantity.

A real example: 0-300 pieces -> 0.75€ 300+ pieces -> 0.52€

OptionA 0-300 pieces -> 0.07€ OptionA 300+ pieces -> 0.05

So if I buy 400 pieces + OptionA i pay 0.52+0.05 each, but if I buy 200 pieces I pay 0.75+0.07.

Basically what I want to achieve is to have the attribute price dinamically changed depending on the quantity.

How could I achieve such result? I can't really find a way. Thank you in advance!

2 Answers 2


You may decrease price by setting up the rule on "After product added to cart" event, checking up the quantity added and calculate discount in a way you want to, for example.


Instead of applying a discount after they added it to the cart as described in another answer, this is exactly why prices are calculated every time they are displayed.

commerce price table screenshot

There's a great little module called Commerce Price Table that can give you the ability to change the base price based on quantity, and display this price to the user as well.

price table widget

Video walking you through set up.

  • Note that each product would have to be a unique set of attributes and you would have to manually enter the final price per quantity breakdown. This could probably be done automatically using rules and some custom fields if you have thousands and thousands of attribute combinations.
    – joshmiller
    Commented Feb 8, 2016 at 20:53
  • Thank you for the feedback. Yes I'm using Price Table to define the product price based on quantity. So far no issue. The real problem is that I should make the same thing with the attributes (like: normally this attribute adds .5€ to the final price but if the quantity is over 500 it adds just .35€). I hope I've been clear enough! Commented Feb 10, 2016 at 8:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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