Jump to content

Problème prestashop 1.5 et module Socolissimo


ladk

Recommended Posts

Bonjour,

 

C'est mon premier post sur ce forum mais là je suis au bout. Cela fait maintenant quasiment 48h non stop que j'essaye de faire une migration d'un site 1.3 en 1.5.

 

Je passe sur les détails pour finalement arriver à faire le plus gros de la migration. Ma situation aujourd'hui : j'ai un site en version 1.5.0.17 (j'ai laissé tombé la version 1.5.1 qui est d'une lenteur incroyable), avec la dernière mise à jour du module SoColissimo 2.6.3 et je suis incapable de les faire fonctionner ensemble.

 

Sur ce module nous avons deux modes d'exécutions en mode fenêtré (Fancy) ou non.

 

En mode Fancy, j'accède à la sélection de l'adresse et tout ce qui va bien mais lors de la validation je reviens à la page de sélection du transporteur sans pouvoir passer à la validation même de ma commande. En mode non Fancy, une fois le transporteur "So'Colissimo" sélectionné, je reviens sur mon site avec le message d'erreur "Missing signature".

 

Bien entendu j'ai fait beaucoup de recherche sur le forum, j'ai bien vu ce type de problème mais sur des version antérieur à la version 1.5 de prestashop, et des versions antérieures du module 2.6.3.

 

Malgré cela, j'ai essayé de mettre en place les différentes solutions proposées, notemment mettre en place une version 2.0 du module qui semblait résoudre le problème pour certains mais ils étaient en version 1.4.x de prestashop.

 

Je passe sur le fait que la poste annonce l'arrivée de sa nouvelle version côté serveur (fonctionnant en mode frame), que celle-ci est déjà disponible mais que comme l'autre j'ai les mêmes résultat. Pour passer de l'une à l'autre version je change juste les adresses de redirection dans le paramétrage du module (url de la version frame : https://ws.colissimo...me/storeCall.do, version sans frame c'est la même chose mais vous enlevez "-frame").

 

J'ai bien sur mis le nez dans le code pour voir d'où venait cette erreur "Missing signature", j'ai bien vu une fonction qui permettait de la générer (la signature) mais je n'ai pas l'impression que le résultat soit mis dans l'url de redirection. J'ai constaté la même chose sur l'ancien module qui fonctionne sur ma version 1.3 de presta (version 1.6.3). Donc voilà c'est bien oscure tout cela.

 

Visiblement je ne suis pas le seul dans ce cas là... Beaucoup laisse tomber So'Colissimo, ce qui pour moi est inenvisageable. Il me faut donc une solution alors je cherche... Cela repousse sans cesse le passage en prod de la v1.5.

 

Si quelqu'un de la team de presta passe par là je suis preneur de ses conseils avisés, je suis prenneur de tous les conseils avisés.

 

Merci pour votre aide.

Link to comment
Share on other sites

Je continue mes recherches et j'ai trouvé quelque chose concernant l'erreur "Missing signature" and mode Fancy à off.

 

Dans le formulaire où nous sont présentés les différents transporteurs, je confirme bien qu'il manque le champ hidden "signature" ! Tous les autres sont bien présents mais pas celui-ci.

 

Si quelqu'un de la team passe par là, peut-il me confirmer la chose et me dire si cela est ok ou non ?

 

En attendant j'ai modifié le fichier (dans la version 1.5.0.17 de PS et 2.6.3 du module) "socolissimo.php" qui se trouve dans le répertoire "modules\socolissimo".

 

Les modifications ont mineures puisque j'ai juste ajouté la ligne suivante :

 

$inputs['signature'] = $this->generateKey($inputs);

 

sous l'affectation de la variable $inputs, chez moi cela donne juste après la ligne 403 et avant la ligne où les variables smarty sont initialisées :

 

