carlosekloou Posted February 11, 2015 Share Posted February 11, 2015 Bonjour la communauté, je suis entrain de faire un site mais quelques difficultés, j'aimerais que les frais de port (transporteur) soit en pourcentage par rapport au prix total de la commande par exemple si le montant total est 1000$ les frais de port doit etre 4% des 1000$. Mon problème je ne sais pas comment mettre ça en place. Une bonne volonté pour donner les directives ou me dire comment je peux procéder.merci Bien à vous. Link to comment Share on other sites More sharing options...
kwak Posted February 11, 2015 Share Posted February 11, 2015 Bonjour carlosekloou, Prestashop par défaut ne pourra vous permettre de le faire. Il faudra le développer spécifiquement en passant par un override de la méthode Carrier->getDeliveryPriceByPrice() par exemple. Ce qui n'est pas chose simple si vous n'êtes pas développeur. De plus, aurez-vous qu'un seul transporteur ou plusieurs ? Si plusieurs, seront-ils tous en pourcentage ? Avec le même pourcentage ? Une solution simple sans développement serait de créer un pourcentage par tranches : si vous êtes à 4% par exemple, vous pouvez créer plusieurs tranches de prix pour votre transporteur : - de 0 à 100$ de commande, fdp à 4$ - de 100 à 200$, fdp à 8$, - etc... Bien réfléchir au découpage des tranches pour que ce ne soit pas trop pénible à maintenir, tout en créant suffisamment de tranches pour obtenir un niveau maximum de commande de vos clients : jusqu'à quel montant de commande estimez-vous qu'ils vont monter ? kwak Link to comment Share on other sites More sharing options...
carlosekloou Posted February 11, 2015 Author Share Posted February 11, 2015 merci pour votre réponse, on aura qu'un seul transporteur, je suis devéloppeur je voudrais savoir où commencer. merci Link to comment Share on other sites More sharing options...
carlosekloou Posted February 11, 2015 Author Share Posted February 11, 2015 je voudrais que vous m'expliquer un peu votre solution celle des tranches de prix, le prix max c'est 10000$ Link to comment Share on other sites More sharing options...
kwak Posted February 11, 2015 Share Posted February 11, 2015 (edited) Pour la solution de développement, il va falloir surcharger la classe CarrierCore de Prestashop,et particulièrement la méthode getDeliveryPriceByPrice(). Pour plus d'infos sur l'override des fichiers coeur de Prestashop : http://doc.prestashop.com/display/PS16/Overriding+default+behaviors Donc pour commencer, créez un fichier /override/classes/Carrier.php ainsi : <?php class Carrier extends CarrierCore { public function getDeliveryPriceByPrice($order_total, $id_zone, $id_currency = null) { //Ici le code qui retourne le montant de vos frais de port en fonction du montant de la commande ($order_total) } } ?> Je vous laisse entrer le mode de calcul que vous souhaitez et mettre les conditions et tests nécessaires. Cela devrait donner un montant de FDP proportionnel à la commande. A noter qu'il faut avoir au moins un transporteur enregistré. Concernant le découpage par tranches de prix, c'est la manière dont fonctionne Prestashop : http://doc.prestashop.com/display/PS16/Managing+Shipping Et le principe serait de créer plusieurs tranches de 100 à 100 jusque 1000$ par exemple, et de 500 à 500 au dela. Mais c'est une idée, à vous de voir ce qu'il y a de plus simple pour vous. kwak Edited February 11, 2015 by kwak (see edit history) Link to comment Share on other sites More sharing options...
Sda33 Posted February 14, 2015 Share Posted February 14, 2015 (edited) (Prestashop 1.6.0.11) Bonjour et merci beaucoup pour cette explication sur l'override des classes. Ce post m'intéresse parce qu'il me permettra peut-être de corriger le problème que je rencontre ici : https://www.prestashop.com/forums/topic/412598-r%C3%A8gles-paniers-et-frais-de-port-sappliquent-sur-le-total-panier-avant-discount/ Je cherche à comprendre le mécanisme qui permet d'afficher le prix des transporteurs (entre autre) et je ne trouve pas quelle page appelle getDeliveryPriceByPrice($order_total, $id_zone, $id_currency = null). Je souhaite vérifier ce que contient $order_total au moment de l'affichage (mon problème est : je pense que ce n'est pas le bon total, mais le total panier avant application des codes promos). Pouvez-vous m'aider à remonter la piste ? Merci ! [EDIT : J'ai fini par trouver, c'est la classe Cart. ] Edited February 14, 2015 by Sda33 (see edit history) Link to comment Share on other sites More sharing options...
tesshsu Posted March 9, 2018 Share Posted March 9, 2018 Moi aussi, j'aimerai savoir le solution J'ai sait il y a le plugin pour faire pour le virtuemart: https://open-tools.net/virtuemart/advanced-shipping-by-rules.html dans ce cas possible pour faire le situation complex par example reduce par le percentage de total d'achat: Variable=ShipReducedRate; Value=0.1*BasePriceName=”Shipping complex function for without TVA”;Condition=contains_only(ShopperGroups, 7);0.001<=Weight<=0.65;ShippingWithTax= Max(6, 25-ShipReducedRate)Name=”Shipping Full Price”;0.001<=Weight<=0.65;Shipping= 25 pour le conseille de kwak, on pourrai possible faire le class override: public function getDeliveryPriceByPrice($order_total, $id_zone, $id_currency = null) mais si le cas est faire avec le transporteur ID, est n'important quel montant, mais sur le percentage de total amount ( 10% PAR EXAMPLE), et aussi pour le certain group client, apparement il n'y aucun developer method sur prestashop, et c'est vrai ce sera très complique pour changer ça j'imagine 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