Jump to content

developpement d'une tache cron


Recommended Posts

Bonjour,

 

j'aurais besoin de votre aide car je ne sais pas comment faire.

j'ai faire un module qui me permet de mettre a jour mes quantités de produits en fonction d'un fichier CSV de mon fournisseur et ils fonctionnent parfaitement dans l'admin.

cependant, je voudrais l'executer via une tache cron mais la est le probleme

Comment puis je faire pour ne pas avoir à passer via l'authentification de l'admin car mon module bloque a ce niveau quand je fais un appel vie tachecron : il arrive direct sur la page de login et donc ne s'execute pas

 

De plus, je souhaiterais executer le hook product update pour mettre a jour afin que le module ebay soit compatible car a l'heure actuel, j'utilise la fonction product->update() pour mettre a jour les quantités de produit.

 

Si vous pouvez m'aider ou si vous avez un lien vers une documentation sur ce point.

 

Merci d'avance

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

Bonjour,

Pour le cron, si dans ton module tu fais un fichier cron.php et que dedans tu mets le code qui lance ton import de prix ça marchera bien en appelant directement modules/mon_module/cron.php.

Si il y a des sécurités à mettre tu peux récupérer l'ip de l'odinateur qui lance le cron.

 

Pour le hook product, tu veux que le module ebay mettent les articles à jour sur Ebay ?

 

Bon dev

Link to comment
Share on other sites

pour ebay c'est bien ca, je veux que les articles se mettent a jour et donc si j'ai bien compris il faut que je déclenche le hook product_update mais je n'y arrive pas

pour la tache cron, j'ai pas trop saisi se que tu m'as dit

Dans ton module tu peux faire un fichier php indépendant de l'administration du style

<?php
require('../../config/config.inc.php');
// Ma sécurité
// Mon traitement de mise  à jour
// Log du traitement
?>

Link to comment
Share on other sites

Le module Ebay a une méthode hookaddproduct public (pour l'update et l'ajout)

 

Si le hookUpdateProduct ne se déclenche pas avec ton cron, éxcute le :

$params = array('product' => $product);
Module::hookExec('updateProduct', $params);

 

Dans la série par forcément clair tout ça : ;)

Mais il devrait s'éxécuter lors du $product->update(); si tu as les methodes hook add et update dans ton module.

Link to comment
Share on other sites

Dans searchcron.php tu as un exemple d'appel direct

 

include(dirname(__FILE__).'/../config/config.inc.php');
if (substr(_COOKIE_KEY_, 34, 8) != Tools::getValue('token'))
die;
ini_set('max_execution_time', 7200);
Search::indexation(Tools::getValue('full'));
Tools::redirectAdmin($_SERVER['HTTP_REFERER'].'&conf=4');

C'est visiblement pour réactualiser l'indexation de la recherche par mots cléfs

Link to comment
Share on other sites

Je tenais encore à te remercier pour ton aide car ta solution pour le hook fonctionne à merveille tout comme la tache cron

sinon une dernière petit chose:

que faudrait-il que je mette dans la fonction hook update pour que ca fonctionne sans déclanchement manuel du hook?

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

en fait j'ai parlé un peu vite car visiblement le hook ne semble pas fonctionner car rien ne se met a jour sur mon site avec ces lignes

et d'ailleurs rien sur ebay ne se met a jour.

peux tu m'en dire un peu plus sur ce que je devrais mettre dans les hook que je dois déclarer dans le module?

Link to comment
Share on other sites

  • 8 months later...

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