Magento:根据客户属性应用目录价格规则

时间:2014-10-21 16:50:33

标签: magento attributes

我搜索了自定义模块,事件和CatalogRule的代码库,但我无法弄清楚如何根据客户属性设置产品价格。

可用于过滤的唯一客户属性是组,但每个客户的规则不同,我需要为每个客户创建一个组......不是一个好主意。

有没有办法实现这一目标?除产品属性外还要使用客户属性吗?

1 个答案:

答案 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/