2016-05-10 57 views
0

我已經做了一個magento模塊,它有多種方法,其中1個方法是ProcessOrderAction(),我想每次調用這個方法之前我做最後的結帳,我的配置文件在下面。需要在magento中掛鉤方法預結帳

<?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> 
 
\t \t 
 
    </frontend> 
 
\t 
 
\t 
 

 
</config>

+0

哪裏你到底要在掛鉤?在購物車頁面上或結賬或訂單成功的第一步之前? – codedge

+0

就在結賬的最後一步之前,我需要在下訂單時抓住購物車的詳細信息,以便在最終確認步驟需要撥打電話併發送訂單請求之前:) –

回答

1

您可以使用事件checkout_cart_save_after通過觀察者掛接到。在購物車保存後,通常會在購物車項目發生更改後調用該保存後,纔會觸發此事件

要使用此功能,您需要更新您的​​3210,並致電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... 
    } 
} 
+0

非常感謝!!!!! –