2016-07-29 4 views
0

Je pense coincé sur la façon de le faire: J'ai un panier et je veux créer un système de coupons avec 2x1, 3x2, discount 5x3, etc.formule de réduction 2x1 3x2 etc PHP

Mais je ne peut pas résoudre ce problème pour obtenir une formule et montrer le prix total après l'application du coupon.

Par exemple: prix de l'article: 5 $ USD et moi avons un 2x1 coupon:

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) 

De la même manière. Prix ​​de l'article: 5 USD. et maintenant j'ai un coupon 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) 



Comment obtenir le prix total en utilisant le coupon en PHP?

+0

est le prix de l'article important? Votre exemple montre tous les articles ayant le même prix. Que faire si je mets deux articles à 5 $ et deux à 6 $. – Gordon

+0

Je suis désolé pour les clients qui doivent utiliser un système qui va leur vendre 6 articles pour le prix de 2, mais 5 pour le prix de 3. – hobbs

Répondre

0

Une autre solution:

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

cela fonctionne parfaitement. Merci beaucoup!!! – Nicomuniz

0

ai pas testé mais cette fonction devrait fonctionner:

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; 

}