产品清单活动价格?

时间:2011-10-06 12:59:11

标签: magento

我正在尝试发现如何配置一个Observer来检查magento在类别/搜索结果下列出产品时何时调用价格,但目前我找不到任何线索。

之前有人有过这种需求,可以给我一些指示吗?

我正在使用Magento 1.6.0.0。

2 个答案:

答案 0 :(得分:9)

您可以通过观察目录产品的collection_load_after事件来实现此目的:

        <catalog_product_collection_load_after>
            <observers>
                <Your_Module_Observer>
                    <type>model</type>
                    <class>your_module/Observer/class>
                    <method>modifyPrices</method>
                </Your_Module_Observer>
            </observers>
        </catalog_product_collection_load_after>

然后,您可以遍历该集合并获取每个产品的价格,并根据需要进行更改:

$products = $observer->getCollection();

foreach( $products as $product )
{
    $product->setPrice( $myCustomPrice );
}

不确定这是否正是您所寻找的,但希望它能为您指明正确的方向。

答案 1 :(得分:0)

一般意思是为任何特定事件设置观察者

请参阅https://magento.stackexchange.com/questions/314/how-to-know-the-magento-event-that-we-want-to-hook

在模块Logevent中,config.xml

 <?xml version="1.0" encoding="UTF-8"?>

 <modules>
<Maticode_Logevent>
    <version>0.1</version>
</Maticode_Logevent>
 </modules>


 <global>
<models>
    <Logevent>
        <class>Maticode_Logevent_Model</class>
    </Logevent>
</models>

<events>


    <controller_action_predispatch>
        <observers>
            <Logevent>
                <type>singleton</type>
                <class>Logevent/observer</class>
                <method>controller_action_predispatch</method>
            </Logevent>
        </observers>
    </controller_action_predispatch>

</events>
</global>

和Model / observer.php

        <?php

class Maticode_Logevent_Model_Observer {
 public function controller_action_predispatch($observer) {
Mage::log ( $observer->getEvent ()->getControllerAction ()->getFullActionName (),null, 'eventlog.log' );
}

}

这样,在

    var/log/eventlog.log file  

你可以看到任何测试动作的可能钩子