$this->context->smarty->assign(array(
           'select_label' => $this->l('Select delivery mode'),
...

 

Après cette modification, j'arrive à la page de socolissimo où je peux saisir mes informations. Par contre j'ai toujours le second problème (que j'ai donc en mode Fancy). A savoir une fois l'adresse saisie et que l'utilisateur valide, je retourne à ma page de sélection de transporteur ?!

 

Franchement je suis le seul comme cela ?

 

A suivre...

 

PS : la team n'hésitez pas à intervenir bien sur.

Link to comment
Share on other sites

Je continue toujours...voici mes dernières constatations... si quelqu'un passe par là et vois des informations intéressante à me communiquer je suis prenneur...

 

Ce qui semble poser problème c'est l'adresse de redirection qui est utilisé dans la phase de validation. En effet cette adresse est la suivante : http://site/index.ph...r&step=3&cgv=1.

 

Si vous faites l'essai sur un v1.5 de Prestahsop vous serez alors systématiquement redirigervers la page de sélection du transporteur et l'adresse sera alors : http://site/index.ph...r=order&step=2.

 

Je pense que c'est l'argument "cgv" qui n'est pas ou qui est mal interprété. Celui si semble passé pour simuler la coche sur les conditions générales de ventes mais visiblement, sous mon instance de prestashop, il ne le prend pas comme cela.

 

Y'a deux solutions : soit mon prestahsop est vérolé, soit aucun test n'a été fait sur ce module. J'hallucine un peu à vrai dire...

 

A suivre.

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

Et bien me revoilà à nouveau...on ne peut pas dire que cela se bouscule au portillon sur ce poste..Ok on est dimanche, c'est vrai (j'avais oublié).

 

Bon et bien nous y voilà, j'ai ENFIN un module qui fonctionne.

 

Dans mon précédent post, je me demandais si c'était mon instance qui était vérolé ou bien le module qui n'avait pas été testé...bon et bien j'ai ma réponse... suspens... c'est l'option 2.

 

Franchement cela n'a pas été testé c'est sur. Bon ok je suis sur la version 1.5.0.17 on va dire que sur la 1.5.1 c'est mieux.... Je pourrais vérifié j'ai les sources de la 1.5.1, mais bon j'ai ma dose là. On va laisser planer le doute pour sauver les apparences.

 

Alors le problème quoi c'était ?

 

Une fois la sélection de l'utilisateur effectuée on passe par le controller de commande pour la sauvegarde de celle-ci, et bien sur avant de sauvegardé on vérifie un certain nombre de choses comme par exemple :

  • est-ce que les conditions générales de ventes ont bien été cochée ?
  • est-ce qu'un transporteur a été sélectionné ?

Il a y bien sur d'autres vérifications mais ce sont ces deux là qui ont attirés mon attention. Ces contrôles se trouvent dans le fichier "OrderController.php" dans le dossier "controllers\front".

 

Bien entendu il n'est pas question de toucher à cela, on est en plein dans le Core. J'ai donc été voir du côté de la page de validation du module socolissimo "validation.php", c'est là que se trouve la redirection vers l'étape suivante de validation de commande.

 

Je trouve donc en fait de traitement de validation cette redirection les arguments passés sont :

  • step=3
  • cgv=1

Ok pour cgv, dans OrderController on test sa présence mais il manque un truc, ce truc c'est l'id du transporteur. En effet dans OrderController on attend un paramètre "id_carrier", et pas de chance on le passe pas celui-ci donc forcément on va pas plus loin.

 

Pour le passer j'utilise la variable "$so->context->cart->id_carrier" qui est initialisée quelques lignes plus haut mais j'ai alors un autre problème, si mon utilisateur sélectionne non pas une livrison à domicile mais un point relais cela ne refonctionne plus... arghh

 

Bah oui, la variable "$so->..." n'est pas toujours initialisée, en effet celle-ci n'est initialisée que si en retour de l'appel chez socolissimo nous avons 2 arguments... et si y'en a cas on fait rien... c'est bête car celui qu'on reçoit c'est justement l'id du transporteur !!

 

Allez pour les courageux qui ont lu tout cela, voici le bout de script que j'ai modifié dans le fichier "validation.php"

 

   	 // Modification -->
       if (count($TRPARAMPLUS) > 1)
       {
           $so->context->cart->id_carrier = (int)$TRPARAMPLUS[0];
           $so->context->cart->gift = (int)$TRPARAMPLUS[1];
       }
       elseif (count($TRPARAMPLUS) == 1)
           $so->context->cart->id_carrier = (int)$TRPARAMPLUS[0];
       // Modification <--

       if ((int)$so->context->cart->gift && Validate::isMessage($TRPARAMPLUS[2]))
           $so->context->cart->gift_message = strip_tags($TRPARAMPLUS[2]);

       if (!$so->context->cart->update())
           $errors_list[] = $so->l('Cart can\'t be updated. Please try again your selection');
       else
       {
           // Modification -->
           Tools::redirect($redirect.'step=3&cgv=1&id_carrier='.$so->context->cart->id_carrier);
           // Modification <--
  	 }

 

J'espère que cela pourra en aider certains car j'ai vraiment souffert pour en arrivé là, PHP n'est pas mon langage (je viens du monde dotNet), voilà pourquoi je suis étonné qu'un module comme celui-ci soit aussi buggé, bon maintenant y'a peut être une explication... je l'attends.

 

J'ai peur que cela ne soit pas terminé...j'ai viens de voir qu'il y avait un problème si j'offrais le choix entre deux transporteurs : socolissimo et un autre... arghh..c'est sur il prend la main je viens de le vérifier. C'est un truc de fou ce module...

 

A suivre...

Link to comment
Share on other sites

Salut !

 

Effectivement sur la 1.5.0.17 j'ai eu le souci du module socolissimo.

Il semble que ce bug soit corrigé en 1.5.1.. faut voir les diff au niveau order* entre les 2

 

Je viens de vérifier sur la 1.5.1, en effet il y a eu des modifications sur le contrôleur et comme par hasard sur les trucs qu'on devait recevoir en paramètre et que l'on ne recevait pas.

 

J'ai donc supprimé mes modifs dans le fichier validation.php du module socolissimo et mis en place les modifications qui ont été faite sur ordercontroller.php de la version 1.5.1 (juste celles qui portaient sur mon petit problème) et hop... ça marche.

 

Cela ne va pas me faire installer la 1.5.1 pour autant (du fait des lenteurs que j'ai constaté) mais au moins ça va dans le bon sens.

 

Merci pour l'info.

Link to comment
Share on other sites

good job.. j'ai plus la patience pour faire comme toi...

 

c'est bizarre que la 1.5.1 soit lente... on va pas en finir..

 

mais comme mentionné plus haut cela fonctionne en 1.5.1 donc la team presta doit savoir ou est le pb

 

Franchement je me fais ultra violence pour faire ce que je fais, car PHP ce n'est pas mon job (vive dotNet, je vais me faire tuer d'écrire cela ici... tant pis). Je le fais pour un ami, je lui ai conseillé presta car c'est un truc qui tourne bien mais je n'avais pas prévu de mettre les main dans le cambuis à ce point là. Cela fait un peu peur de lacher le site en prod mais bon va bien falloir y aller un jour.

Link to comment
Share on other sites

Franchement je me fais ultra violence pour faire ce que je fais, car PHP ce n'est pas mon job (vive dotNet, je vais me faire tuer d'écrire cela ici... tant pis). Je le fais pour un ami, je lui ai conseillé presta car c'est un truc qui tourne bien mais je n'avais pas prévu de mettre les main dans le cambuis à ce point là. Cela fait un peu peur de lacher le site en prod mais bon va bien falloir y aller un jour.

...

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

  • 2 weeks later...

Salut Ladk, pourrais-tu m'aider s'il te plaît. Je rencontre à peu près les mêmes problèmes. Sous un Presta 1.5.0.17 avec le module SoColissimo 2.6, j'obtiens une page 404 dans le frame de la fancybox et un code d'erreur de signature en mode normal.

J'ai essayé toutes les solutions que tu proposais mais en vain.. si tu pouvais me fournir les fichiers modifiés ou alors m'éclairer sur d'autres pistes..merci à toi.. et bravo !

Link to comment
Share on other sites

  • 3 weeks later...
  • 2 weeks later...

Bonjour

 

Aie aie, ce module n'a pas été testé, je rejoins l'avis de ladk.

Je bosse sur la v1.5.2.

 

Exemple dans socolissimo_fancybox.tpl, ligne 77 l'url n'est pas correcte, il faut mettre :

 

$('#soLink').attr('href', baseDir+'modules/socolissimo/redirect.php' + serialiseInput(soInputs))

 

Erreur aussi ligne 82, pas besoin du / :

 

url: baseDir+'modules/socolissimo/ajax.php',

 

Le bug décrit dans le 2ème post de ladk est tjrs présent.

 

Côté So Colissimo cela bug aussi, sur la page https://ws.colissimo.fr/pudo-fo-frame/storeCall.do :

Erreur 404 sur un fichier js, donc forcément bug js...

Link to comment
Share on other sites

Pareil pour moi 1.5.2, So Colissimo 2.7.2

 

- Erreur 404 en Fancybox

- Code erreur signature en désactivant la Fancy

 

Pour l'instant j'ai désactivé le module, je fonctionne en transporteur classique.

Je tcheck les posts pour voir si la situation évolue.

Link to comment
Share on other sites

  • 2 weeks later...

bonsoir,

 

j'ai le même problème, soucis de redirection après validation !

J'ai fais les modifs proposées par soju mais pas d'amélioration.

Avez vous trouvez le fin mot de l'histoire ?

j'attend un coup de fils de SocColissimo demain, peut être aurais je des explications !

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

j'ai trouvé la solution, dans le mode de SoColissimo il suffit de remplacer https par http, Chrome étant plus strict que les FF et IE il ne passait pas.

ça + la solution de Ladk et ça roule, pour info je suis en 1.5.1.17 avec la dernière version de SoColissimo

Link to comment
Share on other sites

  • 3 months later...

Bonjour

 

Aie aie, ce module n'a pas été testé, je rejoins l'avis de ladk.

Je bosse sur la v1.5.2.

 

Exemple dans socolissimo_fancybox.tpl, ligne 77 l'url n'est pas correcte, il faut mettre :

 

$('#soLink').attr('href', baseDir+'modules/socolissimo/redirect.php' + serialiseInput(soInputs))

 

Erreur aussi ligne 82, pas besoin du / :

 

url: baseDir+'modules/socolissimo/ajax.php',

 

 

Oh yes enfin ça marche !

Je suis sur une 1.5.3.1 et le problème n'a toujours pas été corrigé... obligé de se le farcir à la mano... un de plus...

Link to comment
Share on other sites

  • 3 weeks later...

Bonjour

comment il faut configurer le module So Colissimo pour nouveaux tarifs, notamment pour le tarif Livraison en Belgique et la livraison point de retrait ?

Bonjour

je recherche une solution pour offrir à mes acheteurs la possibilité de bénéficier la dernière nouveauté dans la tarification de So Colissimo depuis le 01/03/2013 - la livraison chez commerçant moins cher que à la domicile, bureau de poste au choix ou dans le point de Cytissimo.

Actuellement dans votre module le client est dirigé vers le choix de commerçant, mais le tarif est la même pour toutes les 4 options Livraison sans signature.

merci pour votre reponse si votre module sera évoluée par rapport à l'evolution des tarifs de So Colissimo. Egalement à partir de 01/04/2013 So colissimo va changer les tarifs vers la livraison en Belgique Est ce que mise en jour de votre module va prevoir ça?

Link to comment
Share on other sites

  • 3 weeks later...

Bonjour,

 

J'aimerais bien aussi savoir comment on fait pour parametrer le module Socolissimo pour pouvoir faire payer aux clients differents prix selon le choix de leurs methode de livraison.

 

J'ai cherché..cherché..cherché.. mais en vain :(

 

Est-ce qu'on peut vraiment le faire avec le module So colissimo ?

 

Ou il faut acheter le module Soliberté ?

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