Posted by Paul Furman on 03/03/07 01:04
Paul Furman wrote:
> First, I'm sure the following code is not using an efficient structure
> for the nested if then else's but I can't recall the right way:
>
> if ($item_qty > 19)
> {
> $price = ($price * .925);
> $qty_discount = '20 @ 7.5%';
> } else
> {
> if ($item_qty > 9)
> {
> $price = ($price * .95);
> $qty_discount = '10 @ 5%';
> } else
> {
> if ($item_qty > 4)
> {
> $price = ($price * .975);
> $qty_discount = '5 @ 2.5%';
> }
> }
> }
>
> Second question, if you see what I'm doing it's to discount e-commerce
> sales based on the quanity ordered. It's easier to pull 50 of the same
> item than 1 each of 50 different things. I'm not sure what's quite right
> but lets say an order of 1 has no discount and an order of 100 is 50%
> off. Surely there is a way of incrementally calculating the discount for
> any quantity between 1 and 100 but I'm no math whiz.
I solved this part so the first problem doesn't really matter though I
should know how to do that!
Basically I made this 'rate' number that says how much to increment per
unit purchased. Each additional unit gets a bit more discount.
$item_qty = 10;
$price = 100;
//$1-$100 discount up to 50%
$rate = (.5/100);
//subtract one 'rate' so a purchase of 1 unit is not discounted .005%
($qty_discount = (($item_qty*$rate)/1)-$rate);
//set cap at 50%
if ($item_qty > 99){$qty_discount = .5;}
//subtract discount from price
$price = ($price - ($price * ($qty_discount)));
print " final: ".$price;
~returns $50 discounted price at 100 units~
[Back to original message]
|