Magento How-to: Cron jobs for Modules

Heads up! This article was written over 16 years ago. While it may still be helpful, please verify any information, as my perspectives and practices may have evolved.

It’s inevitable that you’ll want to create a cron job for your Magento modules at some point. An obvious solution would be to make the user create a new crontab entry calling your script. There’s no need. Magento has cron functionality built in.

Simply edit your config.xml, adding the following:

<config>
...
<crontab>
<jobs>
<shipwire_inventorysynch>
<schedule><cron_expr>*/6 * * * *</cron_expr></schedule>
<run><model>shipwire/api_inventorysynch::cron</model></run>
</shipwire_inventorysynch>
</jobs>
</crontab>
</config>
view raw config.xml hosted with ❤ by GitHub

When <mode>shipwire/api_inventorysynch::cron</model> relates to the shipwire model namespace, api_inventorysynch relates to the model Meanbee_Shipwire_Model_Api_Invetorysynch and ::cron relates to the method cron() in that class.

Note: You need to make sure, of course, that the script ./cron.php, in the root of your Magento installation, has an entry in the crontab.