需要在magento中勾选一个方法预检出

时间:2016-05-10 09:43:15

标签: magento events hook

我制作了一个magento模块,它有多个方法,其中1个方法是ProcessOrderAction(),我想在每次最终结账前调用此方法,我的配置文件如下。



<?xml version="1.0"?>
<config>
    <modules>
        <kodework_ongoing>
            <version>0.1.0</version>    <!-- Version number of your module -->
        </kodework_ongoing>
    </modules>
    <frontend>
        <routers>
            <mymodule>
                <use>standard</use>
                <args>
                    <module>kodework_ongoing</module>
                    <frontName>ongoing</frontName>
                </args>
            </mymodule>
        </routers>
		
    </frontend>
	
	

</config> 
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

您可以使用事件checkout_cart_save_after通过观察者挂钩。在使用购物车项目更改后通常调用的购物车保存之后,将触发此事件。

要使用此功能,您需要通过调用config.xml课程和方法来更新observer

<?xml version="1.0"?>
<config>
    <modules>
        <kodework_ongoing>
            <version>0.1.0</version>    <!-- Version number of your module -->
        </kodework_ongoing>
    </modules>
    <frontend>
        <routers>
            <mymodule>
                <use>standard</use>
                <args>
                    <module>kodework_ongoing</module>
                    <frontName>ongoing</frontName>
                </args>
            </mymodule>
        </routers>
        <!-- Hook into events start -->
        <events>
            <checkout_cart_save_after>
                <observers>
                    <kodework_ongoing>
                        <class>kodework_ongoing/observer</class> <!-- The observer class where with the ProcessOrderAction method -->
                        <method>ProcessOrderAction</method>
                    </kodework_ongoing>
                </observers>
            </checkout_cart_save_after>
        </events>
        <!-- Hook into events end -->
    </frontend>
</config>

如您所见,您需要observerapp/code/local/Kodework/Ongoing/Model/Observer.php

<?php
class Kodework_Ongoing_Model_Observer
{
    public function ProcessOrderAction($observer)
    {
        $cart = $observer->getData('cart');
        $quote = $cart->getData('quote');
        $items = $quote->getAllVisibleItems();

       // More logic...
    }
}