blach Posted March 30, 2010 Share Posted March 30, 2010 BonjourJe travaille actuellement sur un module de paiement en ligne. Le prestataire a besoin que je lui envoi:- les prix unitaires des produits commandés- les quantités- le total de la commande.Cela fonctionne si il n'y a pas de code promo sur le panier, mais lorsqu'il y a un code, il faut que je récupère le discount et que je l'applique sur le prix.Ma question : comment tester si un discount est applicable sur un produit, j'imagine que ça doit se faire via la catégorie).Je suis parti comme ça : $discounts = $params['cart']->getDiscounts(); $products = $params['cart']->getProducts(); foreach ($products as $product){ $remise=0; foreach ($discounts AS $discount){ $cat = Discount::getCategories($discount['id_discount']); if (Product::idIsOnCategoryId(intval($product['id_product']), $cat)) { $remise=$remise+$discount['value']; } } $descriptions = $product['name']; $prixunitaires=number_format($product['price']*(1-$remise/100), 2, '.', ''); $product['price']; $quantites=$product['quantity']; Mais ça ne marche pas Si quelqu'un a des idées, je suis preneur.Existe il une doc sur les différentes classes dispo ?Merci Link to comment Share on other sites More sharing options...
blach Posted March 30, 2010 Author Share Posted March 30, 2010 j'ai trouvé, il me manquait une parenthèse ...pour ceux que ça interesse, le code complet : // initialisation $descriptions=""; $prixunitaires=""; $quantites=""; $cpt_product=1; // recup parametre panier $discounts = $params['cart']->getDiscounts(); $products = $params['cart']->getProducts(); foreach ($products as $product){ $remise=0; // premiere iteration if ($cpt_product==1) { foreach ($discounts AS $discount){ $cat = Discount::getCategories(Discount::getIdByName($discount['name'])); if (Product::idIsOnCategoryId(intval($product['id_product']), $cat)) { $remise=$remise+$discount['value']; } } $descriptions = $product['name']; $prixunitaires=number_format($product['price']*1.20*(1-$remise/100), 2, '.', ''); $product['price']; $quantites=$product['quantity']; } else // iteration suivante { foreach ($discounts AS $discount){ $cat = Discount::getCategories(Discount::getIdByName($discount['name'])); if (Product::idIsOnCategoryId(intval($product['id_product']), $cat)) { $remise=$remise+$discount['value']; } } $descriptions = $descriptions .';'. $product['name']; $prixunitaires=$prixunitaires.';'. number_format($product['price']*1.20*(1-$remise/100), 2, '.', ''); $quantites=$quantites.';'.$product['quantity']; } $cpt_product++; } la tva est codée en dure, 1.20, elle est fixe pour tous les produits. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now