Jump to content
Sign in to follow this  
zazou30_1

Frais de port gratuit pour un transporteur et une zône à partir d'un certain montant

Recommended Posts

Bonjour à tous et merci pour votre implication :
Il y a des réponse fructueuses, mais mon problème est différent
En résumé voila ce que je souhaiterai pour mes transporteurs et frais de port
Transporteurs Pour la France :
Colissimo (Simple) : Gratuit à partir de 69€ – cela fonctionne, sauf que la gratuité s’applique sur tous les autres transporteurs de la zone France
Colissimo recommandé R1 : Pas de Gratuité (La gratuité s’applique quand même à partir de 69€)
Colissimo recommandé R2 : Pas de Gratuité (La gratuité s’applique quand même à partir de 69€)
Colissimo recommandé R3 : Pas de Gratuité (La gratuité s’applique quand même à partir de 69€)
Transporteurs Pour l’Outre-Mer :
Colissimo Outre-mer : Pas de Gratuité (Cela fonctionne)
Colissimo recommandé Outre-Mer R1 : Pas de Gratuité (Cela fonctionne)
Colissimo recommandé Outre-Mer R2 : Pas de Gratuité (Cela fonctionne)
Colissimo recommandé Outre-Mer R3 : Pas de Gratuité (Cela fonctionne)
Transporteurs Pour la zone Europe :
Colissimo international Europe : Pas de Gratuité (Cela fonctionne)
Le transporteur par défault est bien le colissimo simple pour la zone France
Ce que j’ai modifié dans le Class/Cart.php :

if (isset($configuration[‘PS_SHIPPING_FREE_PRICE’]) AND $orderTotal >= floatval($configuration[‘PS_SHIPPING_FREE_PRICE’]) AND floatval($configuration[‘PS_SHIPPING_FREE_PRICE’]) > 0) return $shipping_cost;
remplacer par
if (isset($configuration[‘PS_SHIPPING_FREE_PRICE’]) AND $orderTotal >= floatval($configuration[‘PS_SHIPPING_FREE_PRICE’]) AND floatval($configuration[‘PS_SHIPPING_FREE_PRICE’]) > 0 AND $id_zone==6) return $shipping_cost;
Allez, je suis sûr que l’on va trouver, il y a t’il des programmateurs qui ont la solution gratuite ?
Précision : Je suis Prestashop 1.2

Share this post


Link to post
Share on other sites

Bonjour,

 

Voici la solution pour 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). Modification valable pour la version 1.4.6.2 et les précédentes.

 

Vous devez d’abord créer vos transporteurs, vérifier les zones, paramétrer le frais de port gratuit à partir de 99€ par exemple, ensuite veuillez repérer l’ID de la zone où vous souhaitez offrir le port, ainsi que l’ID du transporteur qui prendra en charge le transport gratuit.

 

Dans le dossier « classes », ouvrir « Cart.php », voici les lignes qui nous intéressent (à la ligne 1118 environ) :

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

 

Veuillez modifier par ce qui suit :

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

 

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) »

 

Sa aidera pas mal de gens car je vois que personne n’avait vraiment de réponse :)

 

Cordialement

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
Sign in to follow this  

×
×
  • Create New...

Important Information

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