Skip to content

Instantly share code, notes, and snippets.

@willboudle
Created October 16, 2014 19:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save willboudle/da081bfd0fc1ccf6dbef to your computer and use it in GitHub Desktop.
Save willboudle/da081bfd0fc1ccf6dbef to your computer and use it in GitHub Desktop.
Cron job to update database in magento
<?php
require_once 'app/Mage.php';
umask(0);
ini_set("memory_limit","1024M");
//$_SERVER['SERVER_PORT']='443';
Mage::app();
$profileId = 7; //put your profile id here
$logFileName= "import.log";
$recordCount = 0;
// This won't work if Logging settings is disabled
// To activate it go to System->Configuration->Developer
Mage::log("Import Started",null,$logFileName);
$profile = Mage::getModel('dataflow/profile');
$userModel = Mage::getModel('admin/user');
$userModel->setUserId(0);
Mage::getSingleton('admin/session')->setUser($userModel);
if ($profileId) {
$profile->load($profileId);
if (!$profile->getId()) {
Mage::getSingleton('adminhtml/session')->addError('The profile you are trying to save no longer exists');
}
}
Mage::register('current_convert_profile', $profile);
$profile->run();
$batchModel = Mage::getSingleton('dataflow/batch');
if ($batchModel->getId()) {
if ($batchModel->getAdapter()) {
$batchId = $batchModel->getId();
$batchImportModel = $batchModel->getBatchImportModel();
$importIds = $batchImportModel->getIdCollection();
$batchModel = Mage::getModel('dataflow/batch')->load($batchId);
$adapter = Mage::getModel($batchModel->getAdapter());
foreach ($importIds as $importId) {
$recordCount++;
try{
$batchImportModel->load($importId);
if (!$batchImportModel->getId()) {
$errors[] = Mage::helper('dataflow')->__('Skip undefined row');
continue;
}
$importData = $batchImportModel->getBatchData();
try {
$adapter->saveRow($importData);
} catch (Exception $e) {
Mage::log($e->getMessage(),null,$logFileName);
continue;
}
if ($recordCount%20 == 0) {
Mage::log($recordCount . ' - Completed!!',null,$logFileName);
}
} catch(Exception $ex) {
Mage::log('Record# ' . $recordCount . ' - SKU = ' . $importData['sku']. ' - Error - ' . $ex->getMessage(),null,$logFileName);
}
}
foreach ($profile->getExceptions() as $e) {
Mage::log($e->getMessage(),null,$logFileName);
}
}
}
Mage::log("Import Completed",null,$logFileName);
// Catalog Rewrites
try {
Mage :: getSingleton( 'catalog/url' ) -> refreshRewrites();
}
catch ( Exception $e ) {
Mage::log($e -> getMessage(),null,$logFileName);
}
// LAYERED NAV
try {
$flag = Mage::getModel('catalogindex/catalog_index_flag')->loadSelf();
if ($flag->getState() == Mage_CatalogIndex_Model_Catalog_Index_Flag::STATE_RUNNING) {
$kill = Mage::getModel('catalogindex/catalog_index_kill_flag')->loadSelf();
$kill->setFlagData($flag->getFlagData())->save();
}
$flag->setState(Mage_CatalogIndex_Model_Catalog_Index_Flag::STATE_QUEUED)->save();
Mage::getSingleton('catalogindex/indexer')->plainReindex();
Mage::log('Layered Navigation Indices were refreshed successfully', null, $logFileName);
}
catch (Mage_Core_Exception $e) {
Mage::log($e -> getMessage(). "\n",null,$logFileName);
}
catch (Exception $e) {
Mage::log('Error while refreshed Layered Navigation Indices. Please try again later', null,$logFileName);
}
?>
- See more at: http://www.ayasoftware.com/cron-job-update-database-magento#sthash.fac63bcl.dpuf
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment