vendredi 20 mai 2016

Prestashop 1.5.6.2, Paypal et les arrondis

Ahh, voici ici 2 logiques de calcul des prix qui s'affrontent.

Bref, Prestashop, au niveau du panier, annonce un prix total TTC, qui n'est pas le même que celui récupéré sur Paypal.
Gênant, hein.

Le truc, c'est que Paypal calcule lui-même le prix TTC des produits individuels, puis les multiplie par la quantité. D'où de jolis problèmes d'arrondis.

Plutôt que plonger dans le code dumodule paypal, j'ai préféré adapter prestashop à la logique Paypal :
Modif de la classe/cart.php

$total_price = Tools::ps_round($total_price + $total_ecotax, 2);

DEVIENT

$total_price = Tools::ps_round($product['price_wt'] * (int)$product['cart_quantity'], 2);

Et voilà. Les montants sont désormais identiques.