希望你能帮助我,我想以编程方式将嵌套条件添加到Magento目录升级规则中,我有以下代码:
$oMainCondition = Mage::getModel('catalogrule/rule_condition_combine')
->setType('catalogrule/rule_condition_combine')
->setAggregator('all');
$oFirstCondition = Mage::getModel('catalogrule/rule_condition_combine')
->setType('catalogrule/rule_condition_combine')
->setAggregator('any');
$oProdCondition1 = Mage::getModel('catalogrule/rule_condition_product')
->setType('catalogrule/rule_condition_product')
->setAttribute('sku')
->setOperator('==')
->setValue("2595040015");
$oProdCondition2 = Mage::getModel('catalogrule/rule_condition_product')
->setType('catalogrule/rule_condition_product')
->setAttribute('sku')
->setOperator('==')
->setValue("2595040019");
$oFirstCondition->addCondition($oProdCondition1);
$oFirstCondition->addCondition($oProdCondition2);
$oMainCondition->addCondition($oFirstCondition);
$oCatalogPriceRule->getConditions()->addCondition($oMainCondition);
我想实现以下目标:一个主要组合条件,条件为 ALL这个主要的结合条件将有一个孩子;条件与条件 ANY 的组合条件这个孩子将有2个孩子;必须2595040015产品 SKU 或必须2595040019产品 SKU
的规则(注意;我意识到在这种情况下,使其成为嵌套条件还没有意义,但我想在使我的代码更复杂之前让它工作)
但是;使用上面的代码,仅创建以下内容:
1 个主要组合条件,条件为 ALL1 个孩子组合条件,再次与条件 ALL(而不是 ANY )
关于我的产品 SKU 的 2 条规则根本没有在后端回来。
有人知道我在这里做错了什么吗?
我建议你看看这篇文章 http://www.demacmedia.com/magento-commerce/mini-tutorial-creating-shopping-cart-rules-programatically/
您需要使用此块:
$item_found = Mage::getModel('salesrule/rule_condition_product_found')
->setType('salesrule/rule_condition_product_found')
->setValue(1) // 1 == FOUND
->setAggregator('all'); // match ALL conditions
$rule->getConditions()->addCondition($item_found);
$conditions = Mage::getModel('salesrule/rule_condition_product')
->setType('salesrule/rule_condition_product')
->setAttribute('sku')
->setOperator('==')
->setValue($sku);
$item_found->addCondition($conditions);
希望这有帮助。我使用相同的方法来创建这样的规则。