Reindexing in Magento Programmatically Or via Command Line

Magento provides Index Management to reindex content such as Product Attributes, catalog URL Rewrites, Catalog Search Index etc from admin panel.
But sometimes we are unable to access the backend and the need for reindexing arises or Reindexing error comes when trying from backend.
Create a file in root of your magento with following code to update the indexes programmatically.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
< ?php
//Following 3 lines will load the magento admin environment.
require_once 'app/Mage.php';
$app = Mage::app('admin');
umask(0);
 
// to reindex the processes we require their ids
// for default magento there are 9 processes to reindex, numbered 1 to 9. 
$ids = array(1,2,3,4,5,6,7,8,9);
 
// Sometimes there are processes from our custom modules that also require reindexing
// We need to add those ids to our existing array of ids
// To know the id of process, just hover on each process in your
// admin panel-> System-> Index Management
// You will get a url : admin/process/some_id/......
// this id corresponds to the process
 
$ids = array(1,2,3,4,5,6,7,8,9,390,391,478);
foreach($ids as $id)
{
//load each process through its id
try
{
$process = Mage::getModel('index/process')->load($id);
$process->reindexAll();
echo "Indexing for Process ID # ".$id." Done<br />";
}
catch(Exception $e)
{
echo $e->getMessage();
}
}
?>

Thats all, the above code will reindex your magento content.

Or. . .

you can do it directly from command line :

– Index all indexers

php -f shell/indexer.php –reindex all

Note : your current directory should be magento root.

  • Steve

    it worked perfectly !!!!!!!

  • Raghu

    Hi,

    I have a strange problem, there is one indexing that is not getting indexed. If I run from the admin it gives an error saying unable to run the indexer process.

    I tried to run through command, it says indexing done successfully. But when I go and check in admin it still says indexing required.

    Now that I have this issue for a very long time, I have tried several ways which I could fix, but unsuccessful everytime.

    Please help.

    • Arpit

      Hi Raghu,

      I had a similar problem and that’s why wrote this piece of code.There may be some issue with product configuration or one of the index.Can you please cite which index is not getting indexed?