Lavande Posted November 26, 2009 Share Posted November 26, 2009 Je crois que tout est dans le titre. je ne veux pas offrir les frais de port pour les colis à l'étranger ou du moins je voudrais que le seuil où ceux ci sont offerts soit plus élevé. Cela est il possible ? Link to comment Share on other sites More sharing options...
fabienl Posted November 30, 2009 Share Posted November 30, 2009 J'ai la même problématique.Je sais que des boutiques prestashop l'ont fait car j'ai cherché sur le net.Alors quelle serait la solution ?a+Fabien. Link to comment Share on other sites More sharing options...
p002254 Posted March 3, 2010 Share Posted March 3, 2010 Bonjour, j'ai le même problème. Link to comment Share on other sites More sharing options...
Olecorre Posted March 4, 2010 Share Posted March 4, 2010 Bonjour,J'ai eu une demande similaire pour un client, il 'ma demandé de ne pas avoir de frais de port offert pour les pays autre que la France.voici ce que j'ai modifié la class Cart.php (faire une sauvegarde du fichier avant)ligne 685 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; J'ai ajouté AND $id_zone==6 qui correspond à la zone de la France. Donc la il appliquera les frais de port offert que pour la zone 6 qui correspond dans son paramétrage à la France.Cdt Link to comment Share on other sites More sharing options...
p002254 Posted March 4, 2010 Share Posted March 4, 2010 Merci pour la réponse. Cela fonctionne chez moi.Bonne journée Link to comment Share on other sites More sharing options...
ube94 Posted April 26, 2010 Share Posted April 26, 2010 BonjourJ'ai essayé cette modif, mais rien n'a changé.Est ce valable pour toute les versions ?Presta 1.2.5. Link to comment Share on other sites More sharing options...
Philippe Posted April 27, 2010 Share Posted April 27, 2010 Je pense qu'il suffit de définir le montant des "Frais de port offerts à partir de " en fonction du montant le plus élevé, toutes destinations confondues, puis de fixer les frais à 0 € pour les couple tranches/zones souhaitées. Link to comment Share on other sites More sharing options...
ube94 Posted April 27, 2010 Share Posted April 27, 2010 [Résolu]Merci de vos réponses.Le problème est que je n'avais pas mis modifié les frais de port au poids, il y avait donc 2 choix. Link to comment Share on other sites More sharing options...
France Posted June 16, 2010 Share Posted June 16, 2010 Bonjour,J'ai eu une demande similaire pour un client, il 'ma demandé de ne pas avoir de frais de port offert pour les pays autre que la France.voici ce que j'ai modifié la class Cart.php (faire une sauvegarde du fichier avant)ligne 685if (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; J'ai ajouté AND $id_zone==6 qui correspond à la zone de la France. Donc la il appliquera les frais de port offert que pour la zone 6 qui correspond dans son paramétrage à la France.Cdt BonjourEt si on a deux zones faut l'écrire comment?Dans mon cas j'offre les frais de port gratuit pour le Canada et les USA.Merci! Link to comment Share on other sites More sharing options...
aqua-occaz Posted June 30, 2010 Share Posted June 30, 2010 Bonjour pareil pour moiJ'aimerais qu'il yait deux zones et jen'arrive pas aécrire cela dans le fichier cartCela fonctionne pour une zone mais pas pour deuxSi vous saviez m'aidez a modifier cette ligneMerci Link to comment Share on other sites More sharing options...
leste Posted July 18, 2010 Share Posted July 18, 2010 Topic remonté !J'ai fait la modif du code dans cart.php mais après page blanche plus d'accé au site, une idée ?Merci Link to comment Share on other sites More sharing options...
ptidg Posted September 1, 2010 Share Posted September 1, 2010 J'utilise la version 1.3.1 et le code à changé dans cette partie du fichier cart.php.Quelqu'un saurait il quelles sont les modifs à effectuer sur ce nouveau fichier ? Link to comment Share on other sites More sharing options...
ptidg Posted September 6, 2010 Share Posted September 6, 2010 Je remonte le sujet car je n'ai pas trouvé de solution, voir post précedent. Link to comment Share on other sites More sharing options...
r.guillaume Posted September 9, 2010 Share Posted September 9, 2010 Ligne 833:Remplacer: if ($orderTotalwithDiscounts >= floatval($free_fees_price) AND floatval($free_fees_price) > 0) par: if ($orderTotalwithDiscounts >= floatval($free_fees_price) AND floatval($free_fees_price) > 0 and $id_zone!=6) Cordialement. Link to comment Share on other sites More sharing options...
ptidg Posted September 9, 2010 Share Posted September 9, 2010 Merci pour l'info, je viens d'essayer et cela fait l'inverse de ce que je souhaite.Avec ce code les frais de port gratuit sont appliqués à l'autre zone que j'utilise pour les DOM-TOM (la zone 7)Et pour la zone 6 (la france métropolitaine) les frais de port gratuit ne sont plus appliqués.Question bête : est ce qu'il suffit que je remplace le 6 par le 7 dans le bout de code ?J'avais bien essayé de rajouter ce bout de code AND $id_zone==6 à l'endroit que tu indique, mais cela avait effacé les paramétrages de tarifs par tranche de poids, du coup cela m'avait un peu refroidit... Link to comment Share on other sites More sharing options...
BALAM Posted September 10, 2010 Share Posted September 10, 2010 Bonjour,Merci de votre aide.Je viens de faire la manip et rien! les frais de ports restent inchangés.Est-ce bien le fichier Cart.php du dossier classes ?Cordialement,BalamVersion 1.3.1.1 prestashop Link to comment Share on other sites More sharing options...
BALAM Posted September 11, 2010 Share Posted September 11, 2010 Bonjour,Une petite idée ?Cordialement,Balam Link to comment Share on other sites More sharing options...
r.guillaume Posted September 13, 2010 Share Posted September 13, 2010 Bah perso, moi ça marche... Link to comment Share on other sites More sharing options...
BALAM Posted September 13, 2010 Share Posted September 13, 2010 Avec regret cela ne fonctionne pas.Est-ce que le module "Dates de livraison" ?MerciDavid Link to comment Share on other sites More sharing options...
zazou30_1 Posted September 20, 2010 Share Posted September 20, 2010 Non ça marche mais, Je ne comprend pas que les frais de port soient un réel problème pour Prestashop ; Vous nous avez trouvé une solution pour affecter des frais de port gratuits à partir de… sur une zone (France), mais avez du mal à nous trouver une réelle solution pour affecter ces même frais de port gratuits à un seul transporteur dans la même zone.La solution existe, mais ne veut pas être dévoilée…Je ne comprend pas !!!Prestashop a t’il ses limites Link to comment Share on other sites More sharing options...
Katzele Posted September 26, 2010 Share Posted September 26, 2010 Ligne 833:Remplacer:if ($orderTotalwithDiscounts >= floatval($free_fees_price) AND floatval($free_fees_price) > 0) par: if ($orderTotalwithDiscounts >= floatval($free_fees_price) AND floatval($free_fees_price) > 0 and $id_zone!=6) Cordialement. Pour la version 1.3.1 j'ai voulu offrir les frais de port pour la France ET l'Europe, j'ai donc fait la manip de r.guillaume en ligne 833 du fichier classes/cart.php mais au lieu de rajouter juste la zone 6 j'ai mis : AND $id_zone==6 OR $id_zone==1 zone 6 = france, zone 1 = europe (chez moi)Chez moi ça marche, cela dit je n'y connais absolument rien, ça m'a juste paru logique et j'ai tenté, donc si un "qui s'y connaît" pense que ce n'est pas bien qu'il le dise je ne serais pas vexée ;-)Voilà, si ça peut aider... Link to comment Share on other sites More sharing options...
France Posted September 26, 2010 Share Posted September 26, 2010 Bonjour KatzeleJ'ai la version 1.2.5 de Presta et j'ai 3 zones qui ont les frais de port gratuit à partir d'un montant.Je vois que toi tu en as mis deuxAND $id_zone==6 OR $id_zone==1 Pour trois zone faut-il l'écrire AND $id_zone==6 OR $id_zone==1 or $id_zone==7Je vois que tu as mis deux == et dans la correction de r. guillaume il n'y en a qu'un. Faut en mettre deux ou 1 ?Merci de ton aide Link to comment Share on other sites More sharing options...
France Posted September 26, 2010 Share Posted September 26, 2010 Je viens de faire un test en mettant la zone qui correspond au Québec et mes frais de port n'étaient plus gratuit. J'ai mis la zone qui correspond à l'Europe et là ça marche. Les frais de port ne sont plus gratuit pour l'Europe.Voici ce que j'ai mis // Free fees 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!=10) Ce que je ne comprends pas cependant c'est pourquoi ça fait l'inverse de ce que les autres ont fait.Selon ce que j'ai lu il faut mettre la zone que l'on veut que les frais de port restent gratuits mais moi c'est en mettant la zone que je ne veux pas que les frais de port soient gratuit qui marche.Mystère! Quelqu'un peut m'expliquer?Merci Link to comment Share on other sites More sharing options...
Katzele Posted September 26, 2010 Share Posted September 26, 2010 Alors là tu me pose une colle, je ne peux pas t'aider, comme je l'ai dit j'ai fait ça parce que ça me semblait logique, je n'avais même pas vu qu'il n'y avait qu'un = au lieu de 2Je viens de vérifier, voilà ce que j'ai mis exactement : if ($orderTotalwithDiscounts >= floatval($free_fees_price) AND floatval($free_fees_price) > 0 AND $id_zone==6 OR $id_zone==1) Chez moi ça fait ce que ça doit, les frais de port gratuit pour la france et l'europe, et je suis en version 1.3.1 Link to comment Share on other sites More sharing options...
pdriss Posted September 27, 2010 Share Posted September 27, 2010 Salut tous,Pour France le signe "egal à" en php ressemble à ceci == , alors que le signe !== veut dire "different de".la bonne syntaxe est donc : 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==1) @+Pdriss Link to comment Share on other sites More sharing options...
Katzele Posted September 27, 2010 Share Posted September 27, 2010 Ah ben tout s'explique alors, merci pdriss :-) Link to comment Share on other sites More sharing options...
pdriss Posted September 28, 2010 Share Posted September 28, 2010 Salut,Me trouvant confronter au même problème que vous à savoir, frais de port gratuit à partir d'un montant diffèrent selon le pays.Comme je n'est pas le temps de créer un vrai module, j'ai "bidouiller" un truc que je vous livre brut de pomme ! :-) Rechercher dans Votre-boutique=>classes=>Cart.php à la ligne 828 // Free fees $free_fees_price = 0; if (isset($configuration['PS_SHIPPING_FREE_PRICE'])) $free_fees_price = Tools::convertPrice(floatval($configuration['PS_SHIPPING_FREE_PRICE']), new Currency(intval($this->id_currency))); $orderTotalwithDiscounts = $this->getOrderTotal(true, 4); if ($orderTotalwithDiscounts >= floatval($free_fees_price) AND floatval($free_fees_price) > 0) return $shipping_cost; Remplacer par // Free fees $free_fees_price = 0; if ($id_zone==6){ $free_fees_price = Tools::convertPrice(floatval('25'), new Currency(intval($this->id_currency)));} elseif ($id_zone==1){ $free_fees_price = Tools::convertPrice(floatval('50'), new Currency(intval($this->id_currency)));} else { $free_fees_price = Tools::convertPrice(floatval('75'), new Currency(intval($this->id_currency)));} $orderTotalwithDiscounts = $this->getOrderTotal(true, 4); if ($orderTotalwithDiscounts >= floatval($free_fees_price) AND floatval($free_fees_price) > 0) return $shipping_cost; Les chiffres entre parenthèse après "floatval" correspondent aux montant à partir duquel les frais de port sont gratuit$id_zone correspond aux zones ou s'applique les frais port gratuit, ex: if ($id_zone==6){ $free_fees_price = Tools::convertPrice(floatval('25'), new Currency(intval($this->id_currency)));} Cela Veut dire à peut près ceci : SI la zone est egal à 6 (pour moi c'est la france) alors le montant à partir duquel le port est gratuit est de 25 le chiffre (25) étant dans la monnaie de la boutique le reste du code permet de convertir ce montant dans une autre monnaieVous pouvez ajouter autant de elseif que vous voulez.Rappel (IF veut dire SI en php et ELSEIF veut dire SINON SI).Ensuite, ben voui c'est pas fini !! :gulp: Rechercher dans Votre-boutique=>order.php à la ligne 430function displaySummary() { global $smarty, $cart; if (file_exists(_PS_SHIP_IMG_DIR_.intval($cart->id_carrier).'.jpg')) $smarty->assign('carrierPicture', 1); $summary = $cart->getSummaryDetails(); $customizedDatas = Product::getAllCustomizedDatas(intval($cart->id)); Product::addCustomizationPrice($summary['products'], $customizedDatas); if ($free_ship = Tools::convertPrice(floatval(Configuration::get('PS_SHIPPING_FREE_PRICE')), new Currency(intval($cart->id_currency)))) { $discounts = $cart->getDiscounts(); $total_free_ship = $free_ship - ($summary['total_products_wt'] + $summary['total_discounts']); foreach ($discounts as $discount) if ($discount['id_discount_type'] == 3) { $total_free_ship = 0; break ; } $smarty->assign('free_ship', $total_free_ship); } Remplacer par function displaySummary() { global $smarty, $cart, $cookie, $defaultCountry; if (file_exists(_PS_SHIP_IMG_DIR_.intval($cart->id_carrier).'.jpg')) $smarty->assign('carrierPicture', 1); $summary = $cart->getSummaryDetails(); $customizedDatas = Product::getAllCustomizedDatas(intval($cart->id)); Product::addCustomizationPrice($summary['products'], $customizedDatas); $address = new Address(intval($cart->id_address_delivery)); $id_zone = Address::getZoneById(intval($address->id)); if ($id_zone==6){ $free_ship = Tools::convertPrice(floatval('25'), new Currency(intval($cart->id_currency)));} elseif ($id_zone==1){ $free_ship = Tools::convertPrice(floatval('50'), new Currency(intval($cart->id_currency)));} elseif ($id_zone==2){ $free_ship = Tools::convertPrice(floatval('75'), new Currency(intval($cart->id_currency)));} $discounts = $cart->getDiscounts(); $total_free_ship = $free_ship - ($summary['total_products_wt'] + $summary['total_discounts']); foreach ($discounts as $discount) if ($discount['id_discount_type'] == 3) { $total_free_ship = 0; break ; } $smarty->assign('free_ship', $total_free_ship); IMPORTANT: rentrer les même valeur que dans Cart.phpCette modif permet d'afficher l'alerte, "Pour obtenir la gratuité des frais de port, vous devez encore commander pour x €" selon la zone de livraisonVala, j'espère que cela vous sera utile, pour les fainéants je joint les 2 fichiers, faite une sauvegarde des anciens avant de les remplacer.les fichiers ou les modifs sont valable pour la Version 1.3.1.1 de presatshop, aucune idée si ca fonctionne pour les autres versions.@+Pdriss Cart.php order.php Link to comment Share on other sites More sharing options...
Katzele Posted September 28, 2010 Share Posted September 28, 2010 Merci beaucoup, je vais essayer ça demain ! Link to comment Share on other sites More sharing options...
zazou30_1 Posted October 6, 2010 Share Posted October 6, 2010 Bonjour à tous et merci pour votre implication :Il y a des réponse fructueuses, mais mon problème est différentEn résumé voila ce que je souhaiterai: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 FranceColissimo 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 FranceCe 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 ? Link to comment Share on other sites More sharing options...
Katzele Posted October 7, 2010 Share Posted October 7, 2010 Pdriss, j'ai utilisé ta méthode parce que mon truc de mettre AND et OR, visiblement ça ne marche pas. Par contre moi je veux offrir les frais de port pour la zone 6 la zone 1 et pour le reste je n'offre rien (radine) donc entre parenthèse à la place de (75) j'ai mis (0). Par contre dans le fichier order.php tu précise elseif ($id_zone==2){ comment faire pour que ce soit valable pour tout ce qui n'est pas zone 1 ou 6 ?Merci de ton aide. Link to comment Share on other sites More sharing options...
zazou30_1 Posted October 7, 2010 Share Posted October 7, 2010 Bonjour à tous et merci pour votre implication :Il y a des réponse fructueuses, mais mon problème est différentEn résumé voila ce que je souhaiterai: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 FranceColissimo 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 FranceCe 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 ? Link to comment Share on other sites More sharing options...
Katzele Posted October 7, 2010 Share Posted October 7, 2010 Tu crois qu'en postant ton message tous les jours tu vas avoir une réponse plus rapide ? Si on faisait tous pareil ça ferait avancer le schmilblick ! mdr ;-) Link to comment Share on other sites More sharing options...
zazou30_1 Posted October 7, 2010 Share Posted October 7, 2010 Je fais un peu ce que je veux, c'est la communauté qui en décide... Link to comment Share on other sites More sharing options...
pdriss Posted October 7, 2010 Share Posted October 7, 2010 Pdriss, j'ai utilisé ta méthode parce que mon truc de mettre AND et OR, visiblement ça ne marche pas. Par contre moi je veux offrir les frais de port pour la zone 6 la zone 1 et pour le reste je n'offre rien (radine) donc entre parenthèse à la place de (75) j'ai mis (0). Par contre dans le fichier order.php tu précise elseif ($id_zone==2){ comment faire pour que ce soit valable pour tout ce qui n'est pas zone 1 ou 6 ?Merci de ton aide. Hum...comment dire ?J'ai pas trop le temps de me pencher sur ton problème, mais quand même...Essayer un minimum de comprendre le code, sinon faite appel a des pros, acheter un module ou essayer d'apprendre php...A defaut lisez Correctement ce qui est poster !j'ai poster ceci entre autre:Les chiffres entre parenthèse après “floatval” correspondent aux montant à partir duquel les frais de port sont gratuit$id_zone correspond aux zones ou s’applique les frais port gratuit DONC Si tu met (0) à la place de (75) cela veut dire que tu offre les frais de port a partir de 0€ !!il faut que tu supprime la ligne. elseif ($id_zone==2){ $free_ship = Tools::convertPrice(floatval('75'), new Currency(intval($cart->id_currency)));} Ensuite Elseif veut dire Sinon Si, mais Esle veut dire Sinon donc la bonne syntaxe c'est Si (zone==6) frais de port a partir de (25) Sinon Si (zone==1) frais de port a partir de (50) Sinon pas de frais de port !!Ce qui en code php donne : if ($id_zone==6){ $free_ship = Tools::convertPrice(floatval('25'), new Currency(intval($cart->id_currency)));} elseif ($id_zone==1){ $free_ship = Tools::convertPrice(floatval('50'), new Currency(intval($cart->id_currency)));} else { $free_ship = NULL;} Allez je vous laisse deviner ce qu'il faut faire... :coolsmile: Pour zazou30_1J'ai pas le temps de me pencher sur ton problème n'en ayant pas l'utilité, mais a mon avis c'est le meme principe que ma soluce mais en appliquant la procedure au transporteur et non pas au pays.un truc genre SI transporteur (id==x) ET SI montant de commande (x) frais de port gratuit SINON pas de gratuité.Voila, je te laisse chercher...@+Pdriss Link to comment Share on other sites More sharing options...
Katzele Posted October 7, 2010 Share Posted October 7, 2010 Merci, désolée de t'avoir dérangé. Pour ma défense, en ayant mis (o) ça n'offrait pas les frais de port du tout pour la zone concernée, j'avais testé quand même avant de demander. J'ai fait comme tu dis dans ton dernier message et c'est parfait. Link to comment Share on other sites More sharing options...
pdriss Posted October 7, 2010 Share Posted October 7, 2010 Merci, désolée de t'avoir dérangé. Pour ma défense, en ayant mis (o) ça n'offrait pas les frais de port du tout pour la zone concernée, j'avais testé quand même avant de demander. J'ai fait comme tu dis dans ton dernier message et c'est parfait. Non, tu ne m'a pas derangé, en fait ca fonctionnait quand même chez toi, parce que j'ai oublier qu'en php zero = null, mais le code n'est pas propre.je precise quand même que je ne suis pas developpeur, il y a moins de 2 ans le php c'etais du chinois pour moi.je bidouille par obligation c'est tout, n'ayant pas de gros moyen...Mais il y a des choses "logique" a comprendre quand quelqu'un vous donne un "bout de code".2 p'tit trucs qui vous feront pas de mal.1) pensez a noter toutes les modifs que vous faites dans un fichier texte, cela vous permettras de vous y retrouver au changement de version.2) utiliser le plugin Firebug pour firefox que permet de voir le modif en temps reel d'une page.@+PdrissPs: Katzele, pense a modifier le code dans les 2 fichiers. :coolsmile: Link to comment Share on other sites More sharing options...
BigZ Posted October 11, 2010 Share Posted October 11, 2010 Salut,le développement d'un seuil de prix par transporteur et par zone pour la gratuité est il prévu pour une intégration future et officielle dans prestashop ?Genre pour la 1.4... parceque sinon je vais devoir me le taper... Link to comment Share on other sites More sharing options...
zazou30_1 Posted October 11, 2010 Share Posted October 11, 2010 Ce que je vais dire est vrai : la solution existait déjà, il a fallut que je l'achète à une personne du forum. Soit les gents qui se disent programmateur sur ce forum sont des navets ce que je doute, soit effectivement ils entretiennent un suspens pour faire vivre le forum. Mais la solution existe depuis bien longtemps. Par respect pour celui qui vend le module , je ne le délivrerai pas. Mais c'est grave, nous nous acharnons et perdons un temps précieux, et cela fait rire certains.Je n'attend plus de remarques de votre part, fin de l'histoire. Link to comment Share on other sites More sharing options...
BigZ Posted October 12, 2010 Share Posted October 12, 2010 tiens, marrant, on a essayé de me le vendre par mp aussi...juste histoire de cultiver mon coté emmerdeur je crois que si je suis ammené a le developper je posterais la soluce ici ! Link to comment Share on other sites More sharing options...
pdriss Posted October 12, 2010 Share Posted October 12, 2010 oui, faut croire qu'il est plus rentable de vendre des modules presta que d'ouvrir une boutique...je perd un temp fou a bidouiller des trucs qui existe surement deja, même si certain modules sont pas cher 15€+15€+15€ ca commence a douiller !surtout quand on vend des produits en dessous d'1 €. en tout cas, ce n'est pas l'idée que je me faisait de l'open source...En ce moment j'essaie d'integrer une phrase genre " plus que X (€,$,etc..) pour avoir le port gratuit" dans le panier ajax tout ça selon la zone.je pense que cela devrais augmenter le taux de conversion. Et ben je "rame" depuis 3 jours ! si cela vous interresse dite le moi...@+PdrissPs: Quelqu'un sait comment "court-circuiter" la config "frais de port" de presta via un module ? Link to comment Share on other sites More sharing options...
Dir Posted October 12, 2010 Share Posted October 12, 2010 Bonjour,Nous venons de déposer sur PrestaStore un module qui permet de gérer la gratuité des frais de port en fonction de la zone de livraison : Free Shipping ZonesFabien Link to comment Share on other sites More sharing options...
BigZ Posted October 13, 2010 Share Posted October 13, 2010 il manque toujours le choix par transporteur Link to comment Share on other sites More sharing options...
Katzele Posted October 13, 2010 Share Posted October 13, 2010 Et par groupe de clients, ce serait bien aussi, tant qu'à faire un module payant... je vais me faire jeter !En tout cas la solution de pdriss marche nickel pour moi.Je précise quand même que des modules payants j'en ai acheté une quantité. Link to comment Share on other sites More sharing options...
Dir Posted October 25, 2010 Share Posted October 25, 2010 C'est fait : http://addons.prestashop.com/fr/transport-logistique/1558-free-shipping.html ;-)(frais de port gratuits en fonction du poids et/ou du prix de la commande, de la zone de livraison, du transporteur et du groupe de client) Link to comment Share on other sites More sharing options...
erotikat Posted November 5, 2010 Share Posted November 5, 2010 Afin de contribuer a une solution gratuite voila ce que j'ai fait sur mon site, en version 1.3.1.1, sur lequel j'étais confrontée au même problème :- Gratuité des frais de ports sur un seul transporteur à partir d'un montant- Gratuité des frais de ports seulement pour le pays de ma sociétéJ'ai donc créé une zone spéciale (France Métropolitaine) pour mon pays (France) qui a l'ID (7) : "ces informations sont à adapter pour le code ci-dessous".J'ai créé deux transporteurs identiques colissimo (1 pour l'Europe hors france : COLISSIMO EUROPE, et l'autre pour la France Métropolitaine : COLISSIMO SUIVI)J'ai configuré la manutention comme ci-dessous via le BO :Frais de manutention: 0€Frais de port offerts à partir de: 100€Frais de port offerts à partir de: 0kgAprès j'ai apporté une modifications aux fichiers :classes/Cart.php: ligne 830 (ajout du transporteur par defaut pour la gratuite des frais de ports)remplacement de if (isset($configuration['PS_SHIPPING_FREE_PRICE'])) par if (isset($configuration['PS_SHIPPING_FREE_PRICE']) && Configuration::get('PS_CARRIER_DEFAULT')==$id_carrier) ligne 834remplacement de (7=id de ma zone france metropolitaine) if ($orderTotalwithDiscounts >= floatval($free_fees_price) AND floatval($free_fees_price) > 0) par if ($orderTotalwithDiscounts >= floatval($free_fees_price) AND floatval($free_fees_price) > 0 AND intval($id_zone) == 7) ligne 1039 (ajout de l'entré tableau 'IDzone')remplacement de return array( 'delivery' => $delivery, 'delivery_state' => State::getNameById($delivery->id_state), 'invoice' => $invoice, 'invoice_state' => State::getNameById($invoice->id_state), 'carrier' => new Carrier(intval($this->id_carrier), $cookie->id_lang), 'products' => $this->getProducts(false), 'discounts' => $this->getDiscounts(), 'total_discounts' => $this->getOrderTotal(true, 2), 'total_discounts_tax_exc' => $this->getOrderTotal(false, 2), 'total_wrapping' => $this->getOrderTotal(true, 6), 'total_wrapping_tax_exc' => $this->getOrderTotal(false, 6), 'total_shipping' => $this->getOrderShippingCost(), 'total_shipping_tax_exc' => $this->getOrderShippingCost(NULL, false), 'total_products_wt' => $this->getOrderTotal(true, 1), 'total_products' => $this->getOrderTotal(false, 1), 'total_price' => $this->getOrderTotal(), 'total_tax' => $this->getOrderTotal() - $this->getOrderTotal(false), 'total_price_without_tax' => $this->getOrderTotal(false)); } par return array( 'delivery' => $delivery, 'delivery_state' => State::getNameById($delivery->id_state), 'invoice' => $invoice, 'invoice_state' => State::getNameById($invoice->id_state), 'carrier' => new Carrier(intval($this->id_carrier), $cookie->id_lang), 'products' => $this->getProducts(false), 'discounts' => $this->getDiscounts(), 'total_discounts' => $this->getOrderTotal(true, 2), 'total_discounts_tax_exc' => $this->getOrderTotal(false, 2), 'total_wrapping' => $this->getOrderTotal(true, 6), 'total_wrapping_tax_exc' => $this->getOrderTotal(false, 6), 'total_shipping' => $this->getOrderShippingCost(), 'total_shipping_tax_exc' => $this->getOrderShippingCost(NULL, false), 'total_products_wt' => $this->getOrderTotal(true, 1), 'total_products' => $this->getOrderTotal(false, 1), 'total_price' => $this->getOrderTotal(), 'total_tax' => $this->getOrderTotal() - $this->getOrderTotal(false), 'total_price_without_tax' => $this->getOrderTotal(false), 'IDzone' => Address::getZoneById(intval($this->id_address_delivery))); } themes/<>/order-payment.tplligne 82 (pour me pas afficher aux autres pays qui ne profitent pas des frais de ports gratuit à partir d'un certain montant "Remaining amount to be added....")remplacement de {if $free_ship > 0} par {if $free_ship > 0 AND $IDzone == 7} themes/<>/shopping-cart.tplligne 107 (pour me pas afficher aux autres pays qui ne profitent pas des frais de ports gratuit à partir d'un certain montant "Remaining amount to be added...")remplacement de {if $free_ship > 0} par {if $free_ship > 0 AND $IDzone == 7} Merci des informations des posts d'avant qui m'ont permis de faire ce que je voulais sans payer un module.Vive les forums et vive l'open-source Link to comment Share on other sites More sharing options...
patate34 Posted November 7, 2010 Share Posted November 7, 2010 Un grand merci pour ta synthèse des modifs. J'ai 2 petites remarques : - je pense que tu veux parler du themes/<>/shopping-cart.tpl à la place de themes/<>/shopping-cart.php.- idem pour le fichier order-payement.tpl sauf que dans ce cas, je ne trouve pas la modif à faire... :bug: Je travaille en PS 1.3.2, peut-être que la modif du order-payement.tpl n'est plus d'actualité :roll: Link to comment Share on other sites More sharing options...
erotikat Posted November 8, 2010 Share Posted November 8, 2010 Oui tu as raison, car en fait j'ai appliqué une modif a mes fichier .tpl en .php pour protéger mon thème ;-P Je modifie mon post La ligne à modifier, dans le fichier order-payement.tpl, n'est peut pas présente. Cela dépend de ton thème, chez moi il est affiché car je veux le voir sur ma factureVoici une copie du code order-payement.tpl (pour info) si tu veux l'ajouter par rapport au tag à remplacer par <!-- frais de port gratuit uniquement pour la france order-payment --> {if $free_ship > 0 AND $IDzone == 7} {l s='Remaining amount to be added to your cart in order to obtain free shipping:'} {convertPrice price=$free_ship} {/if} Link to comment Share on other sites More sharing options...
Kloan Posted December 7, 2010 Share Posted December 7, 2010 La solution donnée par pdriss fonctionne a peu près pour moi. (encore quelques essais à faire) Merci pour ta contribution elle aura certainement aidée beaucoup de personne. Link to comment Share on other sites More sharing options...
Hedi Posted December 23, 2010 Share Posted December 23, 2010 Bonjour,si tu veux que les frais de port sera gratuit pour un pays c'est très simple, c'est gérable à partir du BO ^^. c'est pas la peine de modifier dans le code.tu n'as qu'à modifier les frais de port de la France par exemple et les mettre à 0.comme dans la pièce joint. Comme sa pour tout les autre pays les frais de port seront appliqué normalement sauf pour la France ils seront à 0 . Link to comment Share on other sites More sharing options...
ariehh Posted January 3, 2011 Share Posted January 3, 2011 Bonjour,Tout fonctionne bien chez moi. Je rencontre juste un mini problème que je n'arrive vraisemblablement pas a résoudre seul. la phrase : Pour obtenir la gratuité des frais de port, vous devez encore commander pour... n'apparait plus du tout. J'aurais voulu qu'elle s'affiche simplement si la zone = 6. J'ai bien suivi ce que vous avez modifier dans le fichier shopping-cart.tpl mais ca ne fonctionne pas chez moi. Merci d'avance de votre aide. {if $free_ship > 0 AND $IDzone == 6} {l s='Remaining amount to be added to your cart in order to obtain free shipping:'} {convertPrice price=$free_ship} Link to comment Share on other sites More sharing options...
erotikat Posted January 10, 2011 Share Posted January 10, 2011 comment est paramétré votre cache Smarty ?Dans le fichier config/smarty.config.inc.php il faut que la variable $smarty->force_compile soit à true (pour forcer la compilation a chaque execution) $smarty->force_compile = true; // to pass "false" when put into production Ne pas oublier de la remettre à false après afin de ne pas forcer la regénération du cache Link to comment Share on other sites More sharing options...
ariehh Posted January 10, 2011 Share Posted January 10, 2011 C'était a false, je l'ai mis a true, rien n'a change. Une autre piste ?Cdt. Link to comment Share on other sites More sharing options...
erotikat Posted January 11, 2011 Share Posted January 11, 2011 Il faudrait faire du debuggage smartyhttp://eric-pommereau.developpez.com/tutoriels/initiation-smarty/?page=page_7 To activate templates debug, edit config/smarty.config.inc.phpAnd make$smarty->debugging = true; Afin de savoir quelle condition n'est pas remplie entre $free_ship et $IDzone Link to comment Share on other sites More sharing options...
ariehh Posted January 11, 2011 Share Posted January 11, 2011 Je suis désolé, je ne m'y connais pas vraiment, j'essaie de faire avec mes petites connaissances. Que dois-je faire en gros ?merci d'avance Link to comment Share on other sites More sharing options...
erotikat Posted January 11, 2011 Share Posted January 11, 2011 Activer le mode debug de smarty dans le fichier config/smarty.config.inc.php (Attention si ton site est deja en production car ce mode affiche le contenu de toutes tes variables de chaque pages, tu dois le faire sur un environnement de test)$smarty->debugging = true;ou bien si tu ne veux qu'afficher le mode debug sur un fichier .tpl tu dois ajouter la variable {debug} au début de ton fichierEt après ce mode activé, tu vas sur la page de ton panier pour voir la valeur de tes conditions ($free_ship et $IDzone) Pour que le message "Pour obtenir la gratuité des frais de port, v..." s'affiche free_ship doit être supérieur à 0 ET IDzone doit être égal à 6 Link to comment Share on other sites More sharing options...
lolyspoon Posted March 14, 2011 Share Posted March 14, 2011 bonsoir,Je rencontre le meme probleme je suis passée en version 1.3.7 , et j'ai fait la modif pour les zones, donc j'offre les frais de port en zone 6 ( france ) des 65 euros et pour les DOM zone 7 a partir de 110 euros pour le reste je ne les offres pas, jusque la le calcul ce fait bien cependant cest la phrase "obtenir la gratuité des FDP..." qui me posait probleme.j'ai donc suivi ce que erotikat disait , sauf que depuis la phrase a disparu autant pour la zone 6 ( cest a dire la france) que pour la zone des DOMS ( zone 7)je voudrais que la phrase ne s'affiche que pour la france et les DOMS , j'ai donc toujours suivi les conseil d'erotikat, j'etais deja en TRUE et $smarty->debugging = true etait deja sur ce mode.LA phrase ne s'affiche toujours pas, pourriez vous m'aidez svp, j'y suis depuis deux heures et je tourne en rond.MErci d'avance Link to comment Share on other sites More sharing options...
lolyspoon Posted March 14, 2011 Share Posted March 14, 2011 fausse manip Link to comment Share on other sites More sharing options...
Christophe-S&Cie Posted July 4, 2012 Share Posted July 4, 2012 Merci pour les différentes contributions. Je vais tester la solution de ce pas. J'ai effectivement besoin d'appliquer la gratuité des frais de port à partir d'un certain montant mais uniquement pour la France métropolitaine. Est-ce que cette solution fonctionne avec la 1.5 ? Merci encore à la communauté Link to comment Share on other sites More sharing options...
pdriss Posted July 4, 2012 Share Posted July 4, 2012 Salut, je viens de faire un post pour la 1.5 RC1 http://www.prestashop.com/forums/topic/176857-surcharge-15-rc1-frais-de-port-gratuit-uniquement-pour-le-pays-de-la-boutique/ @+ pdriss Link to comment Share on other sites More sharing options...
bllcll Posted September 21, 2012 Share Posted September 21, 2012 (edited) Salut, Merci pour ces pistes. Je vais tenter d'adapter cela sur ma boutique Edited September 21, 2012 by bllcll (see edit history) Link to comment Share on other sites More sharing options...
pipo007 Posted September 25, 2013 Share Posted September 25, 2013 Bonjour, j'aimerais configurer des frais de ports gratuits en France, si et seulement : - si minimum 15 € d'achat + - si livraison dans 27 villes/villages (27 codes postaux) de la communauté urbaine de ma ville (strasbourg) Comment associer ces deux conditions ? Les autres modes de livraison en France restent basiques... Merci Link to comment Share on other sites More sharing options...
joey jauffret Posted November 7, 2015 Share Posted November 7, 2015 Bonjour, je suis nouveau sur Prestashop et je souhait aussi offrir la livraison uniquement en France, le calcul de mes fdp se fait au poids, j'ai créé une zone France métropolitaine et le pays France. par contre je ne trouve pas comment modifier le code dans cart.php, quelle est la procédure pour y accéder ? D'avance merci pour vos réponses. Link to comment Share on other sites More sharing options...
joey jauffret Posted November 10, 2015 Share Posted November 10, 2015 Personne pour m'aider ? 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