2016-07-29 6 views
0

Я застрял думать о том, как это сделать: У меня есть корзина, и я хочу, чтобы создать систему купона с 2x1, 3x2, 5x3 скидки и т.д.формула скидка 2x1 3x2 и т.д. PHP

Но я не может решить эту проблему, чтобы получить формулу и показать общую цену после применения купона.

Например: цена товара: $ 5 долларов и у меня есть купон 2x1:

If I buy 2 items: TOTAL: $5,00 usd (2x1) 
If I buy 3 items: TOTAL: $10,00 usd (2x1 + 1) 
If I buy 4 items: TOTAL: $10,00 usd (2x1 + 2x1) 

таким же образом. Цена товара: 5 долларов США. и теперь у меня есть купон 3x1.

If I buy 2 items: TOTAL: $10,00 usd (3x1 NOPE!) 
If I buy 3 items: TOTAL: $5,00 usd (3x1) 
If I buy 4 items: TOTAL: $10,00 usd (3x1 + 1) 
If I buy 5 items: TOTAL: $15,00 usd (3x1 + 2) 
If I buy 6 items: TOTAL: $10,00 usd (3x1 + 3x1) 
If I buy 7 items: TOTAL: $15,00 usd (3x1 + 3x1 + 1) 



Как получить общую цену, используя купон в PHP?

+0

является цена товара важно? В вашем примере показаны все товары с одинаковой ценой. Что, если я поставлю два предмета по 5 долларов и два на 6 долларов. – Gordon

+0

Мне жаль клиентов, которые должны использовать систему, которая будет продавать их 6 предметов по цене 2, но 5 по цене 3. – hobbs

ответ

0

Другое решение:

function calc($item_count, $unit_price, $coupon) 
{ 
    list($need, $paid) = explode('x', $coupon); 
    $left = $item_count % $need; 
    return $unit_price * (intval($item_count/$need) * $paid + $left); 
} 
+0

работает отлично. Большое спасибо!!! – Nicomuniz

0

Не проверял, но эта функция должна работать:

function discount($i_boughtitems,$i_necessaryitems,$i_discountitems,$i_priceofitem){ 
$i_priceofcart = 0; 

while($i_boughtitems => $i_necessaryitems){ 
    $i_priceofcart = $i_priceofcart+($i_priceofitem *$i_necessaryitems); 
    $i_boughtitems = $i_boughtitems - $i_necessaryitems; 
} 
$i_priceofcart = $i_priceofitem * $i_boughtitems; 
return $i_priceofcart; 

}