BebeGrO_oT Posted April 8, 2014 Share Posted April 8, 2014 (edited) Bonjour amis prestashopiens J'ai un de mes clients qui est encore sous la version 1.4.10 de Prestashop et il aimerais offrir les frais de port à partir de 99€ mais le problème, c'est que lorsque je met les frais de ports Gratuit Chronopost se met également en gratuit. Mais le problème c'est que sur les version 1.5 je sais comment modifier ce problème mais pas avec la 1.4 est ce que quelqu'un aurais une petite idée pour m'aider à ne pas mettre les frais de port gratuit pour chronopost mais pour colissimo oui. Merci à vous et bonne soirée Cordialement Raph WebAlsaceInfo.fr Edited April 28, 2014 by WebAlsaceInfo (see edit history) Link to comment Share on other sites More sharing options...
BebeGrO_oT Posted April 14, 2014 Author Share Posted April 14, 2014 Un petit up histoire de relancer le sujet Link to comment Share on other sites More sharing options...
Bondaty and Co Posted April 16, 2014 Share Posted April 16, 2014 (edited) Dans classes->Cart.php vers la ligne 1113: remplacer: 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; par if ($orderTotalwithDiscounts >= (float)($free_fees_price) AND (float)($free_fees_price) > 0 AND $id_carrier==2) 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 $id_carrier==2) return $shipping_cost; en fin de ligne à la place du 2 mettez l'ID du transporteur gratuit à partir de 99€ Attention, si vous éditez le transporteur, l'ID change, donc bien penser à faire la modif. Edited April 16, 2014 by Bondaty and Co (see edit history) Link to comment Share on other sites More sharing options...
BebeGrO_oT Posted April 16, 2014 Author Share Posted April 16, 2014 (edited) Merci pour ta réponse Bondaty, Par contre est ce que c'est bien pour la version de Prestashop 1.4.10 que tu m'as donner la solution ? Car je ne trouve pas tes lignes dans le Classes/Cart.php Voici ce que j'ai (fichier joint) Cette solution, si je ne me trompe pas est totalement fonctionnel avec la version 1.5 Sachant également que mon client à ceci dans ses transporteur : Les frais de port gratuit à partir de 99€sont pour Colissimo (France) uniquement pas les autres 47 Chronopost - Livraison express à domicile Colis livré le lendemain matin avant 13h à votre domicile. La veille de la livraison, vous êtes averti par e-mail et SMS. 48 Chronopost - Livraison express à domicile Colis livré le lendemain matin avant 10h à votre domicile. La veille de la livraison, vous êtes averti par e-mail et SMS. 49 Chronopost - Livraison express à domicile Colis livré le lendemain matin avant 18h à votre domicile. La veille de la livraison, vous êtes averti par e-mail et SMS. 50 Chrono Express Colis livré en 1 à 3 jours vers l'Europe, en 48h vers les DOM et en 2 à 5 jours vers le reste du monde. 51 Chrono Classic Colis livré en 1 à 3 jours vers l'Europe. 54 Chronopost -Livraison en point relais Colis livré le lendemain avant 13 h dans le relais Pickup de votre choix. Vous serez averti par e-mail et SMS. 56 Colissimo International Livraison sous 10 jours ouvrés 58 Colissimo France Livraison sous 5 jours ouvrés 60 Mondial Relay Livraison sous 5 jours ouvrés Cart.php Edited April 16, 2014 by WebAlsaceInfo (see edit history) Link to comment Share on other sites More sharing options...
Bondaty and Co Posted April 16, 2014 Share Posted April 16, 2014 ligne 1172 remplacer: AND intval($id_carrier) !== 46 par AND $id_carrier==Id du transporteur idem ligne 1174 Link to comment Share on other sites More sharing options...
BebeGrO_oT Posted April 16, 2014 Author Share Posted April 16, 2014 (edited) Bon j'ai bien fais le changement c'est à dire : Ligne : 1172 : Ligne1171 : $free_fees_price = 0; Ligne1172 : if ($orderTotalwithDiscounts >= (float)($free_fees_price) AND (float)($free_fees_price) > 0 AND $id_carrier==58) Et ligne : 1174 : Ligne1174 : 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 $id_carrier==58) Le problème, c'est que j'ai toujours tout les transporteurs qui sont gratuit après 99€ voici un screen : Edited April 16, 2014 by WebAlsaceInfo (see edit history) Link to comment Share on other sites More sharing options...
Bondaty and Co Posted April 16, 2014 Share Posted April 16, 2014 un truc bizare, sur votre fichier, il manque: 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); sous $free_fees_price = 0; ligne 1171 Link to comment Share on other sites More sharing options...
BebeGrO_oT Posted April 16, 2014 Author Share Posted April 16, 2014 J'ai fait ceci à partir de la ligne 1171 : $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 $id_carrier==58) 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 $id_carrier==58) return $shipping_cost; Ligne 1171 jusqu'a la ligne 1178 Mais c'est toujours identique FP gratuit pour tous Link to comment Share on other sites More sharing options...
Bondaty and Co Posted April 16, 2014 Share Posted April 16, 2014 Désolé, mais là je n'ai pas de réponses Link to comment Share on other sites More sharing options...
BebeGrO_oT Posted April 16, 2014 Author Share Posted April 16, 2014 Arfff ça va être chaud pour trouver la solution :/ Link to comment Share on other sites More sharing options...
Bondaty and Co Posted April 17, 2014 Share Posted April 17, 2014 On va fait un test au vue de l'état de ton cart.php. Conserve ton fichier d'origine en le renommant Cart_old.php et envoie celui en PJ pour voir si ça fonctionne.J'ai mis l'id 58 du transporteur, tu n'as rien à toucher. Cart.php Link to comment Share on other sites More sharing options...
BebeGrO_oT Posted April 19, 2014 Author Share Posted April 19, 2014 Je t'es ajouter sur Skype histoire que l'on puisse converser à l'oral, et on mettras la solution ici Link to comment Share on other sites More sharing options...
BebeGrO_oT Posted April 28, 2014 Author Share Posted April 28, 2014 Bon après mûres réflexion avec mon client on a décider de désactiver le Transporteur Chronopost et au mois de Juin il va passer sur la 1.5 voir la 1.6. donc problème résolu dommage que nous n'avons pas trouvé de solution pour ce problème Link to comment Share on other sites More sharing options...
Broceliande Posted April 28, 2014 Share Posted April 28, 2014 Bon après mûres réflexion avec mon client on a décider de désactiver le Transporteur Chronopost et au mois de Juin il va passer sur la 1.5 voir la 1.6. donc problème résolu dommage que nous n'avons pas trouvé de solution pour ce problème Je découvre ce post sur le tard, mais j'ai pour habitude dans ce genre de situation de proposer au client un transporteur supplémentaire tout simple appelé par exemple "Transport Offert" . Dans la desc du transporteur on met une petite phrase qui va bien genre Livraison 3 à 5 j en totossimo .... Ensuite on met une tranche de prix de 99 à 10000 et on indique pour ce nouveau transporteur que le comportement hors tranche doit désactiver le transporteur. Le cas échéant on limite le transporteur à la zône concernée etc ... Si on veut offrir le transport uniquement en France, il suffit de créer une zône France avec France à l'intérieur .... On ajuste le tarif transporteur à 0 sur la tranche 99-10000 comme pour n'importe quel autre . Au besoin on fixe ce nouveau transporteur comme étant le transporteur par défaut histoire qu'il soit prix en compte dans le bloc panier. Evidemment on enlève toute gratuité dans la configuration des transporteurs en virant le fdp offerts à partir de ... Au final , dans le cas présent , le client qui commande en france et a pour plus de 99€ dans son panier va se voir proposer un transporteur gratuit. Les autres transporteurs seront affichés au tarif courant. De cette manière le client conserve le choix de l'express. S'il peut attendre, clairement il choisira le transporteur gratuit. Ce n'est que moyennement handicapant de voir au dessus le transporteur utilisé avec un tarif réel. Ce qui intéresse le client c'est le délai et le tarif. Bref une solution sans modif de code qui marche à tous les coups. Dans le cas ou on voudrait vraiment ne pas afficher le transporteur "payant" correspondant au transport offert, il est possible de surcharger ParentOrderController . 1 Link to comment Share on other sites More sharing options...
BebeGrO_oT Posted April 29, 2014 Author Share Posted April 29, 2014 Hahaha C'est vraiment une excellente idée Totossimo haha je Like le post je pense que je vais faire comme ceci 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