Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Magento store id in cronjob

Is there a way to give a store id as parameter when executing a model with cronjob ?

like image 397
Jasiufila Avatar asked Apr 15 '11 07:04

Jasiufila


1 Answers

You cannot specify store scope for Magento Cron Job, but you can add additional arguments that you can use inside of it.

  1. Specify additional node that you can process via your cron method:

    <crontab>
       <jobs>
           <job_name>
               <schedule>
                   <cron_expr>* * * * * *</cron_expr>     
               </schedule>
               <run>
                   <model>module/observer::myJob</model>
               </run>
               <store>store_code</store>
           </job_name>
       </jobs>
    </crontab>
    
  2. And method where you receiving the schedule object with current job code:

    public function myJob($schedule) 
    {
        $jobsRoot = Mage::getConfig()->getNode('crontab/jobs');
        $jobConfig = $jobsRoot->{$schedule->getJobCode()};
        $yourStoreNode = (string) $jobConfig->store;
    
        // Here goes store related functionality
    }
    

All the store related models can load data only for a particular store, so I hope it solves your problem.

like image 124
Ivan Chepurnyi Avatar answered Sep 24 '22 02:09

Ivan Chepurnyi