guillaume.d Posted October 16, 2013 Share Posted October 16, 2013 Bonjour, Je suis actuellement en train de réaliser un site de e-commerce et mon client souhaiterais que les frais de ports soient gérable par poids et par prix en même temps. Sauf erreur de ma part (je n'ai pas une grande expertise de prestashop, donc n'hésitez pas à me dire si je me trompe) ce n'est pas possible actuellement. J'ai donc orienté son choix vers la gestion par tranche de poids, cependant il souhaiterait malgré tout que le franco port soit fixé en fonction du poids ET du prix. Concrètement j'aimerai savoir s'il est possible de forcer le coût des frais de transport via un hook pour ce cas particulier (précisément ici lorsque la commande est supérieur à 400€HT et fait moins de 100Kg, indépendamment de la zone et du pays) ? Autre petit point (quoique sans doute pas si annodin que celà) il souhaiterai que le prix de livraison au delà de 100Kg soit un ratio entre le poids réel et le cout au 100Kg. Pour être plus clair le calcul fonctionnerai comme ça : Coût au 100Kg : 60€ Poids de la commande : 145Kg Coût de livraison : 145 / 100 * 60 = 87€ Merci par avance. Link to comment Share on other sites More sharing options...
quedufil Posted April 7, 2014 Share Posted April 7, 2014 Bonjour, Je me demandais si vous aviez pu résoudre votre souci exposé en octobre dernier. Je suis confronté au même problème. J'aimerais pouvoir faire jouer les frais de port à la fois avec le prix du panier et le poids. Impossible de configurer quelques chose selon ces règles actuellement sur le back Office de Prestashop. Ou alors, j'ai manqué un truc ! J'aimerais pouvoir offrir les ports quand le client a atteint un certain montant et un certain poids : Exemple : Pour un panier entre 0 et 69 € : Quand le poids du paquet est entre 0 et 3 kg : 7,90€ de frais de port poids entre 3 et 10 kg : 11,40 € poids entre 10 et 20 kg : 14,70 € poids entre 20 et 30 kg : 17,30 € Pour un panier entre 69 et 89 € : poids entre 0 et 3 kg : Gratuit poids entre 3 et 10 kg : 11,40 € poids entre 10 et 20 kg : 14,70 € poids entre 20 et 30 kg : 17,30 € Pour un panier entre 89 et 109 € : poids entre 0 et 3 kg : Gratuit poids entre 3 et 10 kg : Gratuit poids entre 10 et 20 kg : 14,70 € poids entre 20 et 30 kg : 17,30 € Pour un panier entre 109 et 169 € : poids entre 0 et 3 kg : Gratuit poids entre 3 et 10 kg : Gratuit poids entre 10 et 20 kg : Gratuit poids entre 20 et 30 kg : 17,30 € Panier au delà de 169 € : poids entre 0 et 3 kg : Gratuit poids entre 3 et 10 kg : Gratuit poids entre 10 et 20 kg : Gratuit poids entre 20 et 30 kg : Gratuit Merci. Toutes vos réponses seront les bienvenus. Link to comment Share on other sites More sharing options...
pjerome Posted June 9, 2014 Share Posted June 9, 2014 Bonsoir avez vous trouvé une solution ? Link to comment Share on other sites More sharing options...
guillaume.d Posted June 10, 2014 Author Share Posted June 10, 2014 (edited) Bonjour, Oui je suis parvenu à trouver une solution, en fait il suffit simplement d'override la classe correspondant au resultat attendu; Dans mon cas j'ai override la méthode getPackageShippingCost de la classe CartCore afin de modifier la manière dont est calculé le cout de livraison. J'ai ajouté ceci au début de ma méthode afin d'offrir les frais de port aux clients avec un panier supérieur à 400€ pour un poid inférieur à 100Kg. if ($this->getOrderTotal(false, Cart::BOTH_WITHOUT_SHIPPING, $product_list) > 400 && $this->getTotalWeight() < 100) return 0; Et enfin celà afin de modifier le calcul du prix au dela de 100Kg : /** Modification du calcul du prix au delà de 100Kg * */ $total_weight = $this->getTotalWeight($product_list); if ($total_weight >= 100) { // Arrondie du poids aux 10Kg supérieur $total_weight = ceil($total_weight / 10) * 10; $shipping_cost = (float) ($total_weight / 100) * $shipping_cost; Cache::store($cache_id, $shipping_cost); } Cordialement Edited June 10, 2014 by guillaume.d (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