Jump to content

Problème Désactivation Transporteurs Poids Maximum Vs Quantité Produits


Recommended Posts

Bonjour à tous,
Je rencontre un problème que je n'arrive pas résoudre sur mon site.

J’ai configurer un transporteur (GLS 1) en fonction du prix total avec un poids maximum du paquet de 15kg et un autre du même nom (GLS 2) en fonction du poids total qui prend la relève au-delà de 15.001kg. Tous deux sont sur : « désactiver le transporteur » dans le champ Comportement hors tranches et mes produits ont bien leurs poids respectifs dans le catalogue.

 

Quand je fais le teste en ajoutant un article de 1.6kg  quantité = 10 pour dépasser les 15kg, le transporteur (GLS 2) s’active bien par contre le (GLS 1) reste toujours visible. C’est très embêtant car les tarifs ne sont pas les mêmes évidemment.

 

J’ai passé la nuit dessus sans succès. J’ai testé en changeant l’unité générale, puis des produits, puis des transporteurs en gramme histoire de voir, pareil. J’ai désactivé la plupart des modules achetés du type « envoie moins cher » pour être sûr qu’il n’y ai pas de conflits, idem.

 

Le seul moyen que j’ai trouvé pour désactiver (GLS 1) et tester, c’est dans la fiche produit lui mettre un poids de 16kg au lieu de 1.6kg de prendre un seul produit donc dans le panier et là ça fonctionne ! GLS1 se désactive et GLS2 prend le relais. Bizarre non ?

En gros 1 produit dans le panier qui dépasse les 15gk ça fonctionne, 10 produits identiques ou pas dans le panier pour dépasser les 15gk ça fonctionne pas.

 

Quel est le problème d'après vous ? une idée ?

 

Merci par avance pour vos réponses.
Cordialement,

Bertrand

post-893290-0-48967100-1457087747_thumb.jpg

post-893290-0-78737200-1457087933_thumb.jpg

Link to comment
Share on other sites

Le problème est dans ton raisonnement.

 

Si GLS1 est en tranche de prix, pourquoi voudrais-tu qu'il se désactive sur un poids qui lui convient en tant que limite, c'est pas logique .

 

Autre chose les tranches SONT TOUJOURS > limite inférieure et <= limite supérieure, donc ton 15.001 doit être 15

 

Pourquoi veux tu faire 2 transporteurs ? Ajoute les tranches < 15 à ton GLS2, mets tes coûts de chacune des tranches de cette plage.

Otes-moi d'un doute, tu as bien vu que tu pouvais ajouter autant de tranche que souhaité sur un transporteur ?

 

Que cherches tu a faire exactement?

Edited by doekia (see edit history)
Link to comment
Share on other sites

Bonjour doekia,

Merci d'avoir pris le temps de me répondre.

 

Alors GLS1 est en tranche de prix avec une limite de poids maximum de 15kg et un comportement hors tranches en mode "désactiver le transporteur".

Dans ma logique il devrait au delà des 15kg se désactiver on est d'accord ou pas ?

il est configuré comme suit :

 

Plages

Sera appliquée lorsque le prix est >= € 0.000000  - €40.000000  - €80.000000

Sera appliquée lorsque le prix est <   €40.000000 - €80.000000  - €1500.000000

 

France € 9.900000 - € 6.500000 - € 3.100000

 

Poids maximum du paquet (kg) 15.000000

 

 

GLS2

Au delà des 15kg j'ai crée un GLS2 car mes tarifs sont différents avec aussi un comportement hors tranches en mode "désactiver le transporteur".

il est configuré comme suit :

 

Plages

Sera appliquée lorsque le poids est >= kg 15.000000 kg 20.000000

Sera appliquée lorsque le poids est <   kg 20.000000 kg 30.000000
 

France € 14.900000 - € 17.900000

 

