Jump to content

Annuler la redirection d'order-confirmation.php


Recommended Posts

Bonjour à tous,

 

Voilà j'aimerais tagger la page order-confirmation.php afin d'avoir un suivi de mes ventes.

 

Plusieurs choses que je ne comprend pas :

- GA ne vois la page order-confirmation.php que de "temps en temps"...

- Par défaut la page order-confirmation.php (via son Controller) renvois systématiquement vers la page history.php

 

Comment peut-on afficher cette page order-confirmation.php aux internautes venant de payer leur commande ?

Peux-être en modifiant le controller afin d'annuler la redirection vers history.php ?

 

J'ai déjà essayer de supprimer la redirection mais cela me fait une page d'erreur lors de l'appel de la page order-confirmation.php

 

Le code du controller OrderConfirmationController.php que je pense qu'il faut modifier

/* check if the cart has been made by a Guest customer, for redirect link */
 if (Cart::isGuestCartByCartId($this->id_cart))
  $redirectLink = 'guest-tracking.php';
 else
  $redirectLink = 'history.php';

 

Un autre bout de code qui se trouve sur le controller GuestTrackingController.php qui renvois vesr la page history.php

public function preProcess()
{
 parent::preProcess();

 if (self::$cookie->isLogged())
  Tools::redirect('history.php');
}

 

Je vous met également la page d'erreur qui s'affiche quand je modifie le controller OrderConfirmationController.php ...

 

Si une âme charitable peut m'aider sur ce point se serait génial !

 

Merci à vous

 

Bonne fin de journée

LogS

post-242728-0-67755400-1330453236_thumb.png

  • Like 1
Link to comment
Share on other sites

  • 2 months later...

Bonjour,

Je suis confronté à un problème peut-être similaire. Dans le BO de Paypal Intégral Evolution, j'ai indiqué la page order-confirmation.php comme URL de retour automatique, mais il faut systématiquement que l'internaute rafraichisse la page pour voir sa commande, sinon il a un message qui indique qu'il n'a pas de commande en cours (malgré le warning qui s'affiche aussi, disant qu'il faut rafraichir la page ... ça ne fait pas très pro).

Tu remercies l'équipe Prestashop Addon de son aide mais tu ne dis pas ce qui a été fait ... est-ce que tu peux en dire un peu plus ?

Merci !

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...

Un grand merci à l'équipe PrestaShop Addon pour m'avoir aidé pour la correction de ce bug !!

Pouvez vous me donner une idée pour ce problème de redirection automatique vers history.php svp

 

EDIT:J'ai trouvé une solution :mellow:

 

Ckarone

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

  • 5 months later...
  • 2 months later...

Bonjour à tous,

 

J'ai le même problème de redirection après le paiement.

Pour ma part, via le module Paybox, j'ai bien compris (enfin..., dites moi si je dis des bétises...) qu'il faut mettre pour le paiement effectué l'URL vers la page "order-confirmation.php".

Mais, effectivement, j'ai le souci de redirection vers la page "history.php", très problématique.

Pour info : j'utilise la version 1.5 de prestashop.

 

Pouvez-vous m'éclairer et me dire ce qu'il faut faire.

 

Merci de votre aide très précieuse.

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

  • 5 months later...
  • 1 month later...
  • 10 months later...
  • 2 weeks later...

Hello,

 

Je peux me tromper mais je pense que y a pas de solution unique à ce problème.

 

D'après moi, cela dépend surtout des modules de paiement utilisés...

 

La redirection vers history.php ne survient théoriquement que lorsqu'un paramètre est manquant au retour du paiement... et cela peut provenir soit d'un module mal développé, soit d'un souci de synchronisation (le retour vers la page de confirmation survient avant que la commande n'ait eu le temps d'être créée dans le BO)... soit les 2 mon général :lol:

 

Bref, pas si simple à mon avis...

Link to comment
Share on other sites

En effet, j'ai rencontré ce problème sur HiPay, et ça a été une véritable galère car c'est le cas de figure où non seulement le module est mal développé, y a un problème de synchro... et y a pas de mode sandbox pour faire des tests... la totale quoi :blink:

 

