Skip to main content

Magento - Apply only one Catalog Price Rule


In default magento, on click of "Apply rules" in catalog price rules (Promotions > Catalog Price Rules), it get the products for all the active rules and add the data in a separate table. If there are more than five active rules, then lots of data have to be created and the process takes a lot of time. If we have to create a new rule, the save and apply will re-calculate for all the active rules.

The below code is to apply the rule only for the given rule id.

$rule = Mage::getModel('catalogrule/rule')->load($rule_id);
$rule->getResource()->updateRuleProductData($rule);
$rule->getResource()->applyAllRules();
$indexProcess = Mage::getSingleton('index/indexer')->getProcessByCode('catalog_product_price');
if ($indexProcess) {
    $indexProcess->reindexAll();
}



Comments

Popular posts from this blog

Magento 2 - Create a simple module

In magento 2, the creation of module has changed completely. We will go through how to create a module. Like earlier magento, we do not need to put our module files in different folders for code, theme, skin, etc. All, the codes related to the module should be inside one main folder. You can find the sample code in the git repo .