2010-11-23 57 views
1

我正在寫一個小模塊,它會自動將產品添加到購物車(基於特定標準)。但是,如果用戶隨後從購物車中移除該自動產品,我需要知道,以便在當前會話中不再添加它。Magento - 如何檢查產品是否已從購物車中移除

購物車對象是否擁有任何可以告訴我產品是否已從購物車中移出的東西?

回答

2

Magento的不保留哪些項目已被刪除的記錄,你將不得不自己做。從聽一個事件開始;

應用程序/本地/ YOURMODULE的/ etc/config.xml中

<config> 
... 
    <frontend> 
     <events> 
      <sales_quote_remove_item> 
       <observers> 
        <class>YOURMODULE/observer</class> 
        <method>removeQuoteItem</method> 
       </observers> 
      </sales_quote_remove_item> 
     </events> 
    </frontend> 
... 

應用程序/本地/ YOURMODULE /型號/ Observer.php

<?php 

class YOU_YOURMODULE_Model_Observer 
{ 
    public function removeQuoteItem(Varien_Event_Observer $observer) 
    { 
     $product = $observer->getQuoteItem()->getProduct(); 
     // Store `$product->getId()` in a session variable 
    } 
} 

?> 

創建擴展會話類Mage_Core_Model_Session_Abstract並用它來存儲您在上述觀察者中收集的產品ID。然後,您可以參考該會話對象(由Mage::getSingleton()調用)以查看過去購物車中的產品。

+0

輝煌的鐘表工作正是我所追求的。非常感謝。我會盡我所能去!謝謝! – sulman 2010-11-24 16:44:38

0

是你可以在購物車的當前項目是這樣的: -

foreach ($session->getQuote()->getAllItems() as $item) { 

    $output .= $item->getSku() . "<br>"; 
    $output .= $item->getName() . "<br>"; 
    $output .= $item->getDescription() . "<br>"; 
    $output .= $item->getQty() . "<br>"; 
    $output .= $item->getBaseCalculationPrice() . "<br>"; 
    $output .= "<br>"; 
} 

此鏈接可能有用 http://www.magentocommerce.com/boards/viewthread/19020/

+0

感謝您的回覆,但沒有告訴我該物品是否已從購物車中刪除。除非我錯過了什麼? – sulman 2010-11-23 10:52:46

相關問題