2

quantity discounts

I have the following offer with quantity discounts for a series of my products:

  • Buy 1 item and get $5 off per item
  • Buy 2 items and get $10 off per item
  • Buy 3 items and get $15 off per item

I set these discount rules in my control panel under "commerce" > "promotions".

problem

The problem is that Craft combines the quantity discounts. So when I put 3 items into the cart, Craft will for each item add a $5 discount plus a $10 discount plus a $15 discount per item – so instead of a $15 discount per item I get a $30 discount per item.

I thought I might work around this by taking this process into account and simply reducing the quantity discounts in the control panel so they would add up to the desired amount.

But that's no solution if I want to display discounts per item and discounted item price correctly on the frontend.

Plus another issue: When I put 3 items into the cart, I will then see 3 types of discounts applied to my cart which is confusing.


Is there any way to avoid this sort of combining of discounts? Will I have to create an Adjuster to accomplish my intended pricing structure?

2 Answers 2

1

Not really a good answer as such but at the moment (June 16) there is currently no facility to print the actual price a particular item will sell at after all discounts/sales are applied (unless you calculate it yourself).

This seems to me a bit of an oversight.

I have requested it as a feature, and Luke seemed amenable to the idea but I have no idea on the ETA for it.

To solve the cumulative discount issue - you can either express the discount as a cumulative thing as you mention, or you could write a simple plugin that listens to

https://craftcommerce.com/docs/events-reference#commerce_discounts.onbeforematchlineitem

...and only applies the desired discounts when the desired conditions are met

0
1

This issue has been solved. Craft Commerce discounts now have both a "minimum order qty" as well as a "maximum order qty" field. Discounts are no longer mixed up.

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.