Jaksion Posted September 14, 2009 Share Posted September 14, 2009 Bonjour à tous, Je viens vers vous car je rencontre un problème avec la nouvelle mise à jour de prestashop v1.2.3Ma société offre les frais de port à partir de 149 €d'achat. Mais lorsque je coche " offrir les frais de port à partir de " et que le client passe une commande supérieure à 149 € tous les transporteur passent en gratuit ( chronopost, colissimo recommandé etc )Je souhaite établir une règle qui offre uniquement les frais de port pour le transporteur colissimo et en france métropolitaine.Sur la version 1.1 un code existait mais apparemment depuis la mise à jour celui-ci ne fonctionne plus.Voici le code en question: C'est très simple à modifier :editer classes/cart.php lignes 684 , exemple ici la gratuité s'appliquera uniquement au transporteur par défaut que vous avez coché dans votre BO : // 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 Configuration::get('PS_CARRIER_DEFAULT')==$id_carrier) 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 Configuration::get('PS_CARRIER_DEFAULT')==$id_carrier ) return $shipping_cost; Si quelqu'un à une solution ...Merci bien Link to comment Share on other sites More sharing options...
fe1lho Posted September 14, 2009 Share Posted September 14, 2009 Normalement, tu peux affecter un tarif pour un transporteur donné, par tranche de prix ou de poids...HTH Link to comment Share on other sites More sharing options...
Jaksion Posted September 14, 2009 Author Share Posted September 14, 2009 les frais de port offerts ne sont pas indépendants entre chaque transporteurs.Comme j'expliquais plus haut, les frais de port sont offerts à partir de 149 € mais tout les transporteur deviennent gratuit y compris pour les pays étrangers.Quelle est la solution pour offrir les frais de port à partir de X € pour un seul transporteur et pour un seul pays Link to comment Share on other sites More sharing options...
Jaksion Posted September 15, 2009 Author Share Posted September 15, 2009 Personne n'a de solution ??Je précise que je calcul mes frais de port en fonction du poids, et que les frais de port offert sont en fonction du prix .. Link to comment Share on other sites More sharing options...
gwu777 Posted September 16, 2009 Share Posted September 16, 2009 Un petit up, car j'ao le meme probleme, je ne veux pas faire les frais de port gratuit pour le chronopost! Juste le colissimo. Link to comment Share on other sites More sharing options...
Jaksion Posted September 16, 2009 Author Share Posted September 16, 2009 ah voila j'ai trouver un amis de galère bon courage je pense qu'on aura une réponse dans deux mois Link to comment Share on other sites More sharing options...
gwu777 Posted September 24, 2009 Share Posted September 24, 2009 Apparament on est toujours en train de ramer... Link to comment Share on other sites More sharing options...
zazou30_1 Posted September 18, 2010 Share Posted September 18, 2010 Je suis dans le même cas que toi et je ne peux pas me permettre de mettre en ligne ma boutique si les frais de port gratuits à partir de 69€ s'appliquent à tous les transporteurs de la zone France ! As tu une réponse depuis ? Link to comment Share on other sites More sharing options...
ptidg Posted September 18, 2010 Share Posted September 18, 2010 Même problème pour moi !Et j'ai cherché... Link to comment Share on other sites More sharing options...
zazou30_1 Posted September 20, 2010 Share Posted September 20, 2010 C'est affligeantPersonne n'est capable de répondre à cette question qui semble très important, même des logiciels bidons comme Shopfactory sont capables de faire la distinction entre plusieurs transporteurs et zones !!! Ils peuvent créer un seul transpoteur qui offre les frais de port à partir de... sans pour autant que les autres transporteurs soient concernésPourtant la question semble claire, mais rien à faire, on ne peu plus avancer...Grand Merci à celui qui à une réelle solution de nous en faire part Link to comment Share on other sites More sharing options...
ludo_26 Posted October 30, 2010 Share Posted October 30, 2010 Bonjour,J'utilise la version 1.3.1.1Dans le fichier prestashop/classes/Cart.phpvers la ligne 831 je remplace la ligne : if (isset($configuration['PS_SHIPPING_FREE_PRICE'])) par if (isset($configuration['PS_SHIPPING_FREE_PRICE']) && Configuration::get('PS_CARRIER_DEFAULT')==$id_carrier) Et ca me permet d'avoir les frais de port offerts uniquement pour le moyen de livraison par défaut (Colissimo en ce qui me concerne)Voilà en espérant que cela puisse être utile. N'hésitez pas à faire un retour sur le forum pour nous dire si cela marche aussi pour vous ou non. Link to comment Share on other sites More sharing options...
voiture Posted November 4, 2010 Share Posted November 4, 2010 bonjour,j'ai la version 1.2.5.0j'ai essayé la modif de kidoudou mais ça ne fonctionne pas sous cette versionquelqu'un aurait il la solutioncdt Link to comment Share on other sites More sharing options...
ludo_26 Posted November 4, 2010 Share Posted November 4, 2010 bonjour,j'ai la version 1.2.5.0j'ai essayé la modif de kidoudou mais ça ne fonctionne pas sous cette versionquelqu'un aurait il la solutioncdt Vu le type de patch que j'ai proposé ca ne m'étonne pas trop que ca ne marche pas sur d'autres versions.Je viens de récupérer la version 1.2.5.0 pour jeter un oeil et effectivement il y a une grosse différence sur le traitement à ce niveau là.Voici une modif que je propose, par contre je n'ai pas pris le temps d'installer la version 1.2.5.0, je n'ai donc pas testé, je vous laisse essayer et me faire un retour.Ligne 714 essayez de remplacer : // 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) par // Free fees if (Configuration::get('PS_CARRIER_DEFAULT')==$id_carrier AND isset($configuration['PS_SHIPPING_FREE_PRICE']) AND $orderTotal >= floatval($configuration['PS_SHIPPING_FREE_PRICE']) AND floatval($configuration['PS_SHIPPING_FREE_PRICE']) > 0) Cette proposition est uniquement pour le cas de la livraison gratuite sur un montant. Pour la livraison gratuite sur un poids, il faudrait faire une modification équivalente sur la ligne d'après. Link to comment Share on other sites More sharing options...
zazou30_1 Posted November 4, 2010 Share Posted November 4, 2010 Oui la solution existe et est vendu par un programmateur. Ça vaut le coût et en plus cela fonctionne avec les 3 versions en coursLaissez moi votre mail et je vous orienterai vers lui !Cldt Link to comment Share on other sites More sharing options...
ludo_26 Posted November 4, 2010 Share Posted November 4, 2010 Oui la solution existe et est vendu par un programmateur. Ça vaut le coût et en plus cela fonctionne avec les 3 versions en coursLaissez moi votre mail et je vous orienterai vers lui !Cldt Programmateur ou programmeur Moi je ne suis que programmeur Link to comment Share on other sites More sharing options...
voiture Posted November 4, 2010 Share Posted November 4, 2010 bonsoir kidoudou,j'ai fais la modif que vous proposez et j'ai toujours mes 4 choix de transporteur qui sont visible quand le port est gratuitpour ma part le port est gratuit pour un montant minimum de 100€. et le transporteur par default : colissimo suivimerci de prendre du temps pour nous aider à résoudre ce problème. :-) crdt Link to comment Share on other sites More sharing options...
ludo_26 Posted November 4, 2010 Share Posted November 4, 2010 Bonsoir,Avant d'aller plus loin, dites moi si ce que vous voulez faire correspond à ce que j'ai fait.par défaut j'ai les choix de transporteurs suivant :colissimo : 5€chronopost : 20€Lorsque le montant d'achat est atteint j'offre les frais de port mais uniquement sur le colissimo le client à donc le choix :colissimo : gratuitchronopost : 20€Est ce que c'est bien la même chose que cela que vous souhaitez faire ?J'attends votre réponse et je jetterai un oeil plus précisément dans le code de la version 1.2.5. Link to comment Share on other sites More sharing options...
voiture Posted November 4, 2010 Share Posted November 4, 2010 oui c'est bien ça si je peut me permettre, l'idéal serait d'avoir uniquement "colissimo suivi" donc mon transporteur par défault comme choix lorsque le montant est atteind.ou si cela n'est pas possible prendre votre solution qui est déjà très bien.merci Link to comment Share on other sites More sharing options...
ludo_26 Posted November 5, 2010 Share Posted November 5, 2010 oui c'est bien ça si je peut me permettre, l'idéal serait d'avoir uniquement "colissimo suivi" donc mon transporteur par défault comme choix lorsque le montant est atteind.ou si cela n'est pas possible prendre votre solution qui est déjà très bien.merci Bonsoir,J'ai installé la version 1.2.5.0 de prestashop et j'ai testé la modification que je proposais précédemment. J'ai uniquement remplacé la ligne 731 comme je l'indiquais.De mon coté j'ai l'impression que ca fonctionne. J'attache deux copie d'écrans à ce post. La première montre le résultat quand je n'ai pas atteint le minimum de commande pour la livraison gratuite (80 euros dans ma configuration) et la deuxième copie d'écran montre ce qu'il se passe si je dépasse le montant de livraison gratuite.Pouvez vous vérifier que la version de prestashop que vous avez est bien la 1.2.5.0 . Vérifier également que vous avez bien modifié le bon fichier prestashop/classes/Cart.php. Link to comment Share on other sites More sharing options...
ludo_26 Posted November 5, 2010 Share Posted November 5, 2010 Voiture, par rapport à votre autre demande qui concerne le fait de ne proposer que le transporteur par défaut en cas frais de port offert j'ai effectué une modification qui répond au besoin. Voir la copie d'écran jointe (on remarquera que mon transporteur 'chronopost' n'est plus visible car j'ai atteint le montant de frais de ports gratuits (80€) donc je ne propose que le transporteur par défaut et il est mis en gratuit).La modification se fait dans prestashop/order.phpIl faut rechercher les lignes suivantes (normalement à la ligne 322 dans le order.php par défaut de la version 1.2.5.0) : $resultsArray = array(); foreach ($result AS $k => $row) { $carrier = new Carrier(intval($row['id_carrier'])); if ((Configuration::get('PS_SHIPPING_METHOD') AND $carrier->getMaxDeliveryPriceByWeight($id_zone) === false) OR (!Configuration::get('PS_SHIPPING_METHOD') AND $carrier->getMaxDeliveryPriceByPrice($id_zone) === false)) { unset($result[$k]); continue ; } Puis les remplacer par celles ci : $resultsArray = array(); $configuration = Configuration::getMultiple(array('PS_SHIPPING_FREE_PRICE')); $orderTotal = $cart->getOrderTotal(true, 7); foreach ($result AS $k => $row) { $carrier = new Carrier(intval($row['id_carrier'])); if ((Configuration::get('PS_SHIPPING_METHOD') AND $carrier->getMaxDeliveryPriceByWeight($id_zone) === false) OR (Configuration::get('PS_CARRIER_DEFAULT')!=$row['id_carrier'] AND isset($configuration['PS_SHIPPING_FREE_PRICE']) AND $orderTotal >= floatval($configuration['PS_SHIPPING_FREE_PRICE']) AND floatval($configuration['PS_SHIPPING_FREE_PRICE']) > 0) OR (!Configuration::get('PS_SHIPPING_METHOD') AND $carrier->getMaxDeliveryPriceByPrice($id_zone) === false)) { unset($result[$k]); continue ; } Je vous laisse tester. Si ca ne fonctionne pas essayer de me dire si vous constatez au moins des modifications de comportement ou non. Link to comment Share on other sites More sharing options...
voiture Posted November 6, 2010 Share Posted November 6, 2010 bonsoir kidoudouj'ai installé la seconde solution celle qui laisse uniquement le transporteur par défautet cela fonctionne très bien pour l'instant. pas de bug constaté tout est nickel.vous êtes un Chef avec un grand C !....encore bravo et merci pour votre temps.jean paul Link to comment Share on other sites More sharing options...
ludo_26 Posted November 6, 2010 Share Posted November 6, 2010 Bonsoir,Merci pour votre retour. Content d'avoir pu vous rendre service. Si jamais vous rencontriez le moindre soucis n'hésitez pas à me recontacter.Très bonne continuation à vous.A bientôt. Link to comment Share on other sites More sharing options...
ludo_26 Posted November 6, 2010 Share Posted November 6, 2010 D'ailleurs j'en profite pour remercier aussi l'initiateur du sujet ( Jor1s ) qui m'a donné les premières infos qui m'ont permis de mettre en place cette petite fonctionnalité.Je ne sais pas si Jor1s a testé les modifs que j'ai proposée. Le thread étant ancien ce n'est peut être plus d'actualité pour lui. Dans tous les cas Jor1s vous pourriez peut être rajouter [RESOLU] dans le titre de ce thread. Ce n'est qu'une suggestion, je vous laisse juge.A bientôt,Ludovic. Link to comment Share on other sites More sharing options...
voiture Posted November 6, 2010 Share Posted November 6, 2010 merci pour la proposition je ne manquerais de faire appelle à vous ci j'avais le moindre problème avec la modif.j'ai fais un tour sur votre boutique c'est trés sympa pour les bouts de choux.mes 2 bouts de choux on 20 et 12 ans alors!... ;-) peut être pour un cadeaux ?A+jean_paul Link to comment Share on other sites More sharing options...
Dir Posted November 9, 2010 Share Posted November 9, 2010 Bonjour,Il existe également un module qui permet d'offrir les frais de port en fonction du prix/poids total de la commande, de la zone de livraison, du transporteur et du groupe de client : Free Shipping : http://addons.prestashop.com/fr/transport-logistique/1558-free-shipping.htmlFabien Link to comment Share on other sites More sharing options...
orwell Posted August 13, 2012 Share Posted August 13, 2012 Bonjour, J'utilise la version 1.3.1.1 Dans le fichier prestashop/classes/Cart.php vers la ligne 831 je remplace la ligne : if (isset($configuration['PS_SHIPPING_FREE_PRICE'])) par if (isset($configuration['PS_SHIPPING_FREE_PRICE']) && Configuration::get('PS_CARRIER_DEFAULT')==$id_carrier) Et ca me permet d'avoir les frais de port offerts uniquement pour le moyen de livraison par défaut (Colissimo en ce qui me concerne) Voilà en espérant que cela puisse être utile. N'hésitez pas à faire un retour sur le forum pour nous dire si cela marche aussi pour vous ou non. Testé et approuvé sur une version 1.4.8.2. La ligne de code dans Cart.php se trouve ligne 1146 ! Merci beaucoup ! 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