1

希望您能帮助我,我想以编程方式将嵌套条件添加到 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 个孩子;产品 SKU 必须为 2595040015 或产品 SKU 必须为 2595040019 的规则

(注意;我意识到在这种情况下,使它成为嵌套条件还没有意义,但我希望在使我的代码更复杂之前让它工作)

但; 使用上面的代码,仅创建以下内容:

1 个主要组合条件,条件为 ALL 1 个子组合条件,再次条件为 ALL(而不是 ANY)

关于我的产品 SKU 的 2 条规则根本不会在后端返回。

有人知道我在这里做错了什么吗?

4

1 回答 1

1

我建议你看看这篇文章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);

希望这可以帮助。我用同样的方法来创建这样的规则。

于 2015-07-28T11:38:05.800 回答