Jump to content

[Résolu] Executer le hook updateQuantity


Recommended Posts

Bonjour,

 

J'utilise la version 1.4.9.0

 

J’essaie de faire en sorte d'executer le hook updateQuantity afin que tout les modules qui doivent faire quelque chose le fasse, car il arrive que les quantités soit modifié directement dans la BDD, entre autre par exemple pour que le module mailalerte envoie les mail de réapprovisionnement au gens qui en ont fait la demande.

 

J'ai donc intégré à un script déjà existant (un module) qui est automatiquement lancé à toute les 30 min ceci:

 

/* AJOUT RAPH POUR ACTIVER LE HOOK UPDATE PRODUCT */
//$productsListHooks = Db::getInstance()->ExecuteS('SELECT `id_product` FROM `'._DB_PREFIX_.'product` WHERE `active` = 1 AND TIME_TO_SEC(TIMEDIFF(NOW(), `date_upd`)) < 2100');
$productsListHooks = Array(Array('id_product' => '1600'));// J'AI MIT CECI POUR TESTER
if($productsListHooks)
foreach($productsListHooks as $productsListHook)
	{
		if (Validate::isLoadedObject($productobj = new Product((int)$productsListHook['id_product'])))
		{	
			$productobj->quantity = 15;//J'AI MIT CECI POUR TESTER

			Module::hookExec('updateQuantity', array('product' => $productobj, 'order' => null));
			//TESTé AVEC LUI OU L'AUTRE DU DESSOUS MAIS AUCUN NE FONCTIONNE

			//Hook::updateQuantity($productobj, null);
			die($productsListHook['id_product']);
		}
			else
				die('pas bon');
		}

 

La première ligne c'est la requete SQL pour appeler les produit qui ont été modifié mes dernier 35 min (le module qui modifie directement les quantités en BDD met à jours cette date), mais pour tester je la commente et je met le produit 1600 car je sais que ce produit devrait envoyer un mail de réapprovisionnement à mon mail..

 

Donc pour le moment avec ce bout de script quand je l'appel, j'ai la page blanche indiqué 1600, mais aucun mail n'est envoyé....

 

Je suis peut être passé à coté de quelque chose, c'est la première fois que j’essaie faire en sorte que les hook s’exécute.

 

Merci :)

Edited by Raph59 (see edit history)
Link to comment
Share on other sites

Finalement c'est ok, mais bon je remet en question cette solution car j'utilise des déclinaisons et comme le date_upd se base sur le produit et la quantité du produit et non sur les déclinaison... bref en attendant pour ce problème précis, c'est résolue!

 

Et pour ceux qui se demande c'était quoi le problème (ben oui, quoi de pire que quelqu'un qui dit c'est résolue et qui dit rien de plus :P ) c'était juste une erreur de ma part...

 

if (Validate::isLoadedObject($productobj = new Product((int)$productsListHook['id_product'])))

 

ca ne fonctionne pas, il faut mettre à la place

$productobj = new Product((int)$productsListHook['id_product']);
 if (Validate::isLoadedObject($productobj))

 

et la ça fonctionne :)

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