The Edit Blog

Re-indexing Magento through the command line

ARTICLE BY Douglas Radburn
    READ TIME: 1 min
    5th December 2013

    From time to time, you might find the need to re-index Magento via the command line. This could be for a whole host of reasons, for example, if the indexer is timing out or not finishing through the web interface.

    Magento includes an indexing script and you can find it in the shell folder.

    From here, you have a number of commands at your disposal.

    Checking for the status of all indexes

    php indexer.php --status

    Should give you output like this:

    Product Attributes:            Pending
    Product Prices:                Pending
    Stock Status:                  Pending
    Tag Aggregation Data:          Pending
    Default Values:                Pending
    Catalog URL Rewrites:          Pending
    Product Flat Data:             Require Reindex
    Category Flat Data:            Pending
    Category Products:             Pending
    Catalog Search Index:          Pending

    Re-indexing a single index

    Each index has its own index key that you can use to reference it when asking Magento to re-index. To get these keys, you can use the following command:

    php indexer.php --info

    Giving you:

    catalog_product_attribute     Product Attributes
    catalog_product_price         Product Prices
    cataloginventory_stock        Stock Status
    tag_summary                   Tag Aggregation Data
    mana_db_replicator            Default Values
    catalog_url                   Catalog URL Rewrites
    catalog_product_flat          Product Flat Data
    catalog_category_flat         Category Flat Data
    catalog_category_product      Category Products
    catalogsearch_fulltext        Catalog Search Index

    To reindex a single index, run the following command.

    php indexer.php --reindex [Index Option Code]

    This can be comma delimited for multiple indices:

    php indexer.php --reindex catalog_product_price,catalog_url,catalog_product_flat

    Re-index all indices

    The following code will loop through each index and re-index it.

    php indexer.php --reindexall