2013-01-08 109 views
1

誰能告訴我什麼是當用戶點擊清除購物車按鈕時觸發的正確事件。我想根據該事件刪除一些信息。目前我正在存儲有關添加購物車事件使用觀察員。謝謝清除magento中的購物車事件

回答

2

有在1.7.0.2

// app/code/core/Mage/Checkout/controllers/CartController.php:389 
Mage_Checkout_CartController::updatePostAction() 

// app/code/core/Mage/Checkout/controllers/CartController.php:441 
Mage_Checkout_CartController::_emptyShoppingCart() 

// app/code/core/Mage/Checkout/Model/Cart.php:489 
Mage_Checkout_Model_Cart::truncate() 

// app/code/core/Mage/Sales/Model/Quote.php:837 
Mage_Sales_Model_Quote::removeAllItems() 

任何情況下,你可以聽上checkout_cart_save_before並請檢查是否車是空的,你的設定時,如果是,將其刪除。

+2

在Magento 1.7中引入了小評論,'Mage_Sales_Model_Quote :: removeAllItems()'方法,並且在早期版本中不存在。 – Zefiryn

0


這個Link一定會幫助你。
否則,看看this.
希望這可以幫助你。

+0

謝謝,但我無法找到我稱之爲一些定製code.I希望事件像「sales_order_save_after」這樣的事件。希望你明白我想要做的事情。 –

+0

checkout_type_onepage_save_order_after –

+0

對不起這個事件沒有奏效。我認爲這個事件在訂單完成時觸發,而我想要一個事件,當在購物車頁面上有人清除他的購物車時會觸發。 –

4

我最近在自定義模塊中實現了這一點。

controller_action_predispatch_checkout_cart_updatePost 

此事件在按下清除推車時正好接到呼叫。

你可以檢查,如果該方法被稱爲空購物車觀察者

$post = Mage::app()->getRequest()->getPost('update_cart_action'); // get value if ($post == 'empty_cart') { // perform logic $quote = Mage::helper('checkout/cart')->getQuote(); //quote $allQuoteItems = $quote->getAllItems(); // quote items // do code }

希望它能幫助。

+0

您是如何獲取購物車中的產品/報價物品的? –

+0

你可以得到它們,我已經相應地更新了我的答案。 –

1

通用方法

config.xml中

<events> 
    <sales_quote_save_after> 
     <observers> 
      <module_model_observer> 
       <type>singleton</type> 
       <class>module/observer</class> 
       <method>salesQuoteSaveAfter</method> 
      </module_model_observer> 
     </observers> 
    </sales_quote_save_after> 
</events> 

Observer.php

public function salesQuoteSaveAfter($observer) 
{ 
    /** @var Mage_Sales_Model_Quote $quote */ 
    $quote = $observer->getEvent()->getQuote(); 
    if($quote->getItemsCount() == 0) { 
     // your code 
    } 
}