I started off simply until I got this working as intended.

To start with, I added 3 fields to my cart object

Discount1to9; Discount10to49; Discount50to100

I added the calculation field as described

((abs([DiscountGroup] == 'A' && ([Quantity] >= '1' && [Quantity] <= '9'))*[Discount1to9]) + (abs([DiscountGroup] == 'A' && ([Quantity] >= '10' && [Quantity] <= '49'))*[Discount10to49]) + (abs([DiscountGroup] == 'A' && ([Quantity] >= '50' && [Quantity] <= '100'))*[Discount50to100])) * [Quantity]

On my add to cart page, for testing purposes, I have set the discounts for each quantity break to 10% 20% and 30%

To start with, I have added a new discount rule, whose calculation is the subtotal of column 'itemDiscount'.

As the trigger, I have set ‘Total Number of Items > 0’.

This seems to give me the desired result.

With Discount group A items… If I add 10 of Item 1 and 5 of item 2, my discount calculates as 20% of Item 1 and 10% of item 2

I can even put the discount amount in line with each cart item – great.

(I assume by this method, I will only ever get one line under the discounts section, so in order to have some clarity re the discount applied, I need to use the inline method I mentioned above)

I now need to take this 2 stages further.

1. Include Discount Group B, C, D etc in the calculation field

2. Set different price breaks for each Discount Group.

I presume, to achieve stage 1, I just extend the calculation as follows…

((abs([DiscountGroup] == 'A' && ([Quantity] >= '1' && [Quantity] <= '9'))*[Discount1to9]) + (abs([DiscountGroup] == 'A' && ([Quantity] >= '10' && [Quantity] <= '49'))*[Discount10to49]) + (abs([DiscountGroup] == 'A' && ([Quantity] >= '50' && [Quantity] <= '100'))*[Discount50to99]) + (abs([DiscountGroup] == 'B' && ([Quantity] >= '1' && [Quantity] <= '9'))*[Discount1to9]) + (abs([DiscountGroup] == 'B' && ([Quantity] >= '10' && [Quantity] <= '49'))*[Discount10to49]) + (abs([DiscountGroup] == 'B' && ([Quantity] >= '50' && [Quantity] <= '100'))*[Discount50to99]) + (abs([DiscountGroup] == 'C' && ([Quantity] >= '1' && [Quantity] <= '9'))*[Discount1to9]) + (abs([DiscountGroup] == 'C' && ([Quantity] >= '10' && [Quantity] <= '49'))*[Discount10to49]) + (abs([DiscountGroup] == 'C' && ([Quantity] >= '50' && [Quantity] <= '100'))*[Discount50to99]) + (abs([DiscountGroup] == 'D' && ([Quantity] >= '1' && [Quantity] <= '9'))*[Discount1to9]) + (abs([DiscountGroup] == 'D' && ([Quantity] >= '10' && [Quantity] <= '49'))*[Discount10to49]) + (abs([DiscountGroup] == 'D' && ([Quantity] >= '50' && [Quantity] <= '100'))*[Discount50to99])) * [Quantity]

…to include all Discount Groups.

Can you please elaborate on how I could achieve what you stated in your email

…(you can get really crazy though and set the quantity breaks on an item by item basis by adding a low high column for each quantity level). Using an example where the price breaks for Discount group A were as before, (1-9, 10-49, 50-100) and the price breaks for Discount Group B are 10-24, 25-100, 101-999)

Thanks in advance