diff --git a/app/code/core/Mage/Catalog/Model/Product/Indexer/Flat.php b/app/code/core/Mage/Catalog/Model/Product/Indexer/Flat.php index 7393ffe487a..ec0abf090e2 100644 --- a/app/code/core/Mage/Catalog/Model/Product/Indexer/Flat.php +++ b/app/code/core/Mage/Catalog/Model/Product/Indexer/Flat.php @@ -151,7 +151,7 @@ public function matchEvent(Mage_Index_Model_Event $event) } else { /** @var Mage_Core_Model_Store $store */ $store = $event->getDataObject(); - if ($store && $store->isObjectNew()) { + if ($store && ($store->isObjectNew() || $store->getOrigData('is_active') != $store->getIsActive() && $store->getIsActive())) { $result = true; } else { $result = false; diff --git a/app/code/core/Mage/Catalog/Model/Resource/Product/Flat/Indexer.php b/app/code/core/Mage/Catalog/Model/Resource/Product/Flat/Indexer.php index 7f0bdfa2eaa..eecb7aaacbe 100644 --- a/app/code/core/Mage/Catalog/Model/Resource/Product/Flat/Indexer.php +++ b/app/code/core/Mage/Catalog/Model/Resource/Product/Flat/Indexer.php @@ -1400,6 +1400,9 @@ protected function _arrayNextKey(array $array, $key) public function reindexAll() { foreach (Mage::app()->getStores() as $storeId => $store) { + if (!$store->getIsActive()) { + continue; + } $this->prepareFlatTable($storeId); $this->beginTransaction(); try {