Poids maximum du paquet (kg) 30.000000

 
Ce dernier s'active bien dès que le panier dépasse les 15kg mais GLS1 lui reste toujours actif alors qu'on a dépassé le poids maximum imposé de 15kg dans sa propre configuration c'est ça que je ne comprends pas. Pour moi il serait logique qu'il disparaisse de la liste des transporteurs proposés. Ou mon raisonnement pêche ?
 

Merci par avance pour vos réponses.
Cordialement,

Bertrand

Edited by zblteam (see edit history)
Link to comment
Share on other sites

Ta logique est bancale, on recommence:

 

Alors GLS1 est en tranche de prix avec une limite de poids maximum de 15kg et un comportement hors tranches en mode "désactiver le transporteur".

 

GLS1 a donc des tranches de prix, lorsque ces tranches de prix n'existent pas pour le colis il se désactive - comportement hors tranche

Quelque soit les tranches, ce transporteur a des limites poids / dimensions, ici poids 15kg - ce n'est pas une tranche c'est une limite ultime point final.

 

Tourne ça comme tu veux, convaincs t-en un transporteur par tranche de prix n'a de comportement hors tranche que sur les prix, et vice versa pour un transporteur poids.

 

Maintenant peux tu passer à la suite de la question et expliquer ce que tu cherches à faire. Ton besoin métier.

Link to comment
Share on other sites

Doekia : GLS1 a donc des tranches de prix, lorsque ces tranches de prix n'existent pas pour le colis il se désactive - comportement hors tranche

Oui ok avec ça Doekia, mais qu’en est-il s’il dépasse les 15 kg ? à quoi sert alors le champ poids maximum s’il ne le prend pas en compte dans la désactivation ?

Le comportement est quand même bizarre surtout avec le test que je décris plus bas.

 

Je ne suis pas développeur, je suis graphiste 3D, j’aide juste ma nana sur son site marchand (vente de produits bio).

 

On a 3 transporteurs principaux : Colissimo, GLS et Relais colis. Les 3 sont configurés de la même manière. C’est-à-dire, en fonction du prix total avec un poids maximum du paquet de 15kg et un comportement hors tranches sur « désactiver le transporteur »

 

On a fait ce choix là car au-delà des 15kg Colissimo est trop cher, GLS aussi et Relais colis de toute façon ne prends pas au-dessus.

 

Donc on a créé un deuxième transporteur GLS pour gérer les envoie au-delà des 15gk (GLS2) et avoir des prix plus attractifs pour le client mais surtout pour ne pas vendre à perte les produits. D’autant plus qu’il n’est pas normal qu'un client puisse toujours sélectionner GLS1 à 3.10€ avec une commande de 30kg.

 

Cependant quand je fais le test avec 1 produit de 5.2kg x3 dans le panier afin de dépasser les 15kg, Relais colis se désactive bien, GLS2 s’active bien aussi mais Colissimo et GLS1 reste actif.

 

Par contre ! quand je modifie le poids de ce même produit dans sa fiche en mettant 16kg au lieu de 5.2kg que je l’ajoute qu’une seule fois dans mon panier donc j’ai un paquet de 16kg et peu importe la tanche de prix puisqu’il vaut 19.90€, là je vois bien se désactiver Colissimo, GLS1 et Relais Colis. GLS2 lui s’active et c’est tout ce que l’on veut.

 

Notre conclusion pour le moment c’est que dans presta il y a truc qui match pas, soit dans notre config soit le module presta lui-même.

Link to comment
Share on other sites

Notre conclusion pour le moment c’est que dans presta il y a truc qui match pas, soit dans notre config soit le module presta lui-même.

Et pour le moment, tu es en quelle version exacte de PrestaShop ?

Parce que je viens de m'obliger à vérifier les codes des 1.6

 

prestashop_1.6.0.5/classes/Carrier.php: || ($carrier->max_weight > 0 && $carrier->max_weight < $product->weight))

