Prestashop – Franco de port uniquement pour un seul transporteur
Par défaut sous Prestashop lorsque l’on active les frais de transporteur offert sous prestashop à partir d’un certain montant, ça impacte sur l’ensemble des transporteurs enregistrés.
Maintenant si on envoie des colis via Colissimo et Chronopost par exemple, on peut vouloir offrir les frais de port pour Colissimo mais pas pour Chronopost.
Pour cela rien de plus simple, mais il faut tout de même toucher 2 lignes de codes.
Avant tout chose, aller dans la base de données et se déplacer dans la table ps_carrier
Ici on peut voir l’ensemble des transporteurs enregistrés sous Prestashop. Repérer par exemple Colissimo et son ID nommé id_carrier.
Ensuite se connecter en FTP et éditer le fichier classes/Cart.php
Repérer le bout de code:
$orderTotalwithDiscounts = $this->getOrderTotal(true, Cart::BOTH_WITHOUT_SHIPPING);
if ($orderTotalwithDiscounts >= (float)($free_fees_price) AND (float)($free_fees_price) > 0)
return $shipping_cost;
if (isset($configuration['PS_SHIPPING_FREE_WEIGHT']) AND $this->getTotalWeight() >= (float)($configuration['PS_SHIPPING_FREE_WEIGHT']) AND (float)($configuration['PS_SHIPPING_FREE_WEIGHT']) > 0)
return $shipping_cost;
Et ajouter après >0 le code: AND intval($id_carrier) == 5 (Remplacer 5 par votre ID transporteur)
Ca donne donc:
if ($orderTotalwithDiscounts >= (float)($free_fees_price) AND (float)($free_fees_price) > 0 AND intval($id_carrier) == 5)
return $shipping_cost;
if (isset($configuration['PS_SHIPPING_FREE_WEIGHT']) AND $this->getTotalWeight() >= (float)($configuration['PS_SHIPPING_FREE_WEIGHT']) AND (float)($configuration['PS_SHIPPING_FREE_WEIGHT']) > 0 AND intval($id_carrier) == 5)
Et voilou!
A+










Commentaires récents