Bonjour,
En natif, HikaShop ne permet pas d'associer plusieurs taux de remise différents à un même code coupon. En revanche, notre extension "HikaShop Coupon Conditions" permet de faire exactement ce que vous décrivez, en autorisant le calcul du montant de la remise à partir d'une formule évaluée pour chaque produit du panier puis sommée.
Voici comment la configurer pour votre cas précis.
1) Créez un coupon classique dans HikaShop avec le code MONCODE. Peu importe le pourcentage ou le montant saisi dans sa configuration, il sera remplacé par la formule. Vous pouvez laisser "0 %".
2) Installez l'extension "HikaShop Coupon Conditions" disponible sur
www.hikashop.com/marketplace/product/292-coupon-conditions.html
puis activez le plugin dans Extensions > Plugins.
3) Dans la configuration du plugin, ajoutez une ligne dans le tableau "Conditions" avec les paramètres suivants :
Coupons concernés : sélectionnez MONCODE dans la liste.
Condition : laissez vide. On veut que la remise s'applique dès qu'un des deux produits est dans le panier, sans message d'erreur.
Formule de valeur :
(({product.product_id} == X1) * {product.price} * 0.15) + (({product.product_id} == X2) * {product.price} * 0.30)
Remplacez X1 par l'identifiant de PRODUCT1 et X2 par celui de PRODUCT2. Vous trouverez l'id de chaque produit sur la page de modification du produit dans le back end.
4) Sauvegardez.
Comment ça fonctionne en coulisses. Lorsque le client valide le code MONCODE, le plugin parcourt chaque produit du panier et évalue la formule pour chacun. La balise {product.product_id} est remplacée par l'id du produit courant, et {product.price} par le prix total de sa ligne (quantité incluse, hors taxes par défaut). Pour un produit qui n'est ni PRODUCT1 ni PRODUCT2, les deux facteurs booléens retournent 0 et la formule donne 0. Pour PRODUCT1 elle donne 0.15 fois le prix de sa ligne, pour PRODUCT2 elle donne 0.30 fois le prix de sa ligne. Les résultats sont additionnés puis imposés au coupon comme montant forfaitaire de remise, ce qui permet aux deux réductions de s'appliquer en même temps quand les deux produits sont dans le panier.
Quelques remarques utiles.
Si vous préférez appliquer le pourcentage au prix unitaire plutôt qu'au prix total de la ligne (par exemple pour que la quantité ne change pas la remise), remplacez {product.price} par {product.unit_price} dans la formule.
Si vous voulez que le calcul porte sur les prix TTC, ajoutez le suffixe :tax sur les balises : {product.price:tax} et {product.unit_price:tax}.
Si aucun des deux produits n'est dans le panier, la formule renvoie 0 et le plugin ne remplace pas la remise du coupon, qui garde alors sa valeur par défaut. Pour que le coupon soit alors sans effet, laissez simplement la remise du coupon à 0 %.
Vous pouvez bien sûr étendre la formule à plus de deux produits en ajoutant d'autres termes du même format sur le même modèle.
Cordialement