MaMouT Posted May 27, 2011 Share Posted May 27, 2011 Bonjour à tous,j'ai une question qui me vient d'un client et je me tourne vers vous car je ne trouve pas de solution simple.En gros, il veux faire des frais de port gratuit à partir d'un certain montant mais il dispose de certains produits considérés comme encombrant par son transporteur et qui lui facture un supplément non négligeable (et du coup pas rentable).La question est: est-il possible de désactiver les frais de port gratuit sur certains produits ?Une chose important : il est en version 1.3.3.0 et pour l'instant, on ne change pas le système!D'avance merci pour vos réponses.MaMouT Link to comment Share on other sites More sharing options...
MaMouT Posted July 25, 2011 Author Share Posted July 25, 2011 Un petit up ? Link to comment Share on other sites More sharing options...
cockpitinferno Posted June 21, 2012 Share Posted June 21, 2012 up aussi Link to comment Share on other sites More sharing options...
ckarone Posted June 21, 2012 Share Posted June 21, 2012 Bonjour, C'est un manque de base dans PS, il est impossible de conditionner les frais de port par produit ou même de définir un frais de port fixe. Votre solution est d'ajouter un champs dans la fiche produit et de conditionner les frais de port gratuit si cette condition (définie par le nouveau champs) et true ou false dans Cart.php. Ckarone Link to comment Share on other sites More sharing options...
cockpitinferno Posted June 22, 2012 Share Posted June 22, 2012 ok, mais ne peut on pas se servir du champ "frais de port supplémentaires" dans les fiches produit du BO pour que ces derniers s'appliquent en permanence. de plus c'est contradictoire avec ce que vous dites, on peu depuis la v1.4 mettre des frais de port supplémentaires pour un seul produit, le seul pb c'est que en cas de dépassement du seuil de fp offerts ces frais de port supplémentaires s'annulent!! Link to comment Share on other sites More sharing options...
cockpitinferno Posted June 25, 2012 Share Posted June 25, 2012 up! Link to comment Share on other sites More sharing options...
France Posted June 25, 2012 Share Posted June 25, 2012 Je suis très intéressée par le sujet car j'ai vraiment besoin d'une solution moi aussi pour certains produits. Link to comment Share on other sites More sharing options...
France Posted June 26, 2012 Share Posted June 26, 2012 ok, mais ne peut on pas se servir du champ "frais de port supplémentaires" dans les fiches produit du BO pour que ces derniers s'appliquent en permanence. de plus c'est contradictoire avec ce que vous dites, on peu depuis la v1.4 mettre des frais de port supplémentaires pour un seul produit, le seul pb c'est que en cas de dépassement du seuil de fp offerts ces frais de port supplémentaires s'annulent!! À bien y penser, même si cela fonctionnait on aurait toujours un problème car si c'est un frais de port que l'on met pour 1 produit, si le client en prend 2, les frais de port vont se calculer en double ce qui n'est pas correct (dans mon cas). Il faudrait que le système calcul les frais de port à partir du poids du produit tel qu'on l'a défini au départ. Link to comment Share on other sites More sharing options...
ckarone Posted June 27, 2012 Share Posted June 27, 2012 (edited) Avoir des frais de port fixe à partir du champs "frais de port supplémentaires" c'est possible mais pour cela il faut modifier/overrider la class Cart.php et modifier le comportement de la méthode getTotalWeight() . Il faut exclure les produits qui on un frais de port fixe dans la requête sql suivante: public function getTotalWeight() { if (!isset(self::$_totalWeight[$this->id])) { $result = Db::getInstance()->getRow(' SELECT SUM((p.`weight` + pa.`weight`) * cp.`quantity`) as nb FROM `'._DB_PREFIX_.'cart_product` cp LEFT JOIN `'._DB_PREFIX_.'product` p ON cp.`id_product` = p.`id_product` LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa ON cp.`id_product_attribute` = pa.`id_product_attribute` WHERE (cp.`id_product_attribute` IS NOT NULL AND cp.`id_product_attribute` != 0) AND (p.`additional_shipping_cost` IS NULL OR p.`additional_shipping_cost` = 0) AND cp.`id_cart` = '.(int)($this->id)); $result2 = Db::getInstance()->getRow(' SELECT SUM(p.`weight` * cp.`quantity`) as nb FROM `'._DB_PREFIX_.'cart_product` cp LEFT JOIN `'._DB_PREFIX_.'product` p ON cp.`id_product` = p.`id_product` WHERE (cp.`id_product_attribute` IS NULL OR cp.`id_product_attribute` = 0) AND (p.`additional_shipping_cost` IS NULL OR p.`additional_shipping_cost` = 0) AND cp.`id_cart` = '.(int)($this->id)); self::$_totalWeight[$this->id] = round((float)($result['nb']) + (float)($result2['nb']), 3); } return self::$_totalWeight[$this->id]; } J'ai pas testé mais cela doit fonctionner. @cockpitinferno il est pas possible de base de définir un frais de port fixe par produit mais seulement d'ajouter un supplément. @France Vos frais de port ne sont pas conditionnés par la quantité de produit ? Edited June 27, 2012 by ckarone (see edit history) Link to comment Share on other sites More sharing options...
France Posted June 27, 2012 Share Posted June 27, 2012 Bonjour ckarone Mes frais de port se calcule sur le poids du produit donc avec ta méthode avec des frais fixes le coût des frais de port va se calculer en double. Voici un exemple: 1 produit qui pèse 2 lbs = $11.99 + taxes de frais de transport. Si le client en a 2 les frais de port deviennent $13.99 + taxes donc seulement $2 de plus que si le client avait 1 seul contenant. Avec les frais fixes le client payerait $11.99 x 2 ce qui n'est pas correct. Merci Link to comment Share on other sites More sharing options...
cockpitinferno Posted July 6, 2012 Share Posted July 6, 2012 merci ckarone pour cette piste je viens d'essayer en local mais ca ne fonctionne pas complètement bien. il me laisse bien des frais de port même si je dépasse 100€ mais ce sont des frais de port qui ne correspondent à rien. dans l'exemple, j'ai un produit de 12kg avec des FP de 19.13€ et un supplément de 5.98€ donc total 25.11€ si j'ajoute un autre article de 2 ou 3kg et pour que le total soit supérieur à 100€ (seuil de gratuité des fp) il me laisse des fp de 15.55€ ce qui ne correspond à rien. je voudrais n'avoir que les 5.98€ de supplément. est ce possible. Link to comment Share on other sites More sharing options...
ckarone Posted July 6, 2012 Share Posted July 6, 2012 Avez vous une tva sur le transporteur ? Votre grille de tarif commence à 15.55? Ckarone Link to comment Share on other sites More sharing options...
cockpitinferno Posted July 6, 2012 Share Posted July 6, 2012 en fait j'avais une erreur de paramétrage sur les FP gratuits. du coup avec le bon transporteur en gratuit, la modif ne fonctionne pas. les frais de port s'annulent dès que je dépasse 100€ d'achats. même si il y a un supplément. Link to comment Share on other sites More sharing options...
cockpitinferno Posted July 6, 2012 Share Posted July 6, 2012 Je pensais que ca se jouait plus vers là: // Additional Shipping Cost per product foreach($products AS $product) $shipping_cost += $product['additional_shipping_cost'] * $product['cart_quantity']; $shipping_cost = Tools::convertPrice($shipping_cost, Currency::getCurrencyInstance((int)($this->id_currency))); mais je ne vois pas quoi ajouter pour que ca s'applique en permanence. Link to comment Share on other sites More sharing options...
cockpitinferno Posted July 24, 2012 Share Posted July 24, 2012 un petit up, auriez vous une solution? Link to comment Share on other sites More sharing options...
fxdesca Posted February 25, 2013 Share Posted February 25, 2013 un petit up, auriez vous une solution? Je relance ce sujet fort intéressant mais malheureusement sans réponse ? Allo team presta ? A quand une solution pour ce problème très ennuyant pour un site e-commerce ? Link to comment Share on other sites More sharing options...
Rosiel Posted February 25, 2013 Share Posted February 25, 2013 Bonsoir, Moi aussi j'ai ce problème et je trouve ça galérant depuis des mois et je ne trouve pas de solutions. j'ai même acheté un module qui je pensais m'apporterais une solution en créant des exceptions (produits sans livraison gratuite) mais je me suis trompée ce ne sont pas les exceptions que l'on peut indiquer mais les produits auquels on veut y associer la livraison gratuite. Bref quasiment tout le catalogue... ha la la ça traine. Prestashop si vous passez par là, merci d'avance de nous proposer une solution ! Link to comment Share on other sites More sharing options...
cockpitinferno Posted February 26, 2013 Share Posted February 26, 2013 en 1.4 j'ai fait une bidouille avec le module stiff carrier categ. en fait j'ai créé un transporteur spécial pour certains produits. avec 1.5 maintenant c'est en natif donc tu peux créer facilement un transporteur spécifique qui s'appliquera à ces produits uniquement et qui ne sera jamais gratuit. 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