Le fonctionnement standard des règles de promotions de Magento peut poser problème dès lors qu’elles sont cumulées et qu’elles se basent sur une condition de montant.
Dans le cas suivant le comportement standard de Magento pose problème

  • Les frais de ports sont offerts via une règle de promotion ajoutée automatiquement au panier dès qu’il dépasse 50 € . ( condition : sous-total > 50 )
  • Le client à un panier supérieur à 50 € ( 51.96 dans mon exemple )
  • Le client applique un bon de réduction de 10€ ( via une autre règle de promotion avec un coupon )

=> Ce qui fait que le montant de sa commande ne dépasse plus le seuil nécessaire pour obtenir les frais de ports offerts.

Cependant comme vous pouvez le voir sur la capture ci-dessous, cette restriction n’est pas prise en compte par Magento.
Car la condition sous-total est basée sur le sous total initial de la commande, qui ne comprends pas les réductions
Les frais de ports sont donc offerts sur cette commande, alors qu’ils ne devraient pas l’être.

SalesRules Initiale

Ce problème n’est pas nouveau, et il existe de nombreux sujets sur la question ( en anglais ), et rare sont ceux qui y apportent une solution.
J’ai trouvé la solution sur celui-ci http://magento.stackexchange.com/a/26413 , elle nécessite cependant de savoir programmer sur Magento pour pouvoir la mettre en place.

Pour les non programmeurs j’en ai donc fait un module Magento 🙂
( Pour l’instant uniquement testé avec des version Magento 1.9 )

Il est disponible sur github : https://github.com/nenes25/magento_hhennes_SaleRule
Vous pouvez le télécharger directement à partir du lien suivant : Magento SalesRules

Celui-ci rajoute une nouvelle option dans les règles de promotions “Subtotal with discount” ( Sous total avec remise en français )

Subtotal with discount

Dans notre exemple précédent, nous allons changer la condition “sous total” de la règle des frais de ports par cette nouvelle condition “Sous total avec Remise”
Une fois la règle enregistrée, le résultat sera bien celui souhaité :
=> Les frais de ports ne sont pas offerts car le montant ne dépasse pas 50€

SalesRule Magento avec nouvelle condition