Bonjour à tous,
Je ne parviens pas à articuler mon code logiquement, sachant que j'ai une boucle dans laquelle passent des ID de produits. Pour chacun d'entre eux, 3 types de remises peuvent s'appliquer, mais pas se cumuler. Et je dois respecter un ordre de priorité des remises :
- La remise "code-promo" prime sur les 2 autres
- La remise "promoprod" prime sur la dernière
- La remise "promocat" ne s'applique que si aucune n'a été appliquée.
Mais rien n'empêche que 3 produits soient dans le panier et que chacun ait une des trois remises. L'important, c'est le non-cumul pour un même produit.
Mais ce code ne fonctionne que si le produit soumis à "code-promo" se présente en 1er dans la boucle. Or je ne connais pas l'ordre des produits.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 foreach( $tab as $id_prod=>$prix){ if(is_code_promo($id_prod)){ $remise = is_code_promo($id_prod); $prix = applique_remise($prix, $remise); }else{ if(is_promoprod($id_produit)) { $remise = is_promoprod($id_prod); $prix = applique_remise($prix, $remise); }else{ if(is_promocat($id_prod)) { $remise = is_promocat($id_prod)); $prix = applique_remise($prix, $remise); } } } }
Je ne sais pas si j'ai bien expliqué le truc (j'ai beaucoup simplifié) mais si oui, je veux bien une piste sur la façon d'organiser ça.
Merci d'avance.
Partager