Cart price rules with my own mathematical formula?

I’m at a loss as to how to approach this.

We sell weighable products by the quantities requested by the customer, e.g. 25 grams, 50 grams, 100 grams, etc. There’s no upper limit (other than what’s in stock), so a customer could place an order for exactly 10425 grams (10,425 kg) if they wanted to.

All products are starting at 25 grams, the minimum amount. An order for 100 grams of said product would simply be 4 times the base product (starting at 25 grams) added to the cart. We incentivize buying more with discounts:

Starting at 100 grams total (qty of 4), the customer gets -15% on the total row price. Starting at 200 grams it’s -25%, then at 500 grams it’s -35%, and finally at 1000 grams the discount is -45%, which is the maximum we offer.

The stepped discounts have worked beautifully. For example, 150 grams of a product is 6 times the base product (starting at 25 grams) with a -15% discount applied to the row. Programming the price rules for all this has been simple.

Our problem is that we would like to increase the price in the catalog for the base amount by 1 USD, but without affecting the higher tiers. I’ll provide an example:

Product A.

25 grams - 5 USD 50 grams - 10 USD (no discount) 100 grams - 17 USD (-15%) 200 grams - 30 USD (-25%) 500 grams - 65 USD (-35%) 1000 grams - 110 USD (-45%) >1000 grams is always -45%. 

I want to increase the price for 25 grams by 1 USD so that the total is 6 USD, but the rest of the tiers shouldn’t be affected so 50 grams is still 10 USD, 100 grams is still 17 USD, etc.

The problem is that I want to increase the prices by a fixed 1 USD only for the base amount, so I can’t just calculate a new percentage for the tiers. Some products start at 20 USD for example so the behavior percentage-wise would be different.

I don’t want to “add” a fee, this should be transparent to customers. What they should see in the catalog is the new price increased by 1 USD, but I would lay out the prices as follows in the product description:

Buy more to save more:

25 grams - 6 USD 50 grams - 10 USD (you save 2 USD) 100 grams - 17 USD (you save 7 USD) 200 grams - 30 USD (you save 18 USD) 500 grams - 65 USD (you save 55 USD) 1000 grams - 110 USD (you save 130 USD) 

Is there any way to make this possible in Magento?

submitted by /u/TaxiDriver92
[link] [comments]