Il faut que je revisualise mes modifs et que je remette tout ça au clair parce que y a pas mal de modifications à faire à différents endroits pour que ça fonctionne nickel.

 

J'essayerai de regarder à ça ce soir et je reviens vers toi...

 

a+

Link to comment
Share on other sites

Entendu. Pour l'instant j'ai juste changé l'url de order-confirmation dans hipay.php et donc au lieu d'une 404 j'ai la page historique, ce n'est pas dramatique, mais pas d'email de confirmation de commande - c'est ça mon principal souci.

 

Voici la diff de deux url

 

Première avec HiPay et pas de confirmation par email.

http://www.monsite.dom/confirmation-commande?id_cart=17&id_module=70&secure_key=dea1033b2fad6639b9b6456069f61c95

La deuxième par chéque avec confirmation par email.

http://www.monsite.dom/confirmation-commande?id_cart=23&id_module=30&id_order=14&key=dea1033b2fad6633b9b6556069f61c95
Edited by dwpro (see edit history)
Link to comment
Share on other sites

Euh, là ton problème dévie du sujet initial :blink:

 

Le bug dont il est question ici et pour lequel j'ai en effet bidouillé un correctif sur Hipay, c'est que les clients étaient redirigés vers l'historique au lieu de la page de confirmation.

 

Toi, apparemment, tu es (étais) redirigé vers une 404 ???

 

Ca j'ai pas eu, mais en même temps je suis toujours avec la version 1.6.3 du module sur un PS 1.5.6.2 (la mise à jour Hipay 1.6.4 ne m'est d'ailleurs pas proposée).

 

Pour ton second problème, tu parles bien du mail de confirmation de commande envoyé par ta boutique? Pas du mail de confirmation de paiement Hipay...

Si c'est bien ça, à priori ça n'a rien à voir avec Hipay ni avec le module de paiement...

Link to comment
Share on other sites

Oui, une 404, mais en supprimant l'extension php de order-confirmation pour l'url, je me retrouve vers l'historique, donc le problème initial du sujet ci.

 

L'email de confirmation de commande que le client reçoit, avec les détails, etc. lorsqu’on termine le paiement, donc le module ne confirme pas l'email, mais la commande est bien là et le paiement bien effectué.

Link to comment
Share on other sites

Bonjour,

 

Ma solution concerne un module perso pour lequel j'avais un montant pas corectement formaté pour une version 1.4.

 

Votre problème/erreur est causé par un paramètre manquant retourné lors de l'appel de /classes/PayementModules.php qui "transforme" un panier en une commande. Il retour des erreurs type 404 ou redirection vers history si ce que le modules de paiment lui retourne n'est pas correct/complet.

 

Si cela peu vous aider.

 

Edit: Ne cherchez pas à annuler la redirection mais cherchez le paramêtre manquant qui provoque cette redirection sinon vous allez au devant d'un tas de modifications pour faire fonctionner un module défaillant.

 

Ckarone

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

Ok, pour le premier point cela provient à mon avis de la version 1.6 de PS qui sauf erreur passe maintenant exclusivement par le contrôleur pour la gestion des pages.

 

J'imagine donc que la version 1.6.4 de Hipay a été corrigée en ce sens, mais mal corrigée si en effet ce .php est resté dans l'url.

 

L'url (setUrlOk) que tu as modifiée est-donc bien maintenant du type "index.php?controller=order-confirmation&id_cart=..." ?

 

Dans cette même url tu peux déjà remplacer le paramètre "&secure_key=" par "&key=".

 

A mon avis ça ne résoudra encore rien mais ça fait partie du correctif.

 

Pour ton problème d'email, sur quel statut se met ta commande dans le BO après le paiement?

Link to comment
Share on other sites

Salut ckarone, je ne suis pas développeur, mais je pense qu'il manque l'id de la commande comme paramètre..., car le paiement et la commande s'effectuent normalement, donc le statut de la commande est bien en "paiement accepté", tout se déroule normalement, il y a bien une référence unique par commande, etc.

 

