Our customer has products with 3 different prices, based on the total weight of the order. If the total weight of the order is below 1000kg, I have to use the normal price, between 1000 and 3000 kg use price with the first discount, over 3000 price with use the second discount. The discounts are based on the products themselves not on any categories. Each product has its own price and discount prices.

Example:

Product1 has
Price1 (under 1000kg total order): 100 CHF
Price2 (more than 1000kg total order): 95 CHF - Discount 5 CHF
Price3 more (more than 3000kg total order): 90 CHF - Discount 10 CHF

Product2 has
Price1 (under 1000kg total order): 105 CHF
Price2 (more than 1000kg total order): 95 CHF - Discount 10 CHF
Price3 more (more than 3000kg total order): 90 CHF - Discount 15 CHF

etc...

I guess the best way to start would be to add the two discounts as two fields in the product table with values of (for Product1) discountPrice2: CHF 5 and discountPrice3: CHF 10.

I tried to find a suitable trigger and corresponding calculation but can't find a way to go.
Or can I chance the prices in the cart on thy fly when the total weight excees 1000kg?

How do I solve this problem?

Thanks for any help in advance.