santa-pi Posted November 30, 2011 Share Posted November 30, 2011 Bonjour, Voila j'ai une boutique Prestashop 1.4.4.1 et j'ai un soucis avec les frais de port. Dans ma boutique si vous achetez pour 60€ les frais de port deviennent gratuit. Cependant je propose plusieurs style de frais de port : sans suivi, avec suivi et colissimo. Du coup, lorsqu'un client atteint les 60€ il a les 3 modes de livraison gratuit. Et c'est la que je dois changer les paramètres. Je voudrais que seul le mode sans suivi soit gratuit. Et c'est impossible. Il faut que je rajoute un module. Du coup est ce que quelqu'un connais un module qui permets de faire cela? Je vous remercie par avance. Xavier. Link to comment Share on other sites More sharing options...
MasterS Posted January 6, 2012 Share Posted January 6, 2012 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 Link to comment Share on other sites More sharing options...
ml7500 Posted January 25, 2012 Share Posted January 25, 2012 Je tiens à te remercier TRES chaleureusement car tu as sauvé mon pc (je menaçais de le passer par la fenêtre! ) Travaillant avec plusieurs pays, je souhaitais proposer un franco de port à plusieurs destinations et non à une seule. J'ai donc apporté une variante à ton bout de code en ajoutant : "OR AND intval($id_zone) == YYY AND intval($id_carrier) == XXX ) " (remplacer YYY et XXX par les zones et transporteurs du second pays) Après test, cela a l'air de fonctionner Link to comment Share on other sites More sharing options...
lokiiy Posted March 5, 2012 Share Posted March 5, 2012 Version Prestashop 1.4.6.2 Whaouu franchement un grand merci à MasterS ca ssure trop ton bout de code Je tiens à dire que j'aime la qualité du post clair et précis et que ca marche nickel ... Ca fait plaisir merci beaucoup ... Et pour ta solution ml7500 j'ai pas encore testé mais je vais mettre plusieurs proposition de transporteurs pour l'Europe et donc je pense m'en servir aussi si ça marche ... Je tiendrais au courant Merci à tous les deux Link to comment Share on other sites More sharing options...
lokiiy Posted April 3, 2012 Share Posted April 3, 2012 Bonjour, Depuis ma MAJ en 1.4.7 le bout de code donné plus haut n'a plus l'air de fonctionner. Si je met pas votre bout de code dès 60€ d'achat tous mes transporteurs deviennent gratuit. Et lorsque je met le bout de code dans Cart.php en prenant soin de bien paramétrer zone et carrier je n'ai plus les frais de port offert à partir de 60€ .... Résultat l'un comme l'autre je suis coincé ... Si vous aviez une solution je suis preneur Merci d'avance Petite correction j'ai changé ma BDD et ce n'est apparemment pas la version 1.4.7 qui pose problème mais le module Chronopost qui fout la merde... Donc je confirme que le bout de code marche aussi sur la 1.4.7 de Prestashop Link to comment Share on other sites More sharing options...
lokiiy Posted April 3, 2012 Share Posted April 3, 2012 Je tiens à te remercier TRES chaleureusement car tu as sauvé mon pc (je menaçais de le passer par la fenêtre! ) Travaillant avec plusieurs pays, je souhaitais proposer un franco de port à plusieurs destinations et non à une seule. J'ai donc apporté une variante à ton bout de code en ajoutant : "OR AND intval($id_zone)==YYY AND intval($id_carrier)== XXX ) " (remplacer YYY et XXX par les zones et transporteurs du second pays) Après test, cela a l'air de fonctionner Bonjour ml7500 Je voulais savoir si tu peux me dire ou faut t'il ajouter ton bout de code. Ca ne marche pas comme avec pour la zone France avec 1 transporteur choisi J'ai pas d'erreur de syntaxe mais ca fonctionne pas Je voudrais faire pareil mais avec la zone hors France métropolitaine "Europe" et le service Colissimo International offert dès 60€ d'achat... J'ai le code comme ci dessous si tu y voie une erreur des fois : // 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) == 18) 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) == 18) return $shipping_cost; "OR AND intval($id_zone)== 1 AND intval($id_carrier)== 14 ) " ; Merci Link to comment Share on other sites More sharing options...
Tchupa Posted April 17, 2012 Share Posted April 17, 2012 Bonsoir tout le monde, voilà je me heurte un petit problème avec les frais de port gratuit, je voudrais offrir le transport au client à partir de 150€ donc avec la solution donné ci-dessus pas de soucis concernant le montant a atteindre et la zone ou je veux effectuer cette offre, par contre je vends aussi des articles qui ont un montant supérieur a 150€ sur les quel je marge très peu et qu'il me coute un bras quand j'expédie, et c'est là que le problème intervient puisque même en ajoutant des frais de port supplémentaire sur ces articles encombrants, le transport est toujours gratuit au dessus de 150€. Est ce que vous auriez une solution a mon problème? en vous remerciant. Cordialement Tchupa. Link to comment Share on other sites More sharing options...
ecomiz Posted June 13, 2012 Share Posted June 13, 2012 Concernant la configuration du franco de port, nous avons développé un petit module qui utilise dans les grandes lignes le même principe que le code donné par masterS mais permet de gérer également les groupes clients et le multi règles. par exemple : je veux un franco de port à 150€ pour la france, chronopost et mes clients "Professionnels" ou je veux un franco de port à 90€ pour la france, colissimo et mes clients "Default" on peut ainsi cumuler plusieurs règles de franco différentes en fonction de la zone, du transporteur ou du groupe client. Link to comment Share on other sites More sharing options...
Tchupa Posted October 15, 2012 Share Posted October 15, 2012 Bonjour, je n'ai toujours pas trouvé de solution a mon problème ci - dessus concernant les articles encombrants.... Posté 17 avril 2012 - 04:58 Bonsoir tout le monde, voilà je me heurte un petit problème avec les frais de port gratuit, je voudrais offrir le transport au client à partir de 150€ donc avec la solution donné ci-dessus pas de soucis concernant le montant a atteindre et la zone ou je veux effectuer cette offre, par contre je vends aussi des articles qui ont un montant supérieur a 150€ sur les quel je marge très peu et qu'il me coute un bras quand j'expédie, et c'est là que le problème intervient puisque même en ajoutant des frais de port supplémentaire sur ces articles encombrants, le transport est toujours gratuit au dessus de 150€. Est ce que vous auriez une solution a mon problème? en vous remerciant. Cordialement Tchupa. Quelqu'un pourrait me venir en aide? Merci. Cordialement. Link to comment Share on other sites More sharing options...
vincent47 Posted October 20, 2012 Share Posted October 20, 2012 Bonsoir tous le monde, je créer une boutique PS en local, je souhaite comme beaucoup restreindre la gratuité des frais de port à la France j'ai modifié mon fichier "cart" comme l'a clairement expliqué MasterS un peut plus haut mais lorsque je rafraichis ma page pour voir si la modif a bien fonctionné ... je me retrouve avec une page blanche ! je suis sur PS 1.4.9 Merci d'avance Link to comment Share on other sites More sharing options...
conilecopi Posted October 21, 2012 Share Posted October 21, 2012 Bonjour Vincent, cela vient surement d'une erreur de syntaxe. Le code a peut être été légèrement modifier entre les version 1.4.5 et 1.4.9. Tu peux copier ce code est le remplacer dans ton fichier cart.php (que tu trouveras dans le dossier classes). Pense à bien remplacer l'id de la zone et du carrier (pour moi c'est 6 et 21). // 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) == 6 AND intval($id_carrier) == 21) 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) == 6 AND intval($id_carrier) == 21) return $shipping_cost; De mon côté (en 1.4.9) ça fonctionne. Link to comment Share on other sites More sharing options...
vincent47 Posted October 21, 2012 Share Posted October 21, 2012 (edited) Bonjour conilecopi, j'ai refait un essai et ça ne marchait toujours pas... jusqu'au moment ou je rentre l'ID de la zone et non du pays comme je fait depuis le début ! erreur de débutant... je te remercie d'avoir répondu. donc ça fonctionne correctement . Edited October 21, 2012 by vincent47 (see edit history) Link to comment Share on other sites More sharing options...
Tchupa Posted November 15, 2012 Share Posted November 15, 2012 (edited) Bonsoir tout le monde, voilà je me heurte un petit problème avec les frais de port gratuit, je voudrais offrir le transport au client à partir de 150€ donc avec la solution donné ci-dessus pas de soucis concernant le montant a atteindre et la zone ou je veux effectuer cette offre, par contre je vends aussi des articles qui ont un montant supérieur a 150€ sur les quel je marge très peu et qu'il me coute un bras quand j'expédie, et c'est là que le problème intervient puisque même en ajoutant des frais de port supplémentaire sur ces articles encombrants, le transport est toujours gratuit au dessus de 150€. Est ce que vous auriez une solution a mon problème? en vous remerciant. Cordialement Tchupa. Quelqu'un aurait une idée? ou un module a me proposer ? En vous remerciant. Cordialement. Edited November 15, 2012 by Tchupa (see edit history) Link to comment Share on other sites More sharing options...
lokiiy Posted January 9, 2013 Share Posted January 9, 2013 Petite interrogation = petit post Sauriez vous comment faire pour choisir un montant différent .... Exemple : Pour la France je fais la gratuité des frais de port dès 75€ d'achat ceux ci est paramétrable dans Presta pas de soucis Avec le bout de code du début je peux même définir le Transporteur et la Zone des les 75€ Quelqu'un aurait un bout de code supplémentaire à ajouter pour que par exemple L'italie Zone1 -->(Europe) je pourrais choisir la gratuité dès 100€ d'achat Pour le Canada Zone3--> je pourrais choisir la gratuité dès 175€ d'achat Les prix colissimo devenant plus chère à l'étranger, la gratuité c'est bien mais faut aussi l'adapter ... Si vous avez une réponse je suis preneur Merci de votre soutien !! Link to comment Share on other sites More sharing options...
Opaline Posted January 29, 2013 Share Posted January 29, 2013 Merci MasterS ton code marche nickel, ca fait un moment que je cherche Link to comment Share on other sites More sharing options...
lokiiy Posted April 11, 2013 Share Posted April 11, 2013 Petite interrogation = petit post Sauriez vous comment faire pour choisir un montant différent .... Exemple : Pour la France je fais la gratuité des frais de port dès 75€ d'achat ceux ci est paramétrable dans Presta pas de soucis Avec le bout de code du début je peux même définir le Transporteur et la Zone des les 75€ Quelqu'un aurait un bout de code supplémentaire à ajouter pour que par exemple L'italie Zone1 -->(Europe) je pourrais choisir la gratuité dès 100€ d'achat Pour le Canada Zone3--> je pourrais choisir la gratuité dès 175€ d'achat Les prix colissimo devenant plus chère à l'étranger, la gratuité c'est bien mais faut aussi l'adapter ... Si vous avez une réponse je suis preneur Merci de votre soutien !! Toujours personne pour un ptit coup de code ?? Je ne voie pas comment faire pour définir ca en PHP Link to comment Share on other sites More sharing options...
lokiiy Posted July 7, 2014 Share Posted July 7, 2014 Bonjour Il semblerait que depuis la version 1.6.0.8 le bout de code plus haut ne fonctionne plus ..... J'ai remis le fichier d'origine de la 1.6.0.8 pour voir si tout de même les frais gratuits annoncés à partir de XXXXX étaient pris en compte..... Et ça remarche bien sauf que bien évidemment sans le bout de code il est embêtant de voir tous les transporteurs gratuits Rencontrez vous le même soucis que moi ???? Et si quelqu'un pouvez nous trouver la modification de code à ajouter ça serait vraiment super car pour moi cette option est carrément vital ... Merci de votre soutien !! Et je pense surtout à toi MasterS car tu avais déjà donné la solution.... Un Come Back de toi serais super !!!! Sa aidera pas mal de gens car je vois que personne n’avait vraiment de réponse Link to comment Share on other sites More sharing options...
lokiiy Posted December 8, 2014 Share Posted December 8, 2014 Un soutien, une idée ? une piste ? Le bout de code fonctionne plus sous Prestashop 1.60.9 ... Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now