Jump to content

history.addWithemail()


Broceliande

Recommended Posts

Bonjour à tous,
Me revoilà avec mes gros sabots de prestashop's learner & newbie.
cf un post un peu plus bas j'ai donc eu à utiliser la fonction sus-citée history.addWithemail().
Seulement voilà , cette fonction a bien l'effet désiré au niveau status , mais ne génère pas l'envoi du mail associé comme son nom l'indique.

Je ne sais absolument pas pourquoi aucun mail ne part , mais j'ai regardé un tout petit peu la classe et il y a des points qui m'intriguent :
- la déclaration de la fonction est ainsi faite :

function addWithemail($autodate = true, $templateVars = false)



Ce qui me gène le plus est l'argument $autodate = true , non parce qu'il est fixé ainsi et donc pas modifiable , mais plutot parce que l'appel de cette methode change bien le statut de la commande , mais avec 00/00/0000 - 00:00:00 en guise de date.
Dans tous les cas pas de mail envoyé lorsque le script arrive à :

            if (Validate::isLoadedObject($order))
               Mail::Send(intval($order->id_lang), $result['template'], $topic, $data, $result['email'], $result['firstname'].' '.$result['lastname']);



Je vais chercher de mon coté bien sur en traçant un peu plus la fonction , mais je serais curieux de savoir si c'est un bug de cette fonction, ou une mauvaise utilisation.

Merci de vos réponses,
Eric

Link to comment
Share on other sites

Juste un petit up , non pour faire du hammering , mais parce que je me demande toujours si il y a un truc qui m'échappe, ou si cette histoire d' $autodate=true ne comporte pas un bug.
Bon si un dev passe par là , peut etre qu'un simple test pourrait confirmer soit ma maladresse , soit un test.
Comme je dois vraiment obtenir un résultat , je vais fouiller plus en détail et tracer un peu plus la fonction , qui à debugguer un prestashop local instruction par instruction. Si c'est fructueux tant mieux je reposterais direct ici mes résultats.
Bonne journée à tous,
Eric

Link to comment
Share on other sites

  • 2 weeks later...

En fait je me réponds à moi même, qui sait un jour ça peut servir , et puis ça me semble logique de le faire.

J'utilise cette fonction de la manière suivante , suite aux conseils obtenus ici-même ;)
C'est un script appelé sytématiquement par la banque apres une transaction carte bleue type paybox , valide ou pas, et que le client retourne ou non a la boutique:

.......
// bon la je récupère les variables get en tous genres fournies par la banque ...
... 
// puis apres j'enregistre les données de la transaction dans une table a part...
...
// enfin je valide le paiement
if($erreur==0 && $auto>0)
{
   $history = new OrderHistory();
   $history->id_order = $maref; // l'id  commande
   $history->id_order_state = 2; // Paiement accepté
   $history->addWithemail(); 
}



ça ne marche pas

En fait deux choses faisaient que cela ne fonctionnait pas :

- pour une raison que j'ignore , et malgré le fait que j'utilise un identifiant/pass mysql dédié + une table dédiée, la classe OrderHistory de prestashop n'aime guère être appelée derrière ma propre requête (même après un db close et un free result) du coup la commande est bien validée , mais la date de validation est 0000-00-00 00:00:00

- Le mail ne part pas , car il manque une donnée semble-t-il vitale pour l'envoi : le champ id_employee est à 0

du coup je fais ça :

.......
// bon la je récupère les variables get en tous genres fournies par la banque ...
... 
// enfin je valide le paiement
if($erreur==0 && $auto>0)
{
   $history = new OrderHistory();
   $history->id_order = $maref; // l'id  commande
   $history->id_order_state = 2; // Paiement accepté
   $history->id_employee= 1; // un compte employee valide chez moi
   $history->addWithemail(); 
}
// j'enregistre les données de la transaction... <= seulement apres l'appel à addWithemail()
...



Et ça roule nickel

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