Broceliande Posted September 9, 2008 Share Posted September 9, 2008 Bonjour/soir à tous,Je suis devant un problème idiot, mais j'espère que les bonnes âmes ici présentes pourront me sortir de l'ombre.Je ne suis pas un pro de prestashop , mais j'ai développé un module paybox pour un ami, histoire de répondre à ses besoins (rien de folichon mais fonctionnel).Je bloque par contre sur un point :Il existe une URL transmise à la banque qui est appelée quelque soit l'issue du paiement, et cela même si le client ferme la fenêtre. C'est à partir de cet appel que je collecte les infos paiement, et je souhaite modifier le statut de la commande concernée en fonction de ces infos , et générer le mail adéquat sans avoir à réinventer la roue , puis prestashop sait faire cela très bien.Je me suis donc penché sur les fonctions statiques de la classe Hook, par exemple , comme Hook::updateOrderStatus(intval($new_order_state), intval($id_order));Seulement voilà, l'appel à cette fonction ne donne absolument rien :s .En fin de compte je réalise que dériver d'une classe dans le cadre d'un module est assez facile, meme sans connaitre prestashop sur le bout des ongles, mais qu'en ce qui me concerne je ne sais absolument pas , dans un simple script php, utiliser une des classes. faute aussi peut être de documentation ( pourtant j'ai cherché ).J'ai juste inclus include('./config/config.inc.php'); dans mon script pensant que cela suffisait, mais nenni ...D'ou ma question : Quelle est la bonne fonction à appeler pour obtenir le changement de status, la mise en historique, et la génération du mail en un appel, et que dois-je respecter dans mes includes pour être autorisé à appeler cette fonction.Merci aux âmes charitables. Eric Link to comment Share on other sites More sharing options...
Damien Metzger Posted September 9, 2008 Share Posted September 9, 2008 Bonjour,Pour faire simple : $history = new OrderHistory(); $history->id_order = 42; // l'id de votre commande $history->id_order_state = 42; // l'id de votre statut de commande $history->addWithEmail(); Et c'est fini !(notez que ce code est tapé de tête et non testé ^^)Quant à l'include... jetez un oeil au fichier init.php Link to comment Share on other sites More sharing options...
Broceliande Posted September 9, 2008 Author Share Posted September 9, 2008 Wow, ça c'est du rapide, et précis en plus.Merci beaucoup je m'y colle de suite, c'est sur que c'est bien moins hasardeux d'instancier des objets fais pour ça .Merci encore je posterais mes résultats.Eric Link to comment Share on other sites More sharing options...
Broceliande Posted September 9, 2008 Author Share Posted September 9, 2008 Comme une lettre à la poste ! Un grand merci.Bon pour résumer mon probleme et sa solution (ça pourrait servir à d'autres) :J'avais une vision obscure des modalités d'utilisation des objets et classes en dehors du contexte 'module'Mon script étant appelé hors cadre prestashop , je me faisais un monde de ça au final alors que :include('./config/config.inc.php');include('./init.php');... au debut de mon script , et je peux instancier par exemple l'objet qui m'a servit à updater le statut commande.Comme sur des roulettes , ces deux lignes d'init toutes bête m'ouvrent bien des portes que je n'avait pas encore poussé. 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