Jump to content

Module Top Relais : Fatal error (TopRelaisBean -> point_relais_id is empty)


rebolon

Recommended Posts

Après divers échange avec un utilisateur du module, je vais proposer une solution rapide au problème en attendant que le distributeur du module puisse publier une nouvelle version sur prestastore.

Description du problème :
Lors d’une commande, une fois que l’on sélectionne le point relais et que l’on clique sur suivant, prestashop ne passe pas dans le hookBackBeforePayment. La conséquence est que rien n’est inscrit en base et lors de la validation de la commande, le module ne peux retrouver ses petits.
Ce problème n’apparait pas sur tous les environnements, il ne faut faire les modifications que si cela est nécessaire.

Proposition de solution :
Dans le fichier module.tpl du module :
1) supprimer la ligne suivante (ligne 37-38) :
// Positionner le champ back à extraCarrier si possible
$(“input:radio#back”).value = ‘extraCarrier’ ;

2) écrire la ligne suivante dans la fonction initDisplayCarrier :
function initDisplayCarrier()
{
[…contenu de la fonction existant...]
$(“input:hidden[@name=back]”).val(‘extraCarrier’) ;
}

De fait, prestashop va passer dans le hookBackBeforePayment une fois que vous validerez la sélection.

Cordialement,

Link to comment
Share on other sites

Salut!

C'est Dan. Nous nous sommes eu au téléphone à propos du module que vous développé : toprelais.

je viens de corriger l'erreur car même avec ces modifications cela n'était pas suffisant! je précise sur une 1.3.2 avec template à jour!

Apparemment la modification proposé ne permettait toujours pas de remplir le champ caché back donc ce que j'ai fais tout simplement c'est dans le fichier toprelaiscarrier.php :

En fait à la ligne 352 le script initialise la variable $_POST['back'] = 'extracarrier' ;
Mais le truc c'est que dans le fichier order-carrier.tpl il y a <input type="hidden" name="back" value="{$back}" /> donc ce que j'ai fais c'est simplement mettre extracarrier dans la variable smarty back :
$smarty->assign('back', $_POST['back'] ); juste après la ligne 352.

Et donc là je n'ai plus aucun problème ! Que cela soit par chèque ou paypal... (vous ne m'aviez pas dit que le module ne fonctionnait pas avec payapl ?)

Il ne me semble pas avoir modifié autre chose...
A si mais ça c'est par gout !
Dans l'administration je ne vois pas l'intérêt de lister toutes les commandes en cours de préparation dans l'onglet BL toprelais. Pour des sites avec de nombreuses commandes une liste sans pouvoir différencier mieux que cela n'a aucun intérêt donc pour moi il vaut mieux mettre INNER JOIN plutôt que LEFT JOIN pour la jointure avec la table _orders_delivery_toprelais. Parce que toprelais n'est pas le seul transporteur à être utiliser sur une boutique.

Par contre avec ma modification (ou peut-être c'était censé fonctionner comme cela de base) j'ai dans l'affichage de la commande dans le back office l'encart toprelais même si le système toprelais n'a pas été choisi. Bon il est vide mais ça ne me satisfait pas et mes clients n'ont plus je pense donc du coup j'ai aussi modifié le fichier TopRelaisTools.php en rajoutant un test sur la valeur de l'id toprelais
ligne 311 après $topRelais = TopRelaisBean::getByOrderId( $orderId ) ;
if($topRelais->point_relais_id>0){

et bien sûr il faut fermer le test à la ligne 325 environ.

Voilà.
En espérant que cela pourra vous aider pour corriger votre module ou le faire évoluer...

Cordialement.
Dan.

Link to comment
Share on other sites

Merci pour l'info,
pour le listing des commandes, c'était déjà fait pour la futur version. C'était un vrai oubli de ma part.
pour la variable smarty, bizarrement ça ne fonctionnait pas sur mes serveurs, du coup j'avais mis les 2 solutions : le post et le smarty->assign
pour paypal, on a jamais testé, c'était donc une inconnue. Tant mieux si ça fonctionne.
pour l'affichage du détail de la commande, c'était encore un oubli de ma part, et c'est corrigé dans la futur version.

Encore merci

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