我搜索了自定义模块,事件和CatalogRule
的代码库,但我无法弄清楚如何根据客户属性设置产品价格。
可用于过滤的唯一客户属性是组,但每个客户的规则不同,我需要为每个客户创建一个组......不是一个好主意。
有没有办法实现这一目标?除产品属性外还要使用客户属性吗?
答案 0 :(得分:0)
晚会很晚,但我还是会分享。这归结为遵守规则,然后注入条件。这是调度我们想要的事件的方法:
Mage_SalesRule_Model_Rule_Condition_Combine::getNewChildSelectOptions
和事件...
Mage::dispatchEvent('salesrule_rule_condition_combine', array('additional' => $additional));
然后,您的观察者将注入一个新的rule_condition模型。
public function updateSalesRulesConditionsForCustomerAttributes(Varien_Event_Observer $observer)
{
$customerCondition = Mage::getModel('company/rule_condition_customer');
$customerAttributes = $customerCondition->loadAttributeOptions()->getAttributeOption();
$attributes = array();
foreach ($customerAttributes as $code=>$label) {
$attributes[] = array('value'=>'company/rule_condition_customer|'.$code, 'label'=>$label);
}
$additional = $observer->getAdditional();
$conditions = array(
array('label'=>'Customer Attribute', 'value'=>$attributes)
);
$additional->setConditions($conditions);
return $additional;
}
我写了一篇文章,显示了更多详细信息,包括规则模型以及如何指定属性。看看:https://www.peakcollective.com/magento-1-9-sales-rule-condition-customer-attribute/