Jump to content

Problème frais d'expédition dans le panier au changement de transporteur


Recommended Posts

Bonjour,

 

J'ai un soucis que j'arrive pas à résoudre, cela concerne le tarif frais d'expédition au changement de transporteur dans le panier.

 

Je m'explique : j'ai 2 transporteurs payants "lettre max" et "collissimo" et un gratuit "retrait en boutique". Ils sont déclarés comme cela (en premier c'est l'id)

- 34 - Lettre max de 0 à 1kg à X euros (Comportement des tranches :Désactiver le transporteur)

- 36 - Collissimo au dessus de 1kg à Y euros (Comportement des tranches : prendre la tranche la plus grande)

- 38 - Retrait en magasin (gratuit, pas d'application des frais de ports)

 

(Les id inférieurs sont des tests de transporteurs et ont soit été effacés, soit sont inactifs)

 

Lorsqu'un client ajoute des produits et que le total fait moins de 1 kg, pas de pb, dans le panier, c'est la bonne tranche avec le bon tarif. Par contre dès qu'il dépasse 1 kg, les frais de port tombent à zéro. Ce n'est que lorsqu'il passe commande que le client voit que c'était "retrait en magasin" et il doit choisir le collissimo (je précise que les frais de port offert sont à partit de 140 euros ... et qu'il n'a pas atteint cette somme)

 

Je trouve cela un peu trompeur pour le client ...

 

Cela marche bien quand je désactive le retrait en boutique.

 

Savez-vous comment faire pour avoir le tarif collissimo dans le panier quand le poids fait changer de tranche tout en gardant le choix du retrait en boutique pour la fin de la commande ? Il n'y a pas de notion d'ordre ?

 

Merci pour votre aide,

 

Vincent

Link to comment
Share on other sites

bonsoir,

 

J'ai résolu le problème en mettant un tarif payant et l'autre retrait magasin.

lettre max ou colissimo, c'est moi qui choisi suivant le poids ou l'encombrement ( j'ai aussi des problèmes d'encombrement) je prends la différence en charge. De plus je gonfle le poids des volumineux.

Si ça peux t'aider !

Cordialement

Link to comment
Share on other sites

Merci dan65 pour ta réponse,

 

Mais une fois ce problème résolu, je voulais ajouter un transporteur "colissimo expert" avec signature mais un peu plus cher avec les mêmes tranches de poids que le colissimo "classique" (c'est à dire 1 kg et au dela). Je souhaiterais que par défaut, le calcul dans le panier ce fasse en lettre max jusqu'à 1kg, puis collissimo classique une fois le kg passé. Par contre à la commande, le client laisse l'option "colissimo classique", ou opte pour l'option plus chère "colissimo expert" ou encore choisit le retrait en boutique.

 

Il me semble que je l'ai déjà vu dans une boutique.

 

Une idée sur comment faire cela ?

 

Merci,

 

Vincent

 

EDIT : je suis sur Prestashop 1.4.5.1

Link to comment
Share on other sites

Daniel,

 

J'ai désactivé le transporteur dans le "Comportement des tranches" pour tout les transporteurs, mais toujours le même problème.

 

J'avais commencé à regarder ta solution (en oubliant mon transporteur colissimo expert), mais dans ce cas comment tu fais pour gérer l'URL de suivi, car elles sont différentes dans le cas d'une lettre max et d'un colissimo...

 

Comme le retrait en boutique sera vraiment marginal dans mon cas, j'ai crée un groupe d'utilisateurs "retrait en boutique" et je l'ai coché dans la fiche transport "retrait en boutique" (et pas mis dans les autres) ... même problème, dés que je passe a plus de 1kg, mes frais d'expédition passe à zéro (et forcement si on le fait en n'étant pas identifié cela ne peut pas marcher car ce sont les transporteurs "défaut" qui sont utilisés dans ce cas, non ?)

 

J'ai pensé que c'était une question d'ID et d'ordre dans la base, mais non, car ils sont incrémentés quand on fait un changement dans une fiche transport. Je me demande comment PS sur quel critère la sélection du 2nd transporteur se fait quand on dépasse la tranche du transporteur par défaut. Le moins cher ? Le prochain dans la base ?

 

J'ai aussi pensé que cela venait du thème car il y a un module blockcart dans mon thème, mais je crois comprendre que les calculs sont dans /classes.

 

Est-ce que je ne pourrais pas faire une modif de code pour dans le calcul du panier, ne pas prendre en compte les transporteurs gratuits ? Je vois bien cela d'une manière logique car en tant qu'admin, je code un peu (perl, etc), mais je ne connais ni PHP ni la structure de Prestashop, donc je préfère éviter ...

 

Il me reste la solution de ne pas du tout afficher les frais expédition dans le panier, seulement à la commande, mais il faut faire des modifs dans le code également (il y a des threads la dessus), et puis je trouve cela pas très clean pour le client.

 

Bref, je trouve cela bizarre que le calcul dans le panier ne puisse pas se faire en lettre max jusqu'à 1kg (transporteur par défaut), puis colissimo classique une fois ce kg passé, et qu'à la commande, soit le client laisse l'option "colissimo classique", ou puisse choisir "colissimo expert" ou encore choisisse le retrait en boutique.

 

Il n'y a vraiment personne qui a déjà fait cela sur PS 1.4.5.1 ??

 

Merci,

 

Vincent

Link to comment
Share on other sites

merci de toutes ces explications. Pour le suivi avec mon ancien site, je le faisais par mail simple avec les deux options dont je supprime l’inadaptée et une copie du n° à partir de la création du pdf colissimo.

En réfléchissant bien c'est sur que le logiciel sélectionnant le moins cher le retrait au magasin devrait être prioritaire donc il doit y avoir une solution.

Bonne recherche

Daniel

Link to comment
Share on other sites

Bonjour,

 

Bon, j'ai testé sur les versions 1.4.5.1 et 1.4.6.2 fraichement installées et toujours le même problème.

 

J'ai donc modifié le code de la fonction getOrderShippingCost dans Cart.php. C'est un classe qui est en override, on peut la mettre dans /override/classes. J'ai testé sur PS 1.4.5.1 avec 3 transporteurs et un "retrait en boutique", les calcul de frais se font bien dans le panier et en fin de commande, le retrait en boutique est disponible. Je pense que cela devrait marcher sur les versions 1.4.X

 

Pour la petite explication, PS a sa liste de transporteurs dans un tableau et quand la tranche du transporteur par defaut est dépassée (et qu'il est a desactivé dans le comportement des tranches), il va en choisir un autre qui correspond à la bonne tranche. Il suffit de rajouter une condition "et que le transporteur n'est pas gratuit". Attention, il faut que le transporteur soit gratuit et non pas que sa tranche soit a zéro.

 

J'ai posté la classe ici et voici le lien histoire de ne pas voir le code dupliqué partout surtout si on doit le corriger !!

 

Les détails ici : http://www.prestasho...-carrier-issue/

 

Vincent

Link to comment
Share on other sites

  • 6 months later...

salut, merci beaucoup Vincent pour cette solution, j'ai pas mal cherché avant de trouver cette réponse.

 

Pour info je l'ai appliqué sur un presta 1.4.6.2 et ça marche nickel (j'ai comparé la fonction avec celle de presta pour être sur qu'il n'y ai pas eu de changements dessus depuis la 1.4.5.1, ça semble ok),

 

edit : la modif se répercute également bien dans le module blockcart (ajax activé), plus besoin de planquer le frais de livraison sur les pages en front. merci encore :D

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

  • 6 months later...

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...