Jump to content

Resolu - Calcul des tranches de prix en HT au lieu de TTC pour le transport


Recommended Posts

Bonjour à tous !

 

Je me heurte à un petit problème depuis quelques jours sur mon presta 1.4.9 :

 

Constat : Le calcul des tranches de prix pour les frais de ports sont calculés à partir du prix TTC de mes produits et non du prix Hors Taxes. Ce qui est très gênant pour moi qui vit en Amérique du Nord ou chaque province / État à un taux de taxe différent et ou nous affichons tous nos prix en Hors Taxes.

 

Ma config : presta 1.4.9,

Tranche de prix 0$ - 60$ : Shipping = 8$

Tranche de prix 60$ - 1000$ : shipping = 0$

 

Mon problème est que cette "barrière" des 60$ est TTC alors que tous mes prix sont basés et affichés sur le HT.

 

En gros : mes clients qui achètent pour 59$ HT se voient offrir les frais de ports alors que ceux ci ne sont supposés être gratuits qu'a partir de 60$ hors taxes...

 

NB : Il m'est impossible d'afficher les prix en TTC comme en Europe car nous avons une 50aine de taux de taxes différents...

 

MON BUT : transformer cette barrière de 60$ TTC en 60$ HT

 

Je suis à votre écoute même pour un ersatz de réponse...

merci

Edited by krymeleroy (see edit history)
Link to comment
Share on other sites

Salut,

Sur la 1.4.9, le calcul du total avant appel au calcul par tranches de prix est fait à la ligne 1059 de /classes/Cart.php :

 

 $order_total = $this->getOrderTotal(true, Cart::ONLY_PHYSICAL_PRODUCTS_WITHOUT_SHIPPING);

 

C'est le premier paramètre qui te fiche dans l'eau : true , qui signifie en gros ttc...

 

Si tu mets false à la place, et en supposant (je n'ai pas testé mais il semble que ce soit ok) , que la variable $order_total ne soit utilisée que pour le calcul des tranches dans ce contexte, alors tu auras le résultat souhaité.

 

Après évidemment si tu veux faire propre on pourra dire qu'il est mieux de faire une override etc .... mais dans ton cas , si tu changes de version de presta au dela de la 1.4.9, il y a fort à parier que ton override ne sera plus correcte.

 

Je dirais donc que dans ton cas, une modif core de la ligne 1059 de cette classe en :

 

 $order_total = $this->getOrderTotal(false, Cart::ONLY_PHYSICAL_PRODUCTS_WITHOUT_SHIPPING);

 

résoudra ton affaire.

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...