2011-02-03 3 views
2

견적을 제대로 삭제하지 못했다는 것을 알고있는 사람이 있습니까? 예를 들어, 쿠폰 코드 변수는 장바구니에서 제품을 삭제 한 후에 값을 유지합니다.Magento 장바구니에서 항목 삭제/견적 삭제 동작 불완전 - 가격 규칙의 버그

시도 :

1 제품에 약간의 쇼핑 가격 장바구니 규칙을 설정하고 헤더 섹션에 배너를 표시합니다.

2. 규칙을 실행하고 체크 아웃/카트에 배너를 표시하려면 [이 제품 만] 체크 아웃/카트에 제품을 추가하십시오.

. 장바구니에서 제품을 삭제하면 배너가 헤더 섹션에 계속 표시됩니다.

참고. 장바구니에 다른 제품이있는 경우 규칙을 실행 한 제품을 삭제할 때 & 배너 Coupon이 코드가 장바구니의 다른 제품에 속한 것으로 대체 될 것이기 때문에 작동하지 않습니다. 이 버그는 & 배너 배너를 트리거하는 제품 만 카트에있는 경우에만 작동합니다.

누구든지 이에 대한 수정 사항이 있거나 이러한 조건을 복제 할 수있는 경우 적절한 장바구니에서 적절한 제품 삭제를 위해 Magento의 결함에 대해 대화하고 싶습니다. 이는 적절한 견적을 새로 고치는 것을 의미합니다. 마 젠토 엔터프라이즈 에디션

+0

이 버그는 magento BTS에 게시하는 것이 좋습니다. – Zyava

답변

0

에서 발견

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

당신은 그것을 고정 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(); 
     } 
    } 
} 
분명 젠토 캐시 후

과 문제를 반복하려고 - 그것은 사라한다.