2011-02-03 48 views
2

有沒有人注意到報價沒有被正確刪除? 例如,從購物車中刪除產品後,優惠券代碼變量會保留該值。Magento從購物車刪除項目/刪除報價操作不完整 - 價格規則的缺陷

嘗試:

設置一些購物車價格規則的產品,並使其顯示在標題部分的一面旗幟。

2.添加產品[只有這個產品] to checkout/cart才能觸發規則並在結帳/購物車上顯示橫幅。

。從購物車中刪除產品,您將看到標題部分仍顯示橫幅。

注意。如果您購物車中有其他產品,則此操作將無法執行,因爲當您刪除觸發規則&橫幅的橫幅時,Coupon代碼將替換爲購物車中屬於此其他產品的代碼。 因此,如果僅觸發規則&橫幅的產品在購物車中,此錯誤纔有效。

如果有人對此有所修正或者可以複製這些條件:我想談談關於magento缺陷的問題,以便從購物車中刪除正確的產品 - 這意味着適當的報價刷新。

- code/core/Mage/Sales/Model/Quote.php -> public function removeItem($itemId) 

上找到Magento企業版

+0

你最好把這個bug發佈到magento BTS。 – Zyava 2012-09-27 21:10:38

回答

0

可以使用sales_quote_remove_item事件修復它。

1)創建新的擴展名(這裏是很好的答案如何做到這一點:How to create a Hello world extension in Magento?)和下節添加到您的config.xml:

<events> 
    <sales_quote_remove_item> 
     <observers> 
      <sales_quote_remove_item_handler> 
       <type>singleton</type> 
       <class>Your_Extension_Model_Observer</class> 
       <method>unsetCouponCode</method> 
      </sales_quote_remove_item_handler> 
     </observers> 
    </sales_quote_remove_item> 
</events> 

2)創建文件app /代碼/地方/你/ Extension/Model/Observer.php:

<?php 
class Your_Extension_Model_Observer { 

    public function unsetCouponCode(Varien_Event_Observer $observer) { 
     $quote = $observer->getQuoteItem()->getQuote(); 
     if (!$quote->hasItems()) { 
      Mage::getSingleton('core/session')->setCouponCode(''); 
      $quote->getShippingAddress()->setCollectShippingRates(true); 
      $quote->setCouponCode('')->collectTotals()->save(); 
     } 
    } 
} 

之後,清除Magento緩存並嘗試重複問題 - 它應該消失。

相關問題