Philip95 Posted December 21, 2009 Share Posted December 21, 2009 Bonsoir,J'ai un soucis pour mettre en place l'expédition de ma boutique sur la version 1.2.5J'ai crée un transporteur par tranche de poids- La poste colissimo 0 à 0.499 kg- La poste colissimo 0.5 à 0.999 kg- La poste colissimo 1 à 1.999 kgJ'ai ensuite crée une zone qui ne contient que la FranceJ'ai ensuite crée une tranche de poids pour chacun des transporteurs indiqués ci-desus.Pour finir, j'ai indiqué dans l'onglet transport le tarif pour chaque transporteur/zone/tranche.Bien sûr, j'ai indiqué le poids de l'article dans le premier onglet de la fiche client et le kg est choisi comme unité.Normalement les tarifs sont :0 à 0.499 kg : 6.5 €0.5 à 0.999 kg : 7.70 €1 à 1.999 kg : 8.65 €Jusque là, pas de soucis mais lorsque je simule un achat, cela se gatte.Je selectionne 10 produits qui devraient représenter 1.5 kg, le panier m'indique 6.50 € au lieu de 7.70 € et lors de la validation du panier, tous les transporteurs sont proposés.En fait, je crois que le poids reste toujours le même et ne varie pas selon le nombre d'article. Pourtant j'ai selectionné la facturation en fonction du poids ...Est ce un bug de cette version ou c'est moi qui fait mal quelque chose.Si une bonne ame charitable pouvait m'aider, cela sera sympa ... J'ai passé ma nuit à trouver une solution sur les forums mais je n'ai pas trouvé ...Merci. Link to comment Share on other sites More sharing options...
marijon Posted December 21, 2009 Share Posted December 21, 2009 Bonjour , moi aussi j'ai aussi a peut pres le meme probleme . j'ai créé une forchette de poids . Rien ne se produit je reste toujours a 7 €18 . meme pour 0,500 lorsque j'enregistre ,c'est réussi et ensuite lorsque jefais un essai ( plus rien , ça sait pas enregistré merci de m'aider cordialement Link to comment Share on other sites More sharing options...
marijon Posted December 21, 2009 Share Posted December 21, 2009 bonsoir , j'ai vraiment du mal a m'en sortir , je vais sur l'onglet transporteur , mais ensuite je suis perdue . pouvez vous m'aider s'il vous plait , Link to comment Share on other sites More sharing options...
Philip95 Posted December 22, 2009 Author Share Posted December 22, 2009 Bonsoir,A part nous deux, personne a ce genre de problème ?Je viens de tout reinstaller et rebelotte ... toujours ce probléme. Rien n'y fais ...Mes frais d'expédition restent toujours bloqué à la première tranche ... Link to comment Share on other sites More sharing options...
mdbk Posted December 31, 2009 Share Posted December 31, 2009 Salut,Dans un 1er temps tu vas créer tes transporteurs.Tu clique sur nouveaux et tu y vas, t’inquiète pas sa mord pas. images 1Ensuite tu vas a tranche de poids ou de prix et tu remplis les champs. image 2Puis tu re-clique sur l’onglet Transport, et tu y mets tes tarifs. images 3Voilà Link to comment Share on other sites More sharing options...
Amnesie Posted January 13, 2010 Share Posted January 13, 2010 J'ai remarqué un petit problème quant au listing des transporteurs lors d'un passage de commande. Dans l'administration, j'ai choisi de désactiver mon transporteur si aucune fourchette n'est existante pour ce dernier. Mais l'explication est trop simple, en réalité, le transporteur n'est désactivé que si le poids de la commande est supérieur au maximum prévu par les fourchettes.Donc, si on a un poids de 5 kg alors que la fourchette la plus basse de notre transporteur est de 30 à 50 kg, ce dernier sera affiché avec le tarif de cette fourchette la plus basse.Après avoir vérifié les sources, j'ai trouvé que mon problème venait de la fonction Carrier::checkDeliveryPriceByWeight($id_carrier, $totalWeight, $id_zone) (dossier /classes)Voilà l'originale suivit de la version que j'ai mise à jour: static public function checkDeliveryPriceByWeight($id_carrier, $totalWeight, $id_zone) { $result = Db::getInstance()->getRow(' SELECT d.`price` FROM `'._DB_PREFIX_.'delivery` d LEFT JOIN `'._DB_PREFIX_.'range_weight` w ON d.`id_range_weight` = w.`id_range_weight` WHERE d.`id_zone` = '.intval($id_zone).' AND '.floatval($totalWeight).' <= w.`delimiter2` AND d.`id_carrier` = '.intval($id_carrier).' ORDER BY w.`delimiter1` ASC'); if (!isset($result['price'])) return false; return true; } static public function checkDeliveryPriceByWeight($id_carrier, $totalWeight, $id_zone) { $result = Db::getInstance()->getRow(' SELECT d.`price` FROM `'._DB_PREFIX_.'delivery` d LEFT JOIN `'._DB_PREFIX_.'range_weight` w ON d.`id_range_weight` = w.`id_range_weight` WHERE d.`id_zone` = '.intval($id_zone).' AND '.floatval($totalWeight).' < w.`delimiter2` AND '.floatval($totalWeight).' >= w.`delimiter1` AND d.`id_carrier` = '.intval($id_carrier).' ORDER BY w.`delimiter1` ASC'); if (!isset($result['price'])) return false; return true; } Maintenant un transporteur n'est affiché que si les conditions Link to comment Share on other sites More sharing options...
Patrick21 Posted January 13, 2010 Share Posted January 13, 2010 Bonjourtrés bonne correction amnesiepar contre à tu prévus un transporteur qui commence à 0car si tu as une cde d'un produit sans poid il n'y aura pas de transporteur de proposéPatrick Link to comment Share on other sites More sharing options...
Amnesie Posted January 13, 2010 Share Posted January 13, 2010 Bonjour,Dans mon cas, j'ai un premier transporteur qui s'occupe des tranches allant de 0 à 30kg puis un autre s'occupant des tranches de 30 à 90kg.Sauf erreur de ma part, une commande de 0kg est donc traitée par mon premier transporteur (0 >= w.'delimiter1' et 0 < w.'delimiter2' sont bien vérifiés)Pour les poids différents, l'erreur affichée est la même que si l'on n'a aucun transporteur actif. Cela permet notamment d'imposer un poids minimum d'achat.Dans mon cas, je redirige vers une demande de devis si aucun transporteur ne correspond à la tranche souhaitée. On peut facilement imaginer d'autres solutions adaptées aux besoins de chacun. Link to comment Share on other sites More sharing options...
Patrick21 Posted January 13, 2010 Share Posted January 13, 2010 Bonjouravez vous remarqué qu'il est precisé sur le poids mini "inclu" et sur le poids maxi "exclu"donc dans vos parametres il faut mettres0 à 11 à 22 à 55 à 10etc.... Link to comment Share on other sites More sharing options...
Amnesie Posted January 13, 2010 Share Posted January 13, 2010 Tout à fait, c'est bien pour cela que j'ai modifié la condition pour la borne supérieure (< au lieu de <=) et ajouté la borne inférieure (>= et non >).La version originale utilisait la borne inférieure uniquement dans le but d'ordonner les transporteurs. Elle était inclue de force car tout poids inférieur à la borne supérieure de la tranche présente et supérieur à la borne supérieure de la tranche précédente lui étaient assignés. Cette borne inférieure n'en était pas une à proprement dit, donc.Vous faites néanmoins bien de préciser ce détail qui peut ne pas paraître évident.EDIT:Pour illustrer le long paragraphe et simplifier sa compréhension, voici un exemple.Admettons les tranches suivantes:0 - 1015 - 2530 - 40Avec le code original, une commande de 13kg aurait eu des frais de transports au tarif de la tranche [15 - 25]Avec la modification, cette commande n'a pas de transporteur assigné. Link to comment Share on other sites More sharing options...
singaii Posted January 13, 2010 Share Posted January 13, 2010 Mille merci !! c'est le problème sur lequel j'étais.d'où est tiré cette fonction ? de quel fichier ? que je puisse m'empresser de tester tout ça !vraiment bravo pour le partage de ton code.j'ai hâte d'y comprendre quelque chose pour m'y mettre à mon tour Link to comment Share on other sites More sharing options...
Amnesie Posted January 14, 2010 Share Posted January 14, 2010 L'adresse du fichier à éditer est /classes/Carrier.phpHeureux que ça puisse servir à d'autres. Link to comment Share on other sites More sharing options...
Virk Posted March 28, 2010 Share Posted March 28, 2010 Merci, Amnésie !Je vais pouvoir aller me coucher :-) 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