Peha Posted November 28, 2009 Share Posted November 28, 2009 Bonjour à tous,je souhaiterais avoir une gestion des frais de ports plus fines, et je n'ai pas trouvé comment faire.En effet, lorsque je veux livrer pour certaines zones (éloignées) et que ça doit passer par Avion, le transporteur peut être amené à prendre en compte le volume du paquet plutôt que le poids.le calcul est le suivant :largeur x Longueur x profondeur / "ratio" = “number”if “number” < poids le coût du transport est calculé en fonction du poidselse if poids < “number”le coût du transport est calculé en fonction du "number" considéré comme un poidsle "ratio" dépend du transporteur et est variable dans l'année (en fonction du prix du pétrole je pense)pour résumer cette règle particulière doit être activable zone par zone,et le ratio varie en fonction du transporteur choisi.Bien sur il me faudra entrer les caractéristiques largeur Longueur profondeur et poids pour chaque produit pour que ça marche.qu'en pensez vous ?quelqu'un d'autre semble intéressé sur le forum Anglais : http://www.prestashop.com/forums/viewthread/30102/general_discussion/shipping_subsystem_improvement_suggestion/ Link to comment Share on other sites More sharing options...
Peha Posted November 29, 2009 Author Share Posted November 29, 2009 Il faut que trouve comment rajouter un champ volume, ou bien le calculer à partir des caractéristiques des produits L*l*h.De plus il faudrait rajouter un champs dans la config du transporteur pour le "ratio".Et enfin il faudrait rajouter une case à cocher dans la config des zones pour activer ou non le calcul du prix/Volume.faisable ? pas faisable ??sous la forme d'un module ?brut dans le coeur de la solution ? Link to comment Share on other sites More sharing options...
Peha Posted November 29, 2009 Author Share Posted November 29, 2009 RE-une partie de ce que je cherche à faire est peut être dans classes/cart.phpvers les lignes 732 et 740 $shipping_cost += $carrier->getDeliveryPriceByWeight($this->getTotalWeight(), $id_zone); la méthode $carrier->getDeliveryPriceByWeight() est appelée pour calculer dans quelle tranche de poids est le panier.Lors du calcul du poids par $this->getTotalWeight(), (ligne 7610)SI la zone est concernée par le calcul de la tranche en fonction du volume,il faudrait aussi faire ce calcul : volume/ratioTransporteurpour ensuite retourner à la place du poids normal si il est plus grand. public function getTotalWeight() { if (!$this->id) return 0; if ($this->_totalWeight) return $this->_totalWeight; $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 cp.`id_cart` = '.intval($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 cp.`id_cart` = '.intval($this->id)); $this->_totalWeight = round(floatval($result['nb']) + floatval($result2['nb']), 3); return $this->_totalWeight; } hum...là, j'ai besoin d'aide... Link to comment Share on other sites More sharing options...
Peha Posted November 30, 2009 Author Share Posted November 30, 2009 J'aurais peut être du poster dans "dev. et modules"... Link to comment Share on other sites More sharing options...
ckarone Posted November 30, 2009 Share Posted November 30, 2009 Bonjour Peha,-Dans un premier temps il faut ajouter un champs en plus dans l'admin produit pour indiquer les dimensions du carton (200 x 1000 x 600)Il faut donc modifier AdminProduct.php qui se trouve dans le dossier /admin/tabs, Product.php qui se trouve dans le dossier /classes et bien sur la table product dans la db si je souviens bien.-Il faut aussi ajouter un champs pour le rotio dans les préférences de presta ou dans option transporteur (Fuel surcharge en pourcent)-Si ton transporteur c'est TNT ou UPS il faut aussi ajouter l'assurance du colis qui correspond à un pourcentage de ton prix d'achat des produits à livrer.-pour simplifier, tu peux faire un test sur le poids pour savoir si ton poids (Kg) est plus grand ou plus petit que ton poids-volume (m3) de ton panier et conditionner l'exécution de la fonction getTotalWeight() en fonction du résultat. Link to comment Share on other sites More sharing options...
Peha Posted November 30, 2009 Author Share Posted November 30, 2009 Bonjour Bilyx, merci pour cette réponse.ça clarifie beaucoup ce qu'il faut faire....et ça a l'air pas mal "risqué" car on intervient à plusieurs niveaux de la boutique qui devient totalement impossible à mettre à jour par la suite.avec un approche "module" penses tu que c'est faisable ? Link to comment Share on other sites More sharing options...
ckarone Posted November 30, 2009 Share Posted November 30, 2009 Je ne pense pas qu'un module puisse t’aider à faire ce calcul puisque celui-ci intervient dans une classe, le corps du site.Notes que je suis pas spécialiste POO (je débute) mais comme ce calcul est "appelé" via la classe Cart.php, tu ne peux pas faire en sorte qu'une autre classe (dans un module) "écrase" la valeur obtenue avec la méthode getTotalWeight() sans ajouter du code dans la classe Cart.php. Si un dev PHP pro passe ici!Pour ce qui est de la mise à jour, ce n’est pas un blocage, suffit de noter tes modifications et de réappliquer celles-ci après les mises à jour. Link to comment Share on other sites More sharing options...
Fabrice Posted January 19, 2010 Share Posted January 19, 2010 ou alors d'effectuer une mise à jour à la main...sinon, moi aussi je suis fortement intéressé par cette approche volume.en effet, exportant de plus en plus, avec les poids actuels des produits, la différence en port peut représenter des dizaines voir des centaines d'euros.Quelqu'un a-t-il trouvé une solution à cette question ? Link to comment Share on other sites More sharing options...
Peha Posted January 19, 2010 Author Share Posted January 19, 2010 j'ai jeté l'éponge de le faire moi même...mais je suis bien sur toujours intéressé. Link to comment Share on other sites More sharing options...
Fabrice Posted January 19, 2010 Share Posted January 19, 2010 cela ne devrait pas être bien compliqué pour un dev qui s'ennuie...en résumé : entrer une nouvelle valeur (poids volumétrique)comparer les poids + vérifier que le pays n'est pas le pays local (France dans notre cas)utiliser cette valeur de poids pour le calcul du transport.c'est simplifié (pas de calcul du poids suivant l+L+h), mais à mon avis ça en dépannerait plus d'un... Link to comment Share on other sites More sharing options...
Fabrice Posted January 19, 2010 Share Posted January 19, 2010 sinon, je pense connaître quelqu'un qui pourrait nous faire ça.tu serais d'accord pour partager les frais de dev ?SP : je déplace ce post dans dev et modules, qui me semble plus approprié.si un dev passe par là, qu'il ne se gêne pas pour participer... Link to comment Share on other sites More sharing options...
Peha Posted January 19, 2010 Author Share Posted January 19, 2010 j'avais bp réfléchit à ça, et voici comment je le vois1_ajouter un paramètre volume dans la fiche produit*2_ajouter un paramètre "par avion" à cocher/décocher dans la création d'un transporteur + si coché ajouter un paramètre "ratio" au transporteur. (car la valeur peut varier en fonction du transporteur et change au cours de l'année)3_modifier dans le cœur de la solution le calcul des frais de ports. si le transporteur choisi a l'option "par avion" activé_ volume de la commande/ratio = X_ si X < poids de la commande__ calculer les frais en fonction du poids_ si X > poids de la commande__ calculer les frais en fonction du volume/ratioAinsi il suffirait de créer des transporteurs spéciaux "par avion" qu'on peut naturellement activer en fonction des zones desserviescar la distinction france/pas-france n'entraîne pas forcément un port "par avion" (par exemple pour la belgique on ne passe pas par avion)*à moins d'utiliser les paramètres du produit Link to comment Share on other sites More sharing options...
Peha Posted January 19, 2010 Author Share Posted January 19, 2010 partager le dev m'intéresse sur le principe, mais ça dépend du prix, j'ai des moyens très limité sur ce projet.je pensais faire un feature request, j'imaginais que la team serait intéressée car cette option décuplerai pas mal les possibilités de la solution.finalement par manque de temps je n'ai rien fait... Link to comment Share on other sites More sharing options...
emraud Posted March 26, 2010 Share Posted March 26, 2010 Bonjour,Je relance le post car je suis également interressé.Mon besoin est un peu différent et je pense le contourner avec quelques modif des traductions pour l'instant mais à terme il faudrait que je puisse gérer les expédition en mètre linéaire et non en poids. Sans perdre pour autant l'information de Poids (modification envisagée de EAN 13 pour le coup...) car les transporteurs peuvent la demander et certains produits pèsent nettement plus lourd que la majorité (densité 270 kg/m3 contre 50 kg/m3 en moyenne pour les autres) Comme je vend à la palette, le volume entre également en compte, surtout sur les "petits achats" (1 à 3 palettes) qui varit de 1m50 de hauteur à 2m55... donc pas de messagerie possible lorsqu'il s'agit de palette de plus de 2m30.De plus, c'est une information dont ont besoin mes clients car souvent ils ne se rendent pas compte de l'encombrement à l'arrivée et... Surprise...Aussi, si vous avez avancé dans votre recherche, je suis preneur car pour l'instant ma solution est loin d'être "propre" et j'ai peur "d'oublier" des choses en chemin... qui viendraient perturber les calculs existants...[EDIT] J'ai trouvé ça ... Cela concerne un ajout de TVA mais c'est super précis (ajout variable, calcul et affichage)Attention, il s'agit de la méthode exposée icihttp://www.prestashop.com/forums/viewthread/34101/modules_tiers/tva_sur_marge_resolu__solutionPour un bon programmeur, cela doit être modifiable en champ volume ou 2 variables Long et Large... Code_AjoutChampAdminProduct.txt Link to comment Share on other sites More sharing options...
emraud Posted March 27, 2010 Share Posted March 27, 2010 Bonsoir,Un petit Up pour relancer le post...Plus, je fais le tour, plus je constate que la gestion des transporteurs touchent du monde... Stiffcarrier très interressant mais pas encore la solution dans mon cas. L'ajout de variable est trop peu développé pour un novice en code comme je suis... Pourtant, la méthode de calcul et le nombre de variable à toucher n'est pas légion... Personne pour me conseiller ou me montrer qu'elle voie prendre...La demande est : "pouvoir calculer les frais de port sur le métrage (très proche du volume du poste puisque une variable d'écart dans le calcul) et non au Prix ou au Kg... Link to comment Share on other sites More sharing options...
emraud Posted March 27, 2010 Share Posted March 27, 2010 Salut la Team, hello les devellopeurs,Je vous lis et reste admiratif du boulot que chacun produit.En général, au bout d'une heure, je lis des lignes et, ne vois plus que des chiffres et des lettres.Alors que beaucoup d'entre vous "lisent" du code.Je relance ce post car ma solution, si d'un point de vue gestion, est correcte reste exécrable en programmation (pire en utilisation d'applicatif).Je souhaiterais avoir (et je suis sur de ne pas être le seul) une solution propre pour modifier Kg en ML (mètre linéaire). Entout cas, avoir le choix à ce niveau et conserver le poids de base de mon unité de venteEspère être lu et vous lire Link to comment Share on other sites More sharing options...
Peha Posted March 31, 2010 Author Share Posted March 31, 2010 Bonjour,Merci emraud pour la marche a suivre pour ajouter un champs dans le BOdu coup je m'y suis re-penché dans un moment perdu.ça marche presquepour un produit normal, le prix du port semble correct en fonction de son volume/ratio ou de son poids si il est supérieur.mais je bloque sur les déclinaisons de produits qui complexifient énormément le truc.Quand on créé une declinaison, il faut aussi paramètrer l'impact sur le volume(comme l'impact sur le prix ou sur le poids), et là y'a un truc qui m'échappe.si bien que les modifs empêchent de créer des déclinaisons...en plus il y'a aussi le générateur de déclinaisons a modifier !(y'a pas mal de javascript et c'est pas ma tasse de thé (a part jQuery...))es ce quelqu'un ayant des connaissances javascript/php voudrait m'aider a finir ??(personnellement, le projet pour lequel je me suis penché sur cette question est finit (on a trouvé une solution de contournement) et c'est sur mon temps libre que je m'acharne sur ce truc) Link to comment Share on other sites More sharing options...
emraud Posted March 31, 2010 Share Posted March 31, 2010 Bonsoir,Sur le forum indonésien (je ne le parle pas, ni ne le lis...), j'ai trouvé ce Hack, qui, si j'ai bien lu permet d'étendre à State le paramétrage des transporteurs (et non plus à zone). Interressant dans mon cas car j'ai découpé notre beau pays en 22 régions (states). et aussi d'intégrer un calcul variable (paramétrable...) depuis le back office sur le calcul du Poids.Je ne l'ai pas encore testé, seulement décompressé et un peu épluché avec mes maigres connaissances...J'ai posté sur leur forum en anglais espérant qu'une bonne âme pourra m'expliquer la finalité et si il est fonctionnel. upload.zip ID Weight Range v1.0.b.zip ID Weight Range update v0.9.b to v1.0.b.zip Link to comment Share on other sites More sharing options...
besky Posted March 3, 2011 Share Posted March 3, 2011 Je trouve ça tout de même extraordinaire qu'aucun dev ne s'intéresse à cette fonctionnalité qui serait pour beaucoup de gens salutaire. Je cherche depuis plusieurs jours maintenant et aucune solution ne m'est apparut. à croire que les personnes compétentes sont toutes parties en vacances.Très franchement si je ne trouve pas comment solutionner ce problème j'ai bien peur de partir sur un autre CMS qui proposera ce genre d'options basiques. Link to comment Share on other sites More sharing options...
Broceliande Posted March 3, 2011 Share Posted March 3, 2011 Je trouve ça tout de même extraordinaire qu'aucun dev ne s'intéresse à cette fonctionnalité qui serait pour beaucoup de gens salutaire. Je cherche depuis plusieurs jours maintenant et aucune solution ne m'est apparut. à croire que les personnes compétentes sont toutes parties en vacances.Très franchement si je ne trouve pas comment solutionner ce problème j'ai bien peur de partir sur un autre CMS qui proposera ce genre d'options basiques. Bonjour/soir besky,Ca ne me surprend pas plus que ça car il ne s'agit pas d'une fonctionnalité en réalité, mais de cas très particuliers à chaque fois.Je découvre ce topic, qui commence à dater il semble , mais j'y lis plusieurs demandes très distinctes.Alors je ne crois pas qu'un dev se mette en tête de fournir un module universel , que chacun s'empressera illico de lui faire modifier pour coller à tel ou tel cas de figure.Je doute que d'autres cms pallient ces cas de figure plus ou moins que prestashop.Les devs gagnent leur croûte (il faut bien aussi...un peu au moins) sur ces développements spécifiques qu'aucun cas général ne peut prévoir.J'ai pour l'exemple un petit module fait maison que j'adapte au cas par cas et qui permet de masquer tel ou tel transporteur selon quelques tests que je change selon les besoins. Ce n'est qu'une base inutilisable sans ces tests bien spécifiques qu'on ne peut mettre en place sans connaissances en développement. Ca ne ferait jamais un module "cles en main"...Il y a des solutions pour chaque cas, mais pas toujours une solution pour l'ensemble des cas, je pense qu'il faut le voir ainsi et éviter ce genre de remarque par exemple :à croire que les personnes compétentes sont toutes parties en vacances Ce qui risque fort d'eloigner les réponses bien loin d'ici Tu peux commencer par exposer clairement ta problématique spécifique , les paramètres qu'il te manque , leur impact sur l'affichage des transporteurs , sur le prix etc ...Si ton cas est général et non particulier, je parie qu'il y aura beaucoup plus d'activité sur ce topic. Link to comment Share on other sites More sharing options...
ckarone Posted March 4, 2011 Share Posted March 4, 2011 Bonjour,La demande de besky n'est pas une problématique particulière, elle est fonction de son transporteur (TNT?) et il n'est pas le seul à utiliser cette méthode de calcul qui est presque aussi simple que le calcul en fonction du poids. Deux paramétrés s'ajoutent à ce calcul, le volume et le cout d'assurance qui représente un pourcentage du prix des produits. Pour le volume, on va chercher le cout dans le tableau en fonction de celui-ci et pour l'assurance, on applique un taux sur le prix total des produits qu'on ajoute au frais de port.Ckarone Link to comment Share on other sites More sharing options...
besky Posted March 4, 2011 Share Posted March 4, 2011 Bonjour Broceliande et ckatone, merci d'avoir répondu.Comme le dis ckarone, en effet ce n'est pas du tout spécifique comme cas. Bien au contraire, un bon nombre de transporteurs utilisent la facturation aux dimensions. Personnellement j'utilise les lettres max de la poste, mais apparemment TNT le fait aussi. Je ne demande en aucun cas qu'un dev fasse un module pour ma problématique spécifique, loin de la. Seulement, un module qui permettrais simplement de pouvoir reprendre les caractéristiques "Longueur", "Largeur" et "Profondeur" des produits, qui au passage sont déjà prévu par prestashop dans leur démo de produits.Et simplement un module qui s'ajoute dans la partie "transport" qui permettrais de configurer pour chacun des transporteurs, des tranches de dimensions, en de pouvoir ajouter un prix pour chacune d'elle.Après effectivement il serait bien que l'on puisse déclencher la tarification des frais de port par tranche de dimensions à partir d'un certain poid seulement.Je suis en train de faire un cahier des charges pour la création de ce module. Je vais essayer de le faire moi même mais j'ai bien peur que ca me prenne tout mon temps n'étant pas très familier à la création de modules sur prestashop. Ceci dit j'essai bien entendu de faire un module pour la communauté et non pas pour moi seul et je pense que les personnes ayant les compétences, plutôt que de faire des modules pour leurs propres besoins et de ne pas les partager pourraient faire des modules un peu plus génériques, qui pour autant leur conviennent aussi, et qu'ils devraient les partager avec la communauté afin tout simplement d'aider les gens et de faire avancer un peu le chmilblique. Ce n'est que mon avis ps: apparemment les messages du genre "à croire que les personnes compétentes sont toutes parties en vacances." font plus réagir que les demandes d'aide avec remerciement et tout le tintouin Link to comment Share on other sites More sharing options...
ckarone Posted March 4, 2011 Share Posted March 4, 2011 Un module ne pourra pas répondre à cette problématique, vous devez modifier le cœur du site.j'explique un premier point de départ ici Les frais de port en fonction du poids/volume sont appliqués dans le cas de livraison international (avion) donc pour beaucoup de transporteur comme TNT Chronopost et autres.Ckarone Link to comment Share on other sites More sharing options...
besky Posted March 4, 2011 Share Posted March 4, 2011 En effet ckarone les frais pour chaque produits ce n’est pas tellement viable, d’autant qu’il serait je pense plus logique que les frais ne s’ajoutent pas une fois dans le panier.Le problème, si on ne peut faire de module c’est que la moindre maj va tout faire foirer. C’est dommage qu’on ne puisse pas réutiliser des fonctions comme le calcul des frais en dehors des classes, c’est peut-être impossible je n’en sais rien je n’ai pas assez regardé le code de prestashop, mais je pense que ce serait pas mal de passer par des fonctions pour des choses qu’on pourrait ainsi réutiliser facilement dans des modules. Me trompe-je ?En ce qui concerne le volume, ca peut être pas mal aussi pour certaines problématique, mais ce n’est pas suffisant ckarone. Pourquoi ? bah simplement, si tu as un paquet ou une palette ou je ne sais quoi qui fait 1m3 par exemple, et que les dimensions du paquet ou de la palette font 1m x 1m x 1m et que ton produit fait 1m3 mais que ses dimensions sont 0.5m x 1,5m x 1,3m. Bah excuse moi de l’expression mais tu l’a dans le fion ^^ (c‘était pour la rime).Donc l’idéal serait un calcul au m3 et avec les dimensions. Le m3 par exemple pour des vendeur de sable ou de gravier (un exemple pourrit je sais) et en dimensions (L x l x P) pour les vendeurs de tous objets.Je sent qu’a en discuter on avance pas mal de boulot des dev Non, un simple calcul du volume à partir de 0.5m x 1,5m x 1,3m pour obtenir le m3 et plus de problème non?Il suffit de mettre une option dans le transporteur et définir m3 ou taille de la boite et hop !Je propose de continuer sur ce fil pour simplifier : http://www.prestashop.com/forums/viewthread/35850/P15/developpement/frais_de_ports__prise_en_compte_du_volume_dot___en_cm3/Ckarone Voila, je me suis permis d'ajouter ici les deux derniers messages de l'autre sujet. En effet innutile d'en parler sur plusieurs sujets à la fois.Pour répondre Ckarone, en effet c'est ainsi que je vois les choses, mais quoi qu'il arrive il faut avoir à la fois les dimensions et le cubage, de toute manière c'est rien de très compliqué une fois récupéré les dimensions, d'avoir le cubage. Link to comment Share on other sites More sharing options...
besky Posted March 4, 2011 Share Posted March 4, 2011 Ckarone, si tu t'y connais un peu en création de modules sur prestashop on pourrait le réaliser à deux qu'en dis tu ? Link to comment Share on other sites More sharing options...
ckarone Posted March 4, 2011 Share Posted March 4, 2011 J'ai regardé un peu le code de la 1.4 pour voir comment il est possible d'implémenter ce calcul en fonction du volume et je confirme que le calcul ne pourra pas ce faire via un module mais avec un modification de plusieurs fichiers du core de PS .En plus il faudra ajouter (une table range_volume) un tableau pour les tanches de volumes sinon c'est pas possible a moins d'avoir un seul transporteur.Je continu de regarder si cela ne me prend pas trop de temps pour réaliser cette modification.J'ai ajouté une option pour ajouter un transporteur en fonction du volume (classe Carrier.php et tab Admincarrier) ensuite j'ai ajouté ma table range_volume pour le moment.Ckarone Link to comment Share on other sites More sharing options...
Peha Posted March 4, 2011 Author Share Posted March 4, 2011 En plus il faudra ajouter (une table range_volume) un tableau pour les tanches de volumes sinon c’est pas possible a moins d’avoir un seul transporteur. Tous les transporteurs que j'utilisent ont 1 seul tableauet un petit ratio pour "convertir" le volume en poidspas besoin de tranches de volumes donc puisque ce sont les même que le poids.Est ce différent pour vous? Link to comment Share on other sites More sharing options...
ckarone Posted March 4, 2011 Share Posted March 4, 2011 non j'ai que des tranches de volume mais ceux qui ont par exemple un transporteur pour le national n'auront pas les mêmes tarifs pour les mêmes poids/volumes par avion (international) non!Ckarone Link to comment Share on other sites More sharing options...
ckarone Posted March 4, 2011 Share Posted March 4, 2011 J'ai un peu avancé, maintenant j'ai le choix du transport en fonction du volume dans le BO et mon tableau pour indiquer mes tarifs en fonction des zones à livrer. J'ai aussi la possibilité de mettre le calcul selon de volume par défaut.Je m'attaque maintenant (lundi ) au calcul dans le FO dans la classe Cart.php .Si vous avez des idées sur le sujet allez-yCkarone Link to comment Share on other sites More sharing options...
besky Posted March 4, 2011 Share Posted March 4, 2011 bien joué Ckarone !A tu pensé à prendre en compte aussi le calcul des frais de port en fonction des dimensions et non du volume ? car comme je te l'ai expliqué, prendre en compte uniquement le volume satisfera surement certaines personnes mais seulement les personnes qui travaillent directement en volume genre les vendeur de sable ou autre.Et ce serait cool de pouvoir choisir des tranches de dimensions en fonction des boite pour les colis qu'on a.Genre pour lettre max de la poste (en ce qui me concerne) ce serait cool de pouvoir configurer les tranches paquet S (142x135x19 mm)paquet M (192x137x19 mm)etc.Je sais pas si c'est clair ce que je dis mais dis moi si jamais tu as besoin de plus de précisions Link to comment Share on other sites More sharing options...
Peha Posted March 4, 2011 Author Share Posted March 4, 2011 Je met ici les bouts de code qui m'avais permit d'avancer.Mais je ne suis pas sur que tu veilles faire la même chose que moi finalement// modif mode de calcul frais de portscart.php function getOrderShippingCost { $shipping_cost += $carrier->getDeliveryPriceByWeight($this->getTotalWeight(),$this->getTotalVolume(), $id_zone); } faire une fonction fonction getTotalVolume() calquée sur getTotalWeight() carrier.php public function getDeliveryPriceByWeight($totalWeight, $totalVolume, $id_zone) if (isset($this->ratioCm3) && $this->ratioCm3 != 0) { $ratio = $this->ratioCm3; $compareWeightVolume = $totalVolume / $ratio; if ($compareWeightVolume > $totalWeight ) { $totalWeight = $compareWeightVolume; } } j'espère que ça t'aidepa. Link to comment Share on other sites More sharing options...
besky Posted March 5, 2011 Share Posted March 5, 2011 Je pensais un truc Ckarone, pour faciliter les mises à jours puisqu'apparemment il est impossible de faire un module, ce serait bien de mettre le code dans différents fichiers ou l'on ai juste à faire un include('fichier.php'); à l'endroit ou il faut inclure le code.Comme ça à chaque mise à jour ca enlève juste les include qui sont, il faut bien le dire moins chiant à remettre que s'il faut remettre tout le code non ?Qu'en penses-tu ?Cordialement, Link to comment Share on other sites More sharing options...
ckarone Posted March 7, 2011 Share Posted March 7, 2011 Bonjour,@besky, on va utiliser les champs largeur x hauteur x profondeur (version 1.4) des produits pour calculer le volume comme cela si besoin ceux qui on des produits avec le volume cela sera simple pour tous.Pour les includes je pense pas si un pro de la POO peu m'en dire plus sur la surcharge de classe !@Peha, merci mais j'utilise les mêmes méthodes que celle de PS avec une petite modif de getTotalWeight() qui devient getTotalVolume().Ckarone Link to comment Share on other sites More sharing options...
ckarone Posted March 18, 2011 Share Posted March 18, 2011 Bonjour,Je suis de retour pour vous informer que j'ai intégré mes travaux sur la version final de PS et que j'arrive maintenant à afficher les frais de livraison sur le FO mais il me reste un peu de travail sur la page de sélection du transporteur.Voilà j'avance !Ckarone Link to comment Share on other sites More sharing options...
ckarone Posted March 18, 2011 Share Posted March 18, 2011 Bon la première phase est terminée et cela fonctionne correctement Il y a plusieurs class et tab à modifier mais aussi des tables de la DB à modifier et à ajouter.Ces modifications vont modifier le core de PS et les mises à jour seront impossibles.Avez vous des demandes concernant le calcul des frais en fonction du volume?Offrez vous les frais de port (condition de prix/volume) dans un tel cas de figure?La team PS, ne pensez vous pas que cette option existe de base dans la solution?Ckarone. Link to comment Share on other sites More sharing options...
Peha Posted March 18, 2011 Author Share Posted March 18, 2011 Salut,Bravo pour ce travailça marche avec les déclinaisons qui impactent le volume ?pa. Link to comment Share on other sites More sharing options...
ckarone Posted March 18, 2011 Share Posted March 18, 2011 Non pas pour le moment mais j'y travail! Link to comment Share on other sites More sharing options...
ckarone Posted March 18, 2011 Share Posted March 18, 2011 @Peha Pour l'impact des déclinaisons sur le volume, on ajoute le volume en m3 ou les dimensions? Link to comment Share on other sites More sharing options...
besky Posted March 20, 2011 Share Posted March 20, 2011 Il y a quelque chose que je ne comprend pas. Les captures que tu nous montre c'est des tranches en KG ? Du coup quelle différence avec les tranches de poids ?Je comprend pas non plus pourquoi les tranches de volumes ne comprennent pas les dimensions. Car un objet de 10m de long et d'1m d'épaisseur pourra faire le même volume qu'un objet de 2m sur 5m pour autant le prix ne sera pas le même du point de vu du livreur. Ai-je tord ? (je suis peut-être chiant mais ca me parait essentiel)Ceci dit c'est une belle avancé que d'avoir fait tout ça Link to comment Share on other sites More sharing options...
Peha Posted March 20, 2011 Author Share Posted March 20, 2011 je pense qu'il faut surtout être cohérent avec ce que tu as fait avantMaison parle ici l'impact sur le volume des déclinaison,ce qui veut dire pour chaque decl 3 champs à remplir (l x L x h)fastidieux...re-Mais calculer l'impact sur le volume de chaque decl pour une variation de largeur ou de hauteur est aussi très fastidieux.(sachant que dans certains cas, seul un paramètre peut varier (la largeur par ex) ce qui nous économise un calcul.)doncje pense qu'il faut surtout être cohérent avec ce que tu as fait avantdonc 3 champsimpact sur la largeurimpact sur la longueurimpact sur la hauteurnon ?pa. Link to comment Share on other sites More sharing options...
ckarone Posted March 28, 2011 Share Posted March 28, 2011 @besky ne prends pas en compte cette donnée (KG) je n'ai pas modifier celle-ci pour le moment.Pour le volume de tes exemples de volume de produits, c'est juste il n'auront pas le même cm3 mais ton transporteur va te donner un tableau avec des poids/volumes et non pas des dimensions c'est pourquoi le tableau ne comporte pas de dimension mais un poids volumétrique.@Peha OK je prend note de ton avis pour ce point et cela risque de faire un peu lourd dans le générateur de produit mais bon ! Link to comment Share on other sites More sharing options...
ckarone Posted March 29, 2011 Share Posted March 29, 2011 Vos transporteurs ne conditionnent-ils pas le calcul des frais en fonction du poids Kg si celui-ci est supérieur au poids CM3?Pour simplifier, si le poids Kg est plus important que le poids volumétrique, alors on calculera les frais de port sur base du poids Kg.C'est mon cas avec TNT et vous?Au passage, ma modification me permet pour le moment de prendre en compte le champs impact sur le poids dans mon calcul en fonction du volume. Je passe maintenant à l'ajout de 3 champs (width height et depth) dans les déclinaisons .Et franchement bravo à la Team PS pour le qualité du code qui est vraiment lisible et surtout compréhensible même sans commentaire!Ckarone Link to comment Share on other sites More sharing options...
ckarone Posted March 29, 2011 Share Posted March 29, 2011 Pour l'impact des déclinaisons j'ai suivi l'idée de Peha en ajoutant 3 champs (Width, Height et Depth) qui vont impacter le volume du colis avec la possibilité d'augmenter et de diminuer les dimensions.Voici un petit screen : Link to comment Share on other sites More sharing options...
Peha Posted March 29, 2011 Author Share Posted March 29, 2011 j'ai toujours pensé que le menu déroulant augmentation/réductionpourrait être remplacé par des opérateurs directement dans le champs :+10-20=30 (ou *rien*30)(mais il faudrait gérer les cas de figures avec des espaces en trop avant ou après l'opérateur)qu'en penses tu ? Link to comment Share on other sites More sharing options...
ckarone Posted March 29, 2011 Share Posted March 29, 2011 Le menu déroulant est une très bonne chose puisque cela évite de faire des contrôles pour rien (espace, caractères, ...) et cela simplifie la compréhension .Enfin de mon point de vu avec en plus un simplification au niveau du calcul pour obtenir le volume ou le poids total !Ckarone Link to comment Share on other sites More sharing options...
ckarone Posted March 30, 2011 Share Posted March 30, 2011 Bon voilà le générateur de déclinaison fonctionne avec la prise en compte de l'impact sur le volume .Pour donner un peu plus de détails sur le fonctionnement de cette modification voici la methode getTotalVolume() qui calcul le volume: public function getTotalVolume() { if (!array_key_exists($this->id, self::$_totalVolume)) { $result = Db::getInstance()->getRow(' SELECT SUM( ( (p.`width` + pa.`width`) * (p.`height` + pa.`height`) * (p.`depth` + pa.`depth`) ) * 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 cp.`id_cart` = '.(int)($this->id)); $result2 = Db::getInstance()->getRow(' SELECT (p.`width` * p.`height` * p.`depth`) * 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 cp.`id_cart` = '.(int)($this->id)); self::$_totalVolume[$this->id] = round((float)($result['nb']) + (float)($result2['nb']), 3); } return self::$_totalVolume[$this->id]; } 2 petits screens pour vous donner une idée!Ckarone Link to comment Share on other sites More sharing options...
besky Posted March 30, 2011 Share Posted March 30, 2011 Jolie boulot ! Une petite question: est-ce que cette version peut passer pour la 1.3.7 ? car j'y suis repassé vu les nombreux bugs de la V1.4 "stable".En fait si je comprend bien (c'est pas dit ^^ ) on peut impacter le cout suplémentaire à la fois sur le volume et à la fois sur les dimensions non ? Link to comment Share on other sites More sharing options...
Peha Posted March 30, 2011 Author Share Posted March 30, 2011 oui super boulotlà c'est que l'impact sur les dimensionsil a demandé notre avis, j'ai donné le mien... Link to comment Share on other sites More sharing options...
besky Posted March 30, 2011 Share Posted March 30, 2011 Bah en ce qui me concerne ce sont bien les dimensions qui m’intéressent car j'utilise les lettres max de la poste et au delà d'un certain poids ou si le produit est épais et donc s'il ne rentre pas dans une enveloppe plate, ça passe en dimensions.Donc si le prix change en fonction des dimensions du produits, je dis bravo ^^, Sinon j'avais posé la question de savoir si on pouvait inclure un fichier externe qui pourrait donc faciliter les mises à jour, grâce à un "include" ou quelque chose du genre. Personne n'a d'info la dessus ? Link to comment Share on other sites More sharing options...
ckarone Posted March 30, 2011 Share Posted March 30, 2011 Comme le dit Peha, cela impact les dimensions du colis donc le volume final du colis donc les frais de port!!!Pour appliquer cette modification sur une 1.3.7, il faut que je regarde les sources de cette version mais je pense pas !Il me reste de petits bugs à corriger et à ajouter le facteur poids si il est plus important que le volume pour terminer (pour TNT). Vos transporteurs ne conditionnent pas ce point if $poids > $volume alors on calcul les frais sur base du poids ?Je cherche aussi à faire de la surcharge de classe et de tabs pour ne pas modifier le core de PS mais cela semble possible que sur les classes et pas sur les tabs. De plus, pensez qu'il faut ajouter des tables et des colonnes dans votre DB pour que cette modification fonctionne correctement. Pour les mises à jours cela sera vraiment pas simple.Ckarone Link to comment Share on other sites More sharing options...
besky Posted March 30, 2011 Share Posted March 30, 2011 J'essaierais de l'adapter à la v1.3.7 car de toute façon je pense pas que je passerais de si tôt à la 1.4.En ce qui concerne le poids c'est plutôt le contraire pour moi if $poids < $volume alors on calcul sur le poids. Ceci dit ça ne dois pas être bien compliqué de laisser le choix entre: au dessus de ..Kg ou en dessous de ..kg. Suffit à mon avis de laisser le choix avec une liste d'options ou quelque chose du genre si on veut > ou < et de mettre un petit champ texte à coté pour choisir la valeur qui accompagne cela. Ensuite il te suffit de récupérer ça dans la BDD comme une variable et de l'insérer dans ta condition.Me trompe-je ?Pour la table au pire il est toujours possible d'utiliser une BDD secondaire, bien entendu cela nécessite de prévoir les modifs en conséquences... Si seulement l'équipe de Ps avait inclus tout ça dans la v1.4 ^^Bon courage Ckarone Link to comment Share on other sites More sharing options...
ckarone Posted March 31, 2011 Share Posted March 31, 2011 J'ai pas de 1.3.7 pour vérifier la compatibilité, si vous avez un lien pour télécharger cette version, merci d'avance (j'ai pas trouvé sur PS ).Pour conditionner if $poids < $volume oui c'est assez simple, je détermine déjà la condition inverse via une option dans la config du transporteur!Pour la DB nom c'est possible mais il faudra ajouter des jointures de table et cela ralentira un peu mysql donc pas top!Ckarone! Link to comment Share on other sites More sharing options...
besky Posted March 31, 2011 Share Posted March 31, 2011 Toutes les version sont téléchargeables ici: http://code.google.com/p/prestashop/downloads/list Link to comment Share on other sites More sharing options...
ckarone Posted March 31, 2011 Share Posted March 31, 2011 OK merci beskyAvez vous remarquez que lorsque que l'on modifie les paramètres d'un transporteur, son id est modifié!Ckarone Link to comment Share on other sites More sharing options...
ckarone Posted March 31, 2011 Share Posted March 31, 2011 Oubliez ma question de l'id du transporteur, il faut que fasse une petite pause hein! Offrez vous les frais de port dans le cas du transport en fonction du volume?Ckarone Link to comment Share on other sites More sharing options...
besky Posted April 1, 2011 Share Posted April 1, 2011 bah perso a partir de 100€ j'offre les frais de port après j'ose espérer que ça fonctionne même quand on calcule les frais de port au poids par exemple. Ceci dit ce serait pas con que je test ça ^^édit: c'est vérifié et ça fonctionne. Link to comment Share on other sites More sharing options...
Peha Posted April 1, 2011 Author Share Posted April 1, 2011 #je pense que "offrir les frais de ports à partir de" doit pouvoir être modifié ou au moins désactivé dans le cadre d'un envoie par avion.#Les transporteurs avec qui je bosse font effectivement un calcul au volume SI le prix au poids est inférieur...par contre je n'ai pas de grille de tarif spécifique au volume, mais un "taux"je divise mon volume par ce taux(qui varie fréquemment) et j'obtiens un nombre à appliquer dans ma grille de poids.avoir une grille spécifique au volume serait fastidieux à chaque variation du taux.il me semble que fedEx, Ups, et d'autres fonctionnent comme ça... Link to comment Share on other sites More sharing options...
ckarone Posted April 1, 2011 Share Posted April 1, 2011 @Peha, pour toi c'est super simple alors, il suffit juste d'ajouter un coefficient dans les paramètres du transporteur et de mettre une condition sur le volume dans la méthode $getTotalWeight() : if $volume > $poids : $volume = $volume*$coef. Et quand le taux change alors tu vas le modifier dans les paramètres du transporteur!Tu en dis quoi?Autres question, vous colis sont certainement assurés, comment est calculé cette assurance?Ckarone Link to comment Share on other sites More sharing options...
besky Posted April 11, 2011 Share Posted April 11, 2011 Je suis en train de me former à faire des modules et il semble tout à fait possible de faire un module ou on modifie des classes et toute sorte de fichier donc je pense que quand tu aura fini les modifications j'essaierais d'adapter le tout à un module si ça ne te dérange pas. Ainsi chacun pourra l'installer et tout de même faire des mises à jour sans problème. Link to comment Share on other sites More sharing options...
ckarone Posted April 11, 2011 Share Posted April 11, 2011 Salut,J'ai peu de temps pour le moment pour ce dev mais voici la méthode qui calcul le volume avec prise en compte de l'impact sur les déclinaisons.Pour aller plus vite, vous remplacez la code de la méthode getTotalWeight() par celui de getTotalMaxVolume() ci-dessous et ça fonctionne (PS-1.4).Pour les déclinaisons, Il faudra ajouter des champs (width, height et depth) dans le tab déclinaison et des colonnes dans votre db pour que cela fonctionne.@besky, comment faire? /** * Return cart volume * * @return float Cart volume */ public function getTotalVolume() { if (!array_key_exists($this->id, self::$_totalVolume)) { $result = Db::getInstance()->getRow(' SELECT SUM( ( (p.`width` + pa.`width`) * (p.`height` + pa.`height`) * (p.`depth` + pa.`depth`) ) * cp.`quantity`) as nb, (p.`weight` + pa.`weight`) * cp.`quantity` as kg 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 cp.`id_cart` = '.(int)($this->id)); $result2 = Db::getInstance()->getRow(' SELECT (p.`width` * p.`height` * p.`depth`) * cp.`quantity` as nb, p.`weight` * cp.`quantity` as kg 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 cp.`id_cart` = '.(int)($this->id)); self::$_totalVolume[$this->id] = round((float)($result['nb']) + (float)($result2['nb']), 3); } return self::$_totalVolume[$this->id]; } Edit: Faites attention a l'unité de mesure qui est en cm dans les fiches produit!!Ckarone Link to comment Share on other sites More sharing options...
besky Posted April 11, 2011 Share Posted April 11, 2011 Ckarone en fait il faut simplement (j'en suis pas encore la mais c'est ce qu'on ma dis) faire un clone du fichier que tu veux modifier, tu le modifie à ta guise dans ton clone, puis grâce à une requête, dont je n'ai pas encore la connaissance à l'installation du module tu sauvegarde le fichier d'origine pour pouvoir le remettre à la désinstallation puis tu le remplace par ton fichier, toujours avec une requête et le tour est joué.Après j'en suis seulement à apprendre à créer un module pour le moment donc j'ai pas encore attaqué le remplacement de fichiers mais je vais m'y mettre sous peu Link to comment Share on other sites More sharing options...
besky Posted April 14, 2011 Share Posted April 14, 2011 Bonsoir Ckarone,Un petit indice ici pour modifier les classes avec un module: http://www.prestashop.com/forums/viewthread/64051/developpement/extension_de_classes_pour_ladministration/Par-contre en effet a priori pour la v1.3 ya pas moyen de faire ça sans jarter le fichier d'origine et le remplacer par un clone ce qui est embêtant pour les mises à jour.En revanche pour la 1.4 la il y a du nouveau, un petit conseil renseigne toi sur l'override de prestashop qui te permettrait de surcharger des classes sans avoir à toucher au coeur de ps Cordialement,Besky Link to comment Share on other sites More sharing options...
ckarone Posted April 15, 2011 Share Posted April 15, 2011 Bonjour,Oui l’override est possible sur les classes mais pas pour les tabs de l'admin qui doivent êtres modifiées pour ajouter le tableau des tranches de volumes et le réglage par défaut du transporteur sur le volume.Si tu n'utilises pas de transporteur en fonction du poids, avec la classe que je donne dans mon précédant post, tu peux faire le calcul en fonction du volume!Ckarone Link to comment Share on other sites More sharing options...
ckarone Posted April 22, 2011 Share Posted April 22, 2011 Bonjour,Suite à une demande en MP, je donne la modification pour ajouter le calcul du transport en fonction du volume sur une PS 1.2.5 Avec condition pour TNT (si poids > volume) alors on retourne le poids et pas le volume pour définir le cout de transport.Attention, cette modification ne permet plus les mises à jour.Disclaimer, Je ne pourrai en aucun cas être tenu responsable du moindre dommage résultant de cette modification.Faites cette modification sur un site en dev hein 1/ Créer 3 champs (height, width et depth) dans la fiche produit et dans la table product pour indiquer les dimensions du produit.Voici la requete sql pour créer les champs pour le volume: ALTER TABLE `psSonyC_product` ADD `width` FLOAT NOT NULL DEFAULT '0' AFTER `weight` , ADD `depth` FLOAT NOT NULL AFTER `width`, ADD `height` FLOAT NOT NULL AFTER `depth` Voici le code à ajouter dans le tab Adminproduct.php à la ligne 1440 après le : '.$this->l('Height').' <input size="18" maxlength="18" name="height" type="text" value="'.htmlentities($this->getFieldValue($obj, 'height'), ENT_COMPAT, 'UTF-8').'" onKeyUp="[removed]this.value = this.value.replace(/,/g, \'.\');" /> mm '.$this->l('width').' <input size="18" maxlength="18" name="width" type="text" value="'.htmlentities($this->getFieldValue($obj, 'width'), ENT_COMPAT, 'UTF-8').'" onKeyUp="[removed]this.value = this.value.replace(/,/g, \'.\');" /> mm '.$this->l('Depth').' <input size="18" maxlength="18" name="depth" type="text" value="'.htmlentities($this->getFieldValue($obj, 'depth'), ENT_COMPAT, 'UTF-8').'" onKeyUp="[removed]this.value = this.value.replace(/,/g, \'.\');" /> mm Pour enregistrer les données il faut modifier la classe Product.php:Ajouter ceci vers la ligne 104 environs /** @var string Weight in default height unit */ public $height; /** @var string Weight in default width unit */ public $width; /** @var string Weight in default depth unit */ public $depth; Trouver ceci (ligne 102 environs) protected $fieldsRequired = array('id_tax', 'quantity', 'price', 'weight' ); Et remplacez par : protected $fieldsRequired = array('id_tax', 'quantity', 'price', 'weight', 'height', 'width', 'depth' ); Trouver ceci (ligne 212 environs) 'weight' => 'isFloat', et ajouter ceci 'height' => 'isFloat', 'width' => 'isFloat', 'depth' => 'isFloat', Trouvez ceci (ligne 278 environs) $fields['weight'] = floatval($this->weight); et ajoutez ceci $fields['height'] = floatval($this->height); $fields['width'] = floatval($this->width); $fields['depth'] = floatval($this->depth); Option:Pour rendre obligatoire ces champs, trouvez ceci: protected $fieldsRequired = array('id_tax', 'quantity', 'price', 'weight' ); et remplacer par: protected $fieldsRequired = array('id_tax', 'quantity', 'price', 'weight', 'height','width','depth' ); Maintenant vérifier que ceci fonctionne avant de poursuivre 2/ Dans la méthode getTotalWeight() (classe Cart.php) Remplacez la methode getTotalWeight() par celle-ci ligne 760 public function getTotalVolume() { if (!array_key_exists($this->id, self::$_totalVolume)) { $result = Db::getInstance()->getRow(' SELECT SUM( (p.`width` * p.`height` * p.`depth` ) * cp.`quantity`) as nb, (p.`weight` + pa.`weight`) * cp.`quantity` as kg 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 cp.`id_cart` = '.(int)($this->id)); $result2 = Db::getInstance()->getRow(' SELECT (p.`width` * p.`height` * p.`depth`) * cp.`quantity` as nb, p.`weight` * cp.`quantity` as kg 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 cp.`id_cart` = '.(int)($this->id)); //Condition TNT, si le poids Kg est plus important que le volume if ( (isset($result['nb']) || (isset($result2['nb']) ) { if ($result['kg'] > $result['nb']) $result['nb']=$result['kg']; if ($result2['kg'] > $result2['nb']) $result2['nb']=$result2['kg']; } self::$_totalVolume[$this->id] = round((float)($result['nb']) + (float)($result2['nb']), 3); //Pour TNT, le poids volumétrique utilisez plutôt la variable suivante et supprimez celle au dessus. self::$_totalVolume[$this->id] = round((float)($result['nb']) + (float)($result2['nb'])/6000, 3); } return self::$_totalVolume[$this->id]; } 4/ Créer le transporteur et ses tranchesCkarone Link to comment Share on other sites More sharing options...
Charles0130 Posted April 22, 2011 Share Posted April 22, 2011 OK, super !Est-ce que cette méthode pour 1.2.5 comprend les déclinaisons ? Link to comment Share on other sites More sharing options...
ckarone Posted April 27, 2011 Share Posted April 27, 2011 @charlycop oui mais uniquement pour l'impact du poids. Ce hack ne permet pas d'impact sur le volume . Link to comment Share on other sites More sharing options...
besky Posted May 4, 2011 Share Posted May 4, 2011 Bon, en ce qui me concerne le volume ne m’intéresse pas il me faut bel et bien le calcul des frais de port en fonction des dimensions et c'est apparemment autrement plus complexe à mettre en œuvre dans PS que le calcul du volume J'ai essayé de mettre ça en place en vain bien que je sois arrivé à calculer le prix en fonction des dimensions en modifiant la classe "getDeliveryPriceByWeight" dans le fichier "classes/Carrier.php" en rajoutant des conditions filtrant les dimensions, à chaque fois au final dans mon panier ça reviens au prix max des frais de port au poids et ce sans que je comprenne vraiment pour quelle raison.J'envisage donc de rajouter des options de dimensions dans les tranches de poids mais cela implique bien des modifications.Vive les lettres max de la poste... Link to comment Share on other sites More sharing options...
ckarone Posted May 4, 2011 Share Posted May 4, 2011 Bonjour,C'est possible en modifiant la méthode getTotalVolume() et comparer les dimensions du produit et celle d'un nouveau tableau dimension (à coder) .Ckarone Link to comment Share on other sites More sharing options...
francknico Posted August 6, 2011 Share Posted August 6, 2011 Bonjour, Je relance ce topic , car moi aussi j'ai la même problématique, Je voulais savoir ou en sont les recherches Link to comment Share on other sites More sharing options...
stephane.964 Posted October 10, 2013 Share Posted October 10, 2013 Bonjour, se sujet n'est plus actif depuis aout 2011 mais il est tjs bien d'actualité. Pour les principaux intervenant, avez vous mis en applications votre travail ? avez vous évolué avec les versions de prestashop ? Auriez vous un cahier des charges établi que vous pourriez partager afin de fournir une base de départ. Sur une 1.5.xx on a les longueurs/largeurs/profondeurs, il est donc possible de créer une classe product_weigh_volume qui correspondrait à une formule LxLxP/5000 (on aurait ainsi le poids réel article et le poids volumétrique pour les produits) ensuite quelle serait la meilleur manière de l'appliquer sur les transporteur ? - un sélect pour chaque module de transport qui récupérerait ainsi cette classe ?? - ....autre.... ? Je suis complètement perdu à ce niveau, vos renseignement me seraient biens utiles. Merci Link to comment Share on other sites More sharing options...
moka-web Posted December 13, 2013 Share Posted December 13, 2013 Bonjour, J'ai fait les adaptations dans PS1.5.6.1 pour pouvoir créer des transporteurs avec des tranches de volumes, puis j'utilise les LxlxP pour déterminer le volume du paquet. Contactez moi si des personnes sont intéressés (je précise qu'au vue de la charge de travail je demanderai une participation) MW Link to comment Share on other sites More sharing options...
Olabong Posted March 14, 2014 Share Posted March 14, 2014 Bonjour, J'ai fait les adaptations dans PS1.5.6.1 pour pouvoir créer des transporteurs avec des tranches de volumes, puis j'utilise les LxlxP pour déterminer le volume du paquet. Contactez moi si des personnes sont intéressés (je précise qu'au vue de la charge de travail je demanderai une participation) MW Bonjour Moka-Web, Je serais intéressé par ton module, je te laisse mon téléphone 06 28 95 42 46. Merci de me rappeller Cordialement. Fabien Link to comment Share on other sites More sharing options...
mig6r Posted June 29, 2015 Share Posted June 29, 2015 Bonjour, Je suis sous prestashop 1.6.11 et je cherche moi aussi à solutionner ce problème de poids volumétrique.Si quelqu'un à un code ou un module fonctionnel je suis preneur ! Link to comment Share on other sites More sharing options...
Denys06 Posted October 19, 2015 Share Posted October 19, 2015 Bonjour,Je recherche un module prenant un compte le poids volumétrique des colis. Un tel module n'existe pas, quelqu'un pourrais t-il le développer pour le proposer sur Prestashop Addons ? Je désirerais l'acheter car GRAND besoin. Link to comment Share on other sites More sharing options...
informatikadomicile Posted July 30, 2017 Share Posted July 30, 2017 Je suis a la recherche du meme type de module :livraison selon le poids volumetrique et poids réels pour prestashop 1.6 Link to comment Share on other sites More sharing options...
jma Posted May 23, 2018 Share Posted May 23, 2018 connaissez vous un module permettant de saisir sur fiche produit le VOLUME en m3 (mètre cube) et enseuite de calculer les frais de port suivant ce volume ? Merci Link to comment Share on other sites More sharing options...
creativecom21 Posted December 21, 2018 Share Posted December 21, 2018 (edited) Pour rappel, votre message était : EQUIP-SON-LIGHT DIJON 8 nov. 11:16 CET Bonjour J'ai un client qui a commandé 4 produits voir en pièces jointes les photos il a choisi Mondial Relay, car l'ensemble des colis font moins de 15kgs je suis allé porter l'ensemble des colis ( Mondial Relay a refusé de me les prendre) car pour eux, cela ne va pas ! Je voudrais savoir, comment je peux faire, pour expédier ces colis, car d'après le logiciel Boxtal et Prestashop il n'y a pas eu de rejet à l'internaute, qui a choisi ce mode transport ! Ce que je ne comprends pas, et pourquoi ? Exemple : un internaute commande le produit (en question) ADJ MAGNA TUBE PVC Dimensions Largeur 32cm x Hauteur 108 cm x 32 cm et son Poids 2.800 kg Ce colis ne pose pas de problème à Mondial Relay Si , j' assemble l'ensemble de 4 colis, il ne prenne pas cet ensemble, même divisé par deux ! ( j'arrive à comprendre) Mais pourquoi ? Lorsque l'internaute commande 4 pièces et choisi Mondial Relay, à la commande celle-ci, n'est pas refusée, par Boxtal, qui devrait orienter l'internaute vers un autre mode de transport soit proposé l'expédition en 4 colis ! Pourquoi, quand, je fais, expédier la fiche met largeur 32xm x hauteur 32cm x profondeur 32 cm pour un poids de 11,200kg il y a vraiment un problème au niveau de votre Logiciel Boxtal Prestashop Maintenant, comment je peux faire pour expédier les produits à mon client ? Est-ce que, j'expédie en 4 colis avec le même numéro de colis soit 1811051861MONRPGWVFR en faisant 4 exemplaires et noter colis 1 colis 2 colis 3 colis 4 Est-ce que, vous annulez ce bon d'expédition ? Et que dois-je faire ? Car , j'aurai le même problème avec les cas suivants ! Lorsque l'on va me commander, un ensemble de sonorisation, composé de trois colis Exemple l'ensemble en photos jointes ( la sono LD System Maui 28) le carton du milieu représente un caisson basse: les dimensions de ce colis Largeur 60 x Hauteur 55 x Profondeur 49 cm le poids 29,600 KG les deux cartons ( coté droit et coté gauche) dimensions d'un carton Largeur 20 cm x Hauteur 140 cm x Profondeur 20 cm le poids 8,250 kg Quand l'internaute va commander cet ensemble, d'après votre Logiciel Boxtal Prestashop le poids sera de 46,100kg et les di Edited December 21, 2018 by creativecom21 (see edit history) Link to comment Share on other sites More sharing options...
creativecom21 Posted December 21, 2018 Share Posted December 21, 2018 2 minutes ago, creativecom21 said: Pour rappel, votre message était : EQUIP-SON-LIGHT DIJON 8 nov. 11:16 CET Bonjour J'ai un client qui a commandé 4 produits voir en pièces jointes les photos il a choisi Mondial Relay, car l'ensemble des colis font moins de 15kgs je suis allé porter l'ensemble des colis ( Mondial Relay a refusé de me les prendre) car pour eux, cela ne va pas ! Je voudrais savoir, comment je peux faire, pour expédier ces colis, car d'après le logiciel Boxtal et Prestashop il n'y a pas eu de rejet à l'internaute, qui a choisi ce mode transport ! Ce que je ne comprends pas, et pourquoi ? Exemple : un internaute commande le produit (en question) ADJ MAGNA TUBE PVC Dimensions Largeur 32cm x Hauteur 108 cm x 32 cm et son Poids 2.800 kg Ce colis ne pose pas de problème à Mondial Relay Si , j' assemble l'ensemble de 4 colis, il ne prenne pas cet ensemble, même divisé par deux ! ( j'arrive à comprendre) Mais pourquoi ? Lorsque l'internaute commande 4 pièces et choisi Mondial Relay, à la commande celle-ci, n'est pas refusée, par Boxtal, qui devrait orienter l'internaute vers un autre mode de transport soit proposé l'expédition en 4 colis ! Pourquoi, quand, je fais, expédier la fiche met largeur 32xm x hauteur 32cm x profondeur 32 cm pour un poids de 11,200kg il y a vraiment un problème au niveau de votre Logiciel Boxtal Prestashop Maintenant, comment je peux faire pour expédier les produits à mon client ? Est-ce que, j'expédie en 4 colis avec le même numéro de colis soit 1811051861MONRPGWVFR en faisant 4 exemplaires et noter colis 1 colis 2 colis 3 colis 4 Est-ce que, vous annulez ce bon d'expédition ? Et que dois-je faire ? Car , j'aurai le même problème avec les cas suivants ! Lorsque l'on va me commander, un ensemble de sonorisation, composé de trois colis Exemple l'ensemble en photos jointes ( la sono LD System Maui 28) le carton du milieu représente un caisson basse: les dimensions de ce colis Largeur 60 x Hauteur 55 x Profondeur 49 cm le poids 29,600 KG les deux cartons ( coté droit et coté gauche) dimensions d'un carton Largeur 20 cm x Hauteur 140 cm x Profondeur 20 cm le poids 8,250 kg Quand l'internaute va commander cet ensemble, d'après votre Logiciel Boxtal Prestashop le poids sera de 46,100kg et les di 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