2011-02-03 18 views
2

誰かが見積もりが正しく削除されていないことに気付いたことはありますか? たとえば、商品をカートから削除した後、クーポンコード変数は値を保持します。Magento商品をカート/削除見積もりから削除するアクション不完全 - 価格ルールのバグ

試してみてください。

製品にはいくつかのショッピング価格カートルールを設定し、それがヘッダ部にバナーを表示します。

2.ルールをトリガーしてチェックアウト/カートにバナーを表示するには、[この製品のみ]をチェックアウト/カートに追加します。

。カートから製品を削除すると、ヘッダーセクションにまだバナーが表示されます。

注。カートに別の商品がある場合、これは機能しません。ルールをトリガーした商品を削除すると、&バナーCouponがカートに入れられた商品に交換されます。 このバグは、ルール&のバナーをトリガーする製品のみがカートに入っている場合にのみ機能します。

誰かがこれに修正を加えているか、これらの条件を複製することができます。適切な見積もりの​​更新を意味する適切な商品の削除をカートから削除するには、Magentoの欠点に関する会話が大好きです。

Magentoのエンタープライズ版に見つかり
- code/core/Mage/Sales/Model/Quote.php -> public function removeItem($itemId) 

+0

このバグをmagento BTSに投稿することをお勧めします。 – Zyava

答えて

0

あなたはそれを固定するためのsales_quote_remove_itemイベントを使用することができます。 How to create a Hello world extension in Magento?)とあなたのconfig.xmlに次のセクションを追加します:

1)新しい拡張機能を作成します(ここではそれを行うにはどのように良い答えです

<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)を作成し、ローカル・ファイル・アプリ/コード/ /あなた/拡張/モデル/ 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のキャッシュ後

、問題を繰り返してみてください - それは消えていなければなりません。

関連する問題