Pour répondre à Zebx, oui l'url c'est celle-là, sauf que réécriture activée. D'ailleurs, je vais effectuer un test sans rewrite... et sans secure_key, meme j'y crois pas trop.

 

 

En attendant un fix de la part de presta et hipay, je pensai à un bouton Actualiser ou header refresh automatique dans la page Historique vers laquelle le client est amené, ainsi il verra sa commande. Qu'est-ce que vous en pensez de ce bidouillage ?

 

Ou bien il est possible d'effectuer un cron job qui renvoi le mail après commande censée être envoyé ?

Link to comment
Share on other sites

L'id_order est en effet un autre paramètre qui manque et qui est responsable de la redirection vers history, mais à priori je ne vois toujours pas de lien avec l'envoi du mail.

 

Je pense qu'on va déjà essayer de résoudre ton problème de redirection, ensuite on verra pour le mail... et si c'était lié, ben avec un peu de chance on aura fait d'une pierre 2 coups ;)

 

 

Donc dans hipay.php, ton url de retour doit ressembler à ceci à présent :

		$paymentParams->setUrlOk(Tools::getShopDomainSsl(true).__PS_BASE_URI__.'index.php?controller=order-confirmation&id_cart='.(int)$cart->id.'&id_module='.(int)$this->id.'&key='.$customer->secure_key); //zebx

Maintenant pour l'id_order c'est un problème de synchronisation, donc perso j'ai ajouté un délai dans OrderConfirmationController.php afin d'attendre que la commande soit bien créée et donc que son id existe.

 

Dans la fonction init(), tu remplaces ceci :

			$this->id_order = Order::getOrderByCartId((int)($this->id_cart));

Par ceci :

			$this->id_order = Order::getOrderByCartId((int)($this->id_cart));
			$i = 1;
			while (!$this->id_order && $i <= 10) {
				sleep(1);
				$this->id_order = Order::getOrderByCartId((int)($this->id_cart));
				$i++;
			}

Et dans initContent(), tu ajoutes au tout début ceci :

			$test_id_order = Order::getOrderByCartId((int)($this->id_cart));
			$i = 1;
			while (!$test_id_order && $i <= 10) {
				sleep(1);
				$test_id_order = Order::getOrderByCartId((int)($this->id_cart));
				$i++;
			}

Tu peux déjà tester ça et nous revenir avec le résultat.

 

Normalement la redirection vers history sera stoppée et tu arriveras sur la page de confirmation... mais cette page sera pour l'instant quasi vide (juste un lien vers l'historique et l'accueil) car le module hipay n'a aucun template prévu pour le retour de paiement. On verra ça après...

 

Petite question subsidiaire, ton site sera uniquement en français ou tu as prévu des autres langues ?

Link to comment
Share on other sites

Mmm, page blanche, genre toute blanche ? Plus de menu, plus rien ?

 

Ca c'est pas normal, il doit y avoir une erreur dans le code dans ce cas... vérifie bien tes copiés-collés et notamment les accolades...

Link to comment
Share on other sites

Screen 1 :

 

Pour setUrlOk, reprends exactement le format que je t'ai indiqué plus haut avec "index.php?controller=order-confirmation&id_cart..."

 

N'oublie pas de changer aussi le secure_key en key comme indiqué plus haut aussi.

 

Screen 2 :

 

Remonte l'accolade ligne 97 à la ligne 88, juste en-dessous de "public"

 

Screen 3 : ok

Link to comment
Share on other sites


Il y a 1 erreur

 

[Hipay] Xsd schema ERROR : xmlParseEntityRef: no name(Line 26 - Column 82 - Code 68)xmlParseEntityRef: no name(Line 27 - Column 83 - Code 68)The document has no document element.(Line 0 - Column 0 - Code 1872) ( 1.0823e1a2cab2de54631117a3eb36539b3errorXsd schema ERROR : xmlParseEntityRef: no name(Line 26 - Column 82 - Code 68)xmlParseEntityRef: no name(Line 27 - Column 83 - Code 68)The document has no document element.(Line 0 - Column 0 - Code 1872) )

 

 

