maher Posted April 3, 2011 Share Posted April 3, 2011 bonjour,avec la version precedente nous avons reussi à avoir frais de port gratuit que pour la france à partir d une somme determine. grace à cette réponse dans ce forum : 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 mais avec presta shop 1.4 on trouve pas la ligne plus haut que faut il changer svp ? Link to comment Share on other sites More sharing options...
Crsitelle Posted April 22, 2011 Share Posted April 22, 2011 Bonjour,Je suis nouvelle sur le forum, j'ai découvert Prestashop il y a un an.Je le trouve génial cet OS.Mais là je bloque, je désire pouvoir vendre en dehors de la Belgique mais ne pas offrir les frais de port pour les autres pays (à partir d'un certain montant).Si non, je vais vendre à perte !Pour le moment j'ai des commandes de la France mais par email.J'ai essayé la modification ci-dessus, cela ne fonctionne pas.J'ai la version 1.3.1.1.Pourriez-vous m'aider ?Merci Link to comment Share on other sites More sharing options...
leste Posted April 24, 2011 Share Posted April 24, 2011 Même demande, effectivement la modif fonctionne juqu'à la version 1.3 après faut une idée génial, avis au pro du CodeMerci à Tous Link to comment Share on other sites More sharing options...
tresorsdargan Posted April 30, 2011 Share Posted April 30, 2011 Bonjour à vous,Personnellement, je suis sur la version 1.4.10 avec mes 2 boutiques en lignes, et la modification est bien appliqué et parfaitement fonctionnelle sur le fichier Cart.php à la ligne 1069La ligne en question : if ($orderTotalwithDiscounts >= (float)($free_fees_price) AND (float)($free_fees_price) > 0 and $id_zone==9) Sur mon autre boutique en 1.3.7, la modif fonctionne également parfaitement sur la ligne 866,La ligne en question : $free_fees_price = Tools::convertPrice(floatval($configuration['PS_SHIPPING_FREE_PRICE']), new Currency(intval($this->id_currency))); Cordialement Link to comment Share on other sites More sharing options...
cedrickb Posted June 27, 2011 Share Posted June 27, 2011 Bonjour Narjis,Je suis en version 1.3.7 également et j'essaye d'appliquer la modification que tu proposes, mais je ne vois pas ou modifier si la zone est la france par exemple, dans le code que vous avez mis il n'y a pas de "$id_zone==X"Si vous avez une suggestion sur la modification à appliquer je suis preneur car je n'y arrive pas du tout!CordialementCédrick Link to comment Share on other sites More sharing options...
alex 2 Posted June 27, 2011 Share Posted June 27, 2011 bonjour Pour moi en version 1 3 les frais de port sont en principe gratuit pour la France métropolitaine, mais pour certain produit les frais de port double le prix des produits. Comprend pas si vous avez une réponse http://www.chaussure-pour-enfant.com MERCI Link to comment Share on other sites More sharing options...
tresorsdargan Posted June 28, 2011 Share Posted June 28, 2011 La modif fonctionne pour PS 1.3 et PS 1.4 sans aucun soucis, il n'est normal que vous ne trouviez pas cette mention $id_zone==X, sachant que X représente la zone 9 chez moi, d'ou le rajout de 0 and $id_zone==9) en ligne 1069 du fichier Cart.php dossier Classe sur PS 1.4.Sur ma 1.37, le code rajouté est : 0 and $id_zone==6 OR $id_zone==9), soit la ligne complète chez moi : if ($orderTotalwithDiscounts >= floatval($free_fees_price) AND floatval($free_fees_price) > 0 and $id_zone==6 OR $id_zone==9) return $shipping_cost; if (isset($configuration['PS_SHIPPING_FREE_WEIGHT']) AND $this->getTotalWeight() >= floatval($configuration['PS_SHIPPING_FREE_WEIGHT']) AND floatval($configuration['PS_SHIPPING_FREE_WEIGHT']) > 0 and $id_zone==6 OR $id_zone==9) return $shipping_cost;Cordialement Link to comment Share on other sites More sharing options...
cedrickb Posted June 28, 2011 Share Posted June 28, 2011 Bonjour Nrjis,Merci pour cette réponse, le problème en fait c'est que je ne trouve pas cette ligne dans ma version de prestashop (1.3.3.0)J'ai dans mon code: // 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; if (isset($configuration['PS_SHIPPING_FREE_WEIGHT']) AND $this->getTotalWeight() >= floatval($configuration['PS_SHIPPING_FREE_WEIGHT']) AND floatval($configuration['PS_SHIPPING_FREE_WEIGHT']) > 0) return $shipping_cost; Mais du coup, je ne vois pas ou intégrer la condition sur la zone... Désolé si ça parait bête comme question mais j'ai déjà pas mal cherché et la j'avoue que je galère...Merci d'avance pour votre aide.CordialementCédrick Link to comment Share on other sites More sharing options...
cedrickb Posted July 6, 2011 Share Posted July 6, 2011 Bonjour Nrjis,Désolé pour la déchire, votre code fonctionne parfaitement!!Merci encore!!!Cédrick Link to comment Share on other sites More sharing options...
webmaster Fetichisme.eu Posted August 30, 2011 Share Posted August 30, 2011 Enlevez-moi un doute svp. J'ai moi aussi eu besoin de modifier ce code. Néanmoins, une petit chose m'échappe. Vous parlez tantôt d'un id_zone de 6, tantôt de 9 pour la France. Or, dan mon back-off(prestashop 1.4.4.1), l'id de la France est 8 ! if ($orderTotalwithDiscounts >= (float)($free_fees_price) AND (float)($free_fees_price) > 0 and $id_zone==8 ) return $shipping_cost; Est-ce bien cet ID qu'il faut utiliser pour conserver la gratuité de frais de port que pour la france ? Merci d'avance Link to comment Share on other sites More sharing options...
leste Posted September 1, 2011 Share Posted September 1, 2011 Enlevez-moi un doute svp. J'ai moi aussi eu besoin de modifier ce code. Néanmoins, une petit chose m'échappe. Vous parlez tantôt d'un id_zone de 6, tantôt de 9 pour la France. Or, dan mon back-off(prestashop 1.4.4.1), l'id de la France est 8 ! if ($orderTotalwithDiscounts >= (float)($free_fees_price) AND (float)($free_fees_price) > 0 and $id_zone==8 ) return $shipping_cost; Est-ce bien cet ID qu'il faut utiliser pour conserver la gratuité de frais de port que pour la france ? Merci d'avance C'est ça tu choisi l'id 8 si c'est à la France que tu veux associer les frais de port gratuit.... Link to comment Share on other sites More sharing options...
dcsz Posted September 19, 2011 Share Posted September 19, 2011 bonjour j'ai paramétré dans mon BO frais de port gratuit au dessus de 200 euros mais est-il possible de mettre cette fonction que pour le pays = france et pas de port gratuit pour les autres pays merci de votre aide cdlt Dominique Link to comment Share on other sites More sharing options...
cedrickb Posted September 19, 2011 Share Posted September 19, 2011 Bonjour dcsz, Il suffit de regarder les posts précédents et la réponse est écrite! Pour avoir les frais de ports gratuits pour la france et pas pour d'autres pays, il faut modifier le fichier cart.php comme indiqué plus haut... Cédrick Link to comment Share on other sites More sharing options...
dcsz Posted September 22, 2011 Share Posted September 22, 2011 Bonjour Cedrick ça fait 2 jours que je galère, j'ai tout essayé avec le bon id pour la France moi c'est 8 et les autres pays ont toujours les mêmes conditions= livraison gratuite pour 200 euros merci de votre aide ps/ je suis en version prestashop 1,4,3 cdlt Dominique Link to comment Share on other sites More sharing options...
shroom Posted September 25, 2011 Share Posted September 25, 2011 Etes-vous sur d'avoir modifié le code au bon endroit ? Deux lignes plus bas et vous modifiez les livraisons gratuites en fonction du poids et non du prix. Etes-vous également sur de l'id que vous avez utilisé ? La valeur renseignée ici correspond à la valeur que vous trouvez sur la page "Transport > Zone" dans le BO. Link to comment Share on other sites More sharing options...
sebdu91 Posted September 28, 2011 Share Posted September 28, 2011 Bonjour à tous, J'ai PS en version 1.2.5 (oui je sais il serait surement temps de faire une mise a jour...) Je souhaiterais également limité les frais de port gratuit mais pour la France et l'Europe (je voudrais exclure les dom tom) Je pense que la solution évoqué par Maher sur son premier post doit être la bonne mais comment dois je faire pour ajouter tous les Id des pays ou je veux autoriser les frais de port gratuit ? Merci pour votre aide seb Link to comment Share on other sites More sharing options...
sebdu91 Posted October 2, 2011 Share Posted October 2, 2011 Un ptit up pour le sujet !! J ai un autre souci, je suis en version 1.2.5 et dans mon fichier cart.php je n'ai pas de ligne sur le free shipping mais j'en trouve dans le fichier order.php mais les codes ne sont pas les même. Une idée please car les envois en DOMTOM me coute un bras et je ne veux pas stopper les frais de port gratuit à tout le monde pour ça !! A vot' bon coeur msieurs dames !! Seb Link to comment Share on other sites More sharing options...
Forethan Posted June 20, 2012 Share Posted June 20, 2012 Fonctionne toujours aussi bien sur V 1.4.8.2. Merci à vous! Link to comment Share on other sites More sharing options...
seno Posted July 22, 2012 Share Posted July 22, 2012 Bonjour, J'ai fait la modification sur une V1.4 en vue de limiter les FdP gratuits d'un code promo pour la france uniquement (id=6 chez moi), mais ça ne fonctionne pas. Est-ce que ça devrait aussi fonctionner pour les codes promo ? Merci. Link to comment Share on other sites More sharing options...
brunto Posted October 13, 2012 Share Posted October 13, 2012 (edited) Pour ma part, avec la version 1.4.8.2 j'ai du faire ceci dans le fichier classes/Cart.php Juste après la ligne : $orderTotalwithDiscounts = $this->getOrderTotal(true, Cart::BOTH_WITHOUT_SHIPPING); Mettre : $result_country_and_state = Address::getCountryAndState((int)($this->id_address_delivery)); if(count($result_country_and_state) && isset($result_country_and_state['id_country']) && $result_country_and_state['id_country'] > 0) $id_country = $result_country_and_state['id_country']; else $id_country = 0; Et remplacer la ligne suivante par : if ($orderTotalwithDiscounts >= (float)($free_fees_price) AND (float)($free_fees_price) > 0 && $id_country == 8) Car en faite ce n'est pas la Zone que l'on cherche mais le Pays (Country) Edited October 13, 2012 by brunto (see edit history) 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