RD156 Posted June 11, 2015 Share Posted June 11, 2015 Bonjour, j'ai très peu de notion dans le CMS prestashop mais j'ai déjà travailler sur des projets en PHP. Je souhaiterait lorsque la commande est validé (confirmation de Paybox ou d'un autre moyen de payement) pouvoir faire exécuter un fonction( qui envoie des informations a un autre site via Curl). Je cherche donc a savoir ou ce situe la fonction qui récupère les confirmations des payements afin d'y appeler ma fonction? Pour ma fonction doit-je crée une nouvelle class? Merci d'avance. Link to comment Share on other sites More sharing options...
Lactor Posted June 11, 2015 Share Posted June 11, 2015 Bonjour, Je ne sais pas exactement ce que vous voulez faire, mais le hook à utiliser sera hookActionPaymentConfirmation. Vous pouvez passer par un module qui s'accrochera sur ce hook et qui libèrera vos informations via cURL, je pense. Après, il faut voir de quelles informations vous avez besoin de faire passer. Créer une nouvelle class juste pour une action ne me paraît pas pertinent pour le coup, mais peut-être avez-vous certains besoins que vous n'avez pas détaillé ici. J'espère vous avoir éclairé un peu, Bonne journée, Cordialement, Lactor Link to comment Share on other sites More sharing options...
RD156 Posted June 11, 2015 Author Share Posted June 11, 2015 Merci pour ta réponse j'ai pas bien compris pour le hook ActionPaymentConfirmation, je doit le trouver est appeler ma fonction dedans? ou le crée? J'ai chercher et j'ai vue que le hook est appeler dans OrderHistory PS: Je cherche a ce qu'a chaque commande valider et payé, j'envoie des informations sur l'acheteur de la commande à un autre site. Ma fonction actuel en class: <?php // $methode = "POST" // $tabParam = tableau de donnée où la clé représente le nom de la variable. // Exemple $tabParam =array("numero_client"=>"I-12122") class requeteHTTPController { private $resultat; public function __construct($URL,$methode,$tabParam) { $keys=array_keys($tabParam); $chainePost=""; for($i=0;$i<=count($keys)-1;$i++) { if($i!=0) { $chainePost=$chainePost."&".$keys[$i]."=".$tabParam[$keys[$i]]; } else { $chainePost=$keys[$i]."=".$tabParam[$keys[$i]]; } } $ch = curl_init($URL); //set the url, number of POST vars, POST data curl_setopt($ch, CURLOPT_URL, $URL); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POST,1); curl_setopt($ch, CURLOPT_POSTFIELDS,$chainePost); curl_setopt($ch, CURLOPT_FOLLOWLOCATION ,1); curl_setopt($ch, CURLOPT_HEADER ,0); // DO NOT RETURN HTTP HEADERS curl_setopt($ch, CURLOPT_RETURNTRANSFER ,1); // RETURN THE CONTENTS OF THE CALL //execute post $resultat = curl_exec($ch); //close connection curl_close($ch); $this->resultat=$resultat; } public function getResultat() { return $this->resultat; } } ?> Merci d'avance Link to comment Share on other sites More sharing options...
Lactor Posted June 12, 2015 Share Posted June 12, 2015 Bonjour, En fait, prestashop fonctionne en MVC (Model-View-Controller), les hooks sont des points d'exécution de méthodes pour les contrôleurs, et définis dans l'init d'un module ou d'une class. Les hooks sont des points d'accroche, si vous voulez, c'est un point qui va effectuer une méthode ou plusieurs, d'une class/module ou de plusieurs. Les controllers se chargent de faire passer des données de la vue au model, c'est donc par lui que passent toutes les exécutions de méthodes qui font appel à des données utilisateurs. Dans une class, on appelle le hook de cette manière Hook::exec('nomDuHook); car on fait appel à la fonction exec de la class Hook. On appelle le hook de cette façon dans un controller front-office : $this->context->smarty->assign('THE_HOOK_TO_CALL', Module::hookExec('theHookToCall')); . Sinon, dans un module, dans le fichier de configuration/initialisation du module, on définit les hooks où le module exécutera son code, en faisant ainsi: dans la méthode install() du module, on appelle $this->registerHook('monHookAAppeler'); et ensuite on écrit la méthode correspondante au hook : public function hookMonHookAAppeler() {//some code} Pour en revenir à votre class, vous pouvez créer un module tout simple, avec un seul point d'accroche sur le hook que je vous ai donné, avec votre code de class dedans. Normalement, ce hook, ActionPaymentConfirmation existe déjà, c'est par lui que passe l'affichage du template de confirmation de commande et tout ce qui peut se passer après que le paiement ait été validé. Regardez dans la liste de "Positions" dans le menu "Modules" pour vous faire une idée des hooks disponibles sur votre boutique. C'est le hook que j'utilise pour mettre à jour des informations dans la base de données, pour ma part (: J'espère avoir été claire, n'hésitez pas à me le dire si vous ne comprenez pas quelque chose. La doc de prestashop pourra vous être utile pour voir comment le CMS fonctionne, --> http://doc.prestashop.com/pages/viewpage.action?pageId=15171588 Bonne journée, Cordialement, Lactor Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now