Link to comment
Share on other sites

$paymentParams->setUrlNok(Tools::getShopDomainSsl(true).__PS_BASE_URI__.'index.php?controller=order-confirmation?id_cart='.(int)$cart->id.'&id_module='.(int)$this->id.'&key='.$customer->secure_key);

ma page dans le BO pour order-confirmation est confirmation-commande dans l'url simplifié.

Link to comment
Share on other sites

Exactement la même URL

 

 

Je ne sais pas quel module ou fichier a été en cause, mais j'ai remarqué que les emails sont envoyés désormais, pour moi c'est le principal pour l'instant, donc je vais laisser tel quel avec la page historique ce n'est pas très grave.

 

 

 

Pour un module officiel et mis en avant je trouve que ça traine niveau compatibilité, sans oublier qu'il s'agit d'un moyen de paiement, donc censé être une priorité. Enfin, bref...,

 

 

 

 

 

Merci pour ton aide.  :)

Link to comment
Share on other sites

Normalement avec les modifs citées plus haut tu ne devrais plus tomber sur la page history mais sur la page de confirmation (vierge cependant puisqu'on a pas été au bout des modifs).

 

L'inconvénient majeur de ne pas arriver sur la page de confirmation c'est que certains modules qui devraient être exécutés à la fin d'une commande réussie ne le seront pas. Je pense notamment à Google Analytics qui ne pourra donc pas tracker tes conversions.

 

Sinon, ben ouais, je suis entièrement d'accord avec toi, ce devrait être une priorité... comme tant d'autres choses un peu bancales d'ailleurs :lol:

Link to comment
Share on other sites

  • 3 weeks later...

Bonjour,

 

Les URL de redirections pour PS1.6 ont été corrigées mais est-ce que la redirection après paiement renvoie désormais bien sur une page de confirmation de paiement (et non sur la page history comme c'était le cas jusqu'à présent y compris en 1.5) ?

 

D'après ce que je vois sur Github ça a l'air d'avoir aussi été corrigé mais comme il y avait aussi un problème de synchro, je préfère être sûr que ça fonctionne totalement avant de me lancer.

 

Bref, si vous me confirmez que ça marche tip-top sous PS1.5.6.2, je mettrai volontiers mon module à jour... sinon bah je garde mes modifs perso qui vont bien :)

Link to comment
Share on other sites

  • 4 years later...

Bonjour je déterre ce topic, j'ai exactement de le même problème de redircetion sur le modèle Hipay, les client sons aléatoirement redirigés vers la page history.tpl, mais certins paiements sont tombés vers order-confirmation, c'est encore un problème de synchro je pense,  j'ai suivi la modification de Zebx, mais cela ne marche pas, je suis sur ps1.6.17 avec module Hipay 1.6.18.

Avez vous une solution à jour

Merci et cordialement

Link to comment
Share on other sites

  • 2 years later...

Petit Up car j'avais un problème similaire pour Prestashop 1.7.6.7 avec HiPay Professional 1.0.8. Cela aidera peut-être quelqu'un.

Après vérification du paiement, un chargement AJAX dégueu de Hipay s'affiche et finalement j'étais redirigé sur la page d'accueil pour pratiquement tous les paiements. Pas pratique pour les codes de conversion genre Google Analytics.

J'ai repris et adapté légèrement le code de Zebx pour le problème de synchronisation:

Dans /modules/hipay_professional/controllers/front/confirmation.php, remplacer:

$order_id = Order::getOrderByCartId((int)$cart->id);

Par:

$order_id = Order::getOrderByCartId((int)$cart->id);

$i = 1;
while (!$order_id && $i <= 10) {
	sleep(1);
	$order_id = Order::getOrderByCartId((int)$cart->id);
	$i++;
}

Comme ca on évite la fonction waitForConfirmation avec l'icone dégueu de Hipay, la fonction displayConfirmation s'applique et redirige correctement sur la page de confirmation.

 

  • Like 1
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...