Jump to content

Frais de port gratuit, problème avec multiples transporteurs


Recommended Posts

Bonjour,
 
Je suis en Prestashop version 1.6.0.9 j'ai un souci avec les frais de port.
Dans ma boutique si vous achetez pour 75€ de produits les frais de port deviennent gratuit. 
(Je pense que ça concerne quand même beaucoup de e-Commerçant) 
 
Je propose plusieurs styles de frais de port : sans suivi, avec suivi, colissimo, Chronopost etc.
Du coup, lorsqu'un client atteint les 75€ il a tous les modes de livraison sont gratuit  :unsure: 
 
Et s'est là qu'un généreux codeur ou alors LA TEAM PRESTASHOP DEVRAIT FAIRE QUELQUE CHOSE pour améliorer le code que je vais donner plus bas le code qui fonctionnait en Prrestashop 1.4 et même jusqu'à la 1.6.0.6 ou 1.6.0.8....
 
(le code à l'époque avait était généreusement fourni par : Masters "respect"  :ph34r:
 
Problème: depuis la 1.6.0.9 je me suis fait avoir sur plusieurs livraisons et le code ne fonctionne plus, il creer des erreurs s'y ont l'intégre dans le code et du coup ben ça fonctionne plus comme avant... 
 
Voici le code qui permet (où permettait) d'offrir-les frais de port à partir d’un certain montant (par exemple 99 €) avec un transporteur unique (exemple colissimo) et dans une zone unique (exemple France).
 
 
Code qui se trouve dans le dossier « classes », ouvrir « Cart.php »
 
 // Free fees

  $free_fees_price = 0;

  if (isset($configuration['PS_SHIPPING_FREE_PRICE']))

   $free_fees_price = Tools::convertPrice((float)($configuration['PS_SHIPPING_FREE_PRICE']), Currency::getCurrencyInstance((int)($this->id_currency)));

  $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;

Qui était à modifier par : 

 
// Free fees

  $free_fees_price = 0;

  if (isset($configuration['PS_SHIPPING_FREE_PRICE']))

   $free_fees_price = Tools::convertPrice((float)($configuration['PS_SHIPPING_FREE_PRICE']), Currency::getCurrencyInstance((int)($this->id_currency)));

  $orderTotalwithDiscounts = $this->getOrderTotal(true, Cart::BOTH_WITHOUT_SHIPPING);

  if ($orderTotalwithDiscounts >= (float)($free_fees_price) AND (float)($free_fees_price) > 0 AND intval($id_zone) == 9 AND intval($id_carrier) == 3)

   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_zone) == 9 AND intval($id_carrier) == 3)

   return $shipping_cost;

Et surtout il était conseillé de :

 
Ne pas oublier de changer « ($id_zone) == 9 » par votre N° ID de zone
Ainsi que le N° ID du transporteur pour le frais de port gratuit « ($id_carrier) == 3) »
 
Donc en gros si il y a un codeur PHP qui voudrait mettre le nez dans le bout de code et trouver la solution pour un bon paramétrage en Prestashop 1.6.0.9 ca aidera pas mal de gens car je vois que personne n’a vraiment de réponse :)
 
 
Merci d'avance de votre soutien  :ph34r:

Share this post


Link to post
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
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More