IchabOd Posted April 20, 2012 Share Posted April 20, 2012 Bonjour, Y a t-il un moyen d'avoir dans le hook updateProduct l'ancien prix (avant modif donc) ? S'il faut faire des modifs, pouvez-vous m'expliquer comment marche l'update d'un produit, je ne comprends pas assez bien la mécanique. Pour le moment j'ai créé un champ hidden dans l'onglet AdminProduct : <input name="oldprice" type="hidden" value="'.$oldprice = $this->getFieldValue($obj, 'price').'" /> Puis dans la fonction submitAddProduct, ligne 1177 j'ai rajouté : $object-> oldprice = Tools::getValue('oldprice'); juste avant : Hook::updateProduct($object); Pour affecter 'oldprice' à l'objet produit en cours et donc au hook updateProduct. J'essaye ensuite de faire en sorte d'alerter les clients lorsque le prix a baissé. Ensuite dans mon module, je crée une fonction du type : public function hookUpdateProduct($params) { if ($params['product']->oldprice > $params['product']->price) $this->sendCustomerAlert((int)$params['product']->id, 0); } (code recopié en partie à partir du module mailalerts) Pouvez-vous m'aider ? Merci Link to comment Share on other sites More sharing options...
IchabOd Posted April 21, 2012 Author Share Posted April 21, 2012 je me permets de faire un up au cas où un dev sympa voie ce sujet Link to comment Share on other sites More sharing options...
IchabOd Posted April 22, 2012 Author Share Posted April 22, 2012 up ! Link to comment Share on other sites More sharing options...
Broceliande Posted April 23, 2012 Share Posted April 23, 2012 Je me pose une question : Puisque tu utilises un champ pour stocker ta valeur oldprice, pourquoi ne pas tenter de la récupérer directement depuis le hook du module ? A priori , s'il n'y a pas de redirection avant l'appel au hook updateProduct , tu devrais avoir conservé les données get/post du formulaire , tu as testé ? if( (float)Tools::getValue('oldprice') < ..... ) Link to comment Share on other sites More sharing options...
IchabOd Posted April 23, 2012 Author Share Posted April 23, 2012 Disons que pour le moment j'essaye de pouvoir envoyer des mails (je suis en local, sous Zend server, mon FAI est free et malgré tous les tests de config de php.ini ou de smtp dans B.O => Préférences => email), je n'arrive pas à envoyer de mail. Par la fonction mail() de php j'ai un message comme quoi le message a été envoyé, mais je ne reçois rien. Via le paramétrage SMTP, ça tourne en boucle et rien ne se passe. J'ai essayé les ports 25, 465 et 587. Avec ou sans utilisateur et mdp. sendmail_from paramétré ou pas. Et toujours pas de mail envoyé.... Si je veux tester que tout fonctionne correctement (notamment la réception de cet attribut oldprice de l'objet dans le hook), pourrais-tu me donner un exemple de ce que je pourrais faire dans la fonction hook de mon module pour tester si je reçois bien la données oldprice : public function hookUpdateProduct($params){ if($params['product']->oldprice > $params['product']->price) // FAIRE UN TEST ICI POUR ME MONTRER LA VALIDITE DE MON PARAMETRAGE ET DU PROCESSUS } J'ai essayé de faire un return product.tpl mais lorsque je fais la mise à jour du produit en baissant le prix, ça ne fonctionne pas. a+ et merci de ton aide. Link to comment Share on other sites More sharing options...
Broceliande Posted April 23, 2012 Share Posted April 23, 2012 Disons que pour le moment j'essaye de pouvoir envoyer des mails (je suis en local, sous Zend server, mon FAI est free et malgré tous les tests de config de php.ini ou de smtp dans B.O => Préférences => email), je n'arrive pas à envoyer de mail. Par la fonction mail() de php j'ai un message comme quoi le message a été envoyé, mais je ne reçois rien. Via le paramétrage SMTP, ça tourne en boucle et rien ne se passe. J'ai essayé les ports 25, 465 et 587. Avec ou sans utilisateur et mdp. sendmail_from paramétré ou pas. Et toujours pas de mail envoyé.... Si je veux tester que tout fonctionne correctement (notamment la réception de cet attribut oldprice de l'objet dans le hook), pourrais-tu me donner un exemple de ce que je pourrais faire dans la fonction hook de mon module pour tester si je reçois bien la données oldprice : public function hookUpdateProduct($params){ if($params['product']->oldprice > $params['product']->price) // FAIRE UN TEST ICI POUR ME MONTRER LA VALIDITE DE MON PARAMETRAGE ET DU PROCESSUS } J'ai essayé de faire un return product.tpl mais lorsque je fais la mise à jour du produit en baissant le prix, ça ne fonctionne pas. a+ et merci de ton aide. Tu as configuré comment ton php.ini ? En fait sur l'host ce n'est pas localhost qu'il faut mettre mail le fqdn du smtp de ton fai : eg : [mail function] ; For Win32 only. ; http://php.net/smtp SMTP = smtp.free.fr ; http://php.net/smtp-port smtp_port = 25 et sinon ben ce que tu peux faire pour savoir si tu reçois bien les données get/post du formulaire dans le hook , fais un die : public function hookUpdateProduct($params) { die(Tools::getValue('oldprice')); } Link to comment Share on other sites More sharing options...
IchabOd Posted April 23, 2012 Author Share Posted April 23, 2012 Tu as configuré comment ton php.ini ? En fait sur l'host ce n'est pas localhost qu'il faut mettre mail le fqdn du smtp de ton fai : eg : [mail function] ; For Win32 only. ; http://php.net/smtp SMTP = smtp.free.fr ; http://php.net/smtp-port smtp_port = 25 Oui c'est bien ce que j'ai fait, mais rien ne passe, à part avoir le message de bon envoi en utilisant la fonction mail() et rien en smtp. J'ai vérifié la freebox, je ne bloque pas de flux sortant, d'ailleurs mon client mail (outlook express) est paramétré de la même façon et il marche nickel. J'ai même essayé d'appeler l'exe de outlook express dans la variable sendmail_path, mais que dalle. et sinon ben ce que tu peux faire pour savoir si tu reçois bien les données get/post du formulaire dans le hook , fais un die : public function hookUpdateProduct($params) { die(Tools::getValue('oldprice')); } OK je te remercie je testerais ce soir. Merci énormément pour ton aide ! 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