Magento Can';不能以编程方式应用目录价格规则
我试图以编程方式创建目录价格规则(特定客户组的类别折扣百分比)。但它不是以编程方式应用的。即使您转到目录价格规则部分,并按下“应用规则”按钮,也不会应用它。仅当您在后端编辑此规则,保存它而不进行任何修改,然后按“应用规则”时,它才适用。 代码如下:Magento Can';不能以编程方式应用目录价格规则,magento,Magento,我试图以编程方式创建目录价格规则(特定客户组的类别折扣百分比)。但它不是以编程方式应用的。即使您转到目录价格规则部分,并按下“应用规则”按钮,也不会应用它。仅当您在后端编辑此规则,保存它而不进行任何修改,然后按“应用规则”时,它才适用。 代码如下: $catalogRule = Mage::getModel('catalogrule/rule'); $catalogRule->setName($ruleName) ->setIsActive(true) ->
$catalogRule = Mage::getModel('catalogrule/rule');
$catalogRule->setName($ruleName)
->setIsActive(true)
->setWebsiteIds(array(1))
->setCustomerGroupIds(array($group->getId()))
->setSimpleAction('by_percent')
->setDiscountAmount($discountAmount);
$categoryCondition = Mage::getModel('catalogrule/rule_condition_combine')
->setType('catalogrule/rule_condition_product')
->setAttribute('category_ids')
->setOperator('==')
->setValue($categoryId);
$catalogRule->getConditions()->addCondition($categoryCondition);
$catalogRule->save();
$catalogRule->applyAll();
Mage::app()->removeCache('catalog_rules_dirty');
谢谢你的帮助 您在
$categoryCondition
中有错误。您应该使用catalogrule/rule\u condition\u产品
模型,而不是catalogrule/rule\u condition\u组合
。
此外类别id值应为字符串类型。这真的很奇怪,但对于整数值,它不起作用(在1.6.1.0版本上测试)
因此,以下是解决方案:
$categoryCondition = Mage::getModel('catalogrule/rule_condition_product')
->setType('catalogrule/rule_condition_product')
->setAttribute('category_ids')
->setOperator('==')
->setValue("23"); // notice: this is should be a string!