prestashop_1.6.0.6/classes/Carrier.php: || ($carrier->max_weight > 0 && $carrier->max_weight < $product->weight))

prestashop_1.6.0.8/classes/Carrier.php: || ($carrier->max_weight > 0 && $carrier->max_weight < $product->weight))

prestashop_1.6.0.9/classes/Carrier.php: || ($carrier->max_weight > 0 && $carrier->max_weight < $product->weight))

prestashop_1.6.0.11/classes/Carrier.php: || ($carrier->max_weight > 0 && $carrier->max_weight < $total_weight))

prestashop_1.6.0.12/classes/Carrier.php: || ($carrier->max_weight > 0 && $carrier->max_weight < $product->weight * $cart_quantity))

prestashop_1.6.0.13/classes/Carrier.php: || ($carrier->max_weight > 0 && $carrier->max_weight < $product->weight * $cart_quantity))

prestashop_1.6.0.14/classes/Carrier.php: || ($carrier->max_weight > 0 && $carrier->max_weight < $product->weight * $cart_quantity))

prestashop_1.6.1.0/classes/Carrier.php: if ($carrier->max_weight > 0 && $carrier->max_weight < $product->weight * $cart_quantity)

prestashop_1.6.1.1/classes/Carrier.php: if ($carrier->max_weight > 0 && $carrier->max_weight < $product->weight * $cart_quantity) {

prestashop_1.6.1.2/classes/Carrier.php: if ($carrier->max_weight > 0 && ($carrier->max_weight < $product->weight * $cart_quantity || $carrier->max_weight < $cart_weight)) {

prestashop_1.6.1.3/classes/Carrier.php: if ($carrier->max_weight > 0 && ($carrier->max_weight < $product->weight * $cart_quantity || $carrier->max_weight < $cart_weight)) {

prestashop_1.6.1.4/classes/Carrier.php: if ($carrier->max_weight > 0 && ($carrier->max_weight < $product->weight * $cart_quantity || $carrier->max_weight < $cart_weight)) {

 

 

En vert les versions qui marchent, en rouge celle qui ne marchent pas

  • Like 1
Link to comment
Share on other sites

Bon entre temps j'ai pas pu résister a modifier le fichier Carrier.php

Je l'ai remplacé avec la version 1.6.0.11 que j'avais en stock et qui se rapproche le plus avec la version 1.6.0.9 et ça marche ! :)

j'ai enfin mes transporteurs Colissimo et GLS1 qui disparaissent au delà des 15kg !! Incroyable !

Bon après je ne sais pas si c'est conseillé de remplacer seulement le Carrier.php ou plutôt de faire une grosse mise à jour vers la 1.6.1.4 qui a un code vraiment repensé on dirait. En tout cas dans le Carrier.php il y a de gros changements.

Qu'en penses-tu ?

Edited by zblteam (see edit history)
Link to comment
Share on other sites

Tout remplacer j'aurais pas osé.

Remettre juste la partie entre les lignes 1382 - 1418 de Carrier.php de la version 1.6.1.4 suffit pour ce problème précis.

 

En tout cas c'est sûrement une des rares choses qui marche de l’infâme version 1.6.0.11

Edited by doekia (see edit history)
  • Like 1
Link to comment
Share on other sites

Quand je compare le code de la version 1.6.0.11 avec celui de la 1.6.0.9 il y a pas grande différence pour que cela fonctionne. Parc contre la version 1.6.1.4 le code et bien plus fat je trouve justement entre les lignes que tu as cité. moi j'aurai pas osé. Trop de variables différentes :)

 

Mais bon au final il vaut mieux quand même que je fasse une mise à jour complète de Presta je suppose.

 

En tout cas ma logique n'était pas si bancale que ça :D

Merci beaucoup pour ton aide Doekia.

Problème résolu... (jusqu’au prochain)

Edited by zblteam (see edit history)
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...