2017-09-12 5 views
2

해당 카테고리의 장바구니에 제품이 추가 된 경우 페이지가로드 될 때 특정 카테고리 (id = 13 인 카테고리)에서 장바구니 제품을 제거해야합니다. 나는 이것에 대해 꽤 오랫동안 연구 해왔고 그것을 연구했지만, 내가 원하는 결과를 얻기 위해 함수를 수행하는 데 도움이 될만한 것을 찾지 못했습니다. 귀하의 도움에 미리 감사드립니다.Magento - 카트에서 제품 제거

+0

여기에 공유 할 수있는 코드를 사용해 보셨습니까? –

+0

@MahmoodRehman 나는 나를 도울 수있는 것을 찾지 못했기 때문에 나는 가지지 않을 것이다. –

답변

2

Magento Observer 이벤트 즉, checkout_cart_save_before을 사용하여 요구 사항을 충족시킬 수 있습니다. 나는 사용자가 특정 카테고리의 카트에 제품을 추가 할 수없는 다음 모듈을 생성함으로써이를 달성했다.

당신은 이것에 대한 모듈을 만들어야합니다

  1. 는 다음 코드를 사용하여/응용 프로그램을/etc/모듈에서 Tanymart_Removecart.xml을 모듈 등록 파일을 만듭니다에서 지금

    <?xml version="1.0"?> 
    <config> 
        <modules> 
         <Tanymart_Removecart> 
          <active>true</active> 
          <codePool>community</codePool> 
         </Tanymart_Removecart> 
        </modules> 
    </config> 
    
  2. 커뮤니티 codepool에서 config.xml 파일을 만듭니다. 파일 경로는 응용 프로그램/코드/사회/Tanymart/Removecart/등등/config.xml에

    <?xml version="1.0"?> 
    <config> 
        <modules> 
         <Tanymart_Removecart> 
          <version>0.1.0</version> 
         </Tanymart_Removecart> 
        </modules> 
        <global> 
         <models> 
          <tanyremovecart> 
           <class>Tanymart_Removecart_Model</class> 
          </tanyremovecart> 
         </models> 
         <events> 
          <checkout_cart_save_before> 
           <observers> 
            <remove_category_item> 
             <class>Tanymart_Removecart_Model_Observer</class> 
             <method>removeCategoryCart</method> 
            </remove_category_item> 
           </observers> 
          </checkout_cart_save_before> 
         </events> 
        </global> 
        <frontend> 
         <routers> 
          <tanyremovecart> 
           <use>standard</use> 
           <args> 
            <module>Tanymart_Removecart</module> 
            <frontName>tanyremovecart</frontName> 
           </args> 
          </tanyremovecart> 
         </routers> 
         </frontend> 
    </config> 
    
  3. 지금 모델 디렉토리 내에 Observer.php을 만드는 것입니다. 파일 경로 응용 프로그램/코드/사회/Tanymart/Removecart/모델 다음 코드/Observer.php :

<?php 
/** 
* @category Tanymart 
* @package  Tanymart_Removecart 
* @author  Bachcha Singh 
* @copyright Copyright (c) 2017 
* @license  http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) 
*/ 
class Tanymart_Removecart_Model_Observer { 
    public function removeCategoryCart($observer){ 
     $items = $observer->getEvent()->getCart()->getItems(); 
     $oCheckout = Mage::getSingleton('checkout/session'); 
     $oQuote = $oCheckout->getQuote(); 
     foreach($items as $item) { 
       $_product = $item->getProduct(); 
        if(in_array(13, $_product->getCategoryIds())) { 
          $itemId = $item->getItemId(); 
           $oQuote->removeItem($itemId)->save(); 
        } 
       } 

    } 
} 
사용자의 특정 카테고리와 위의 13를 교체합니다.

그게 전부입니다. 희망이 있으면 도움이 될 것입니다.

+0

도움을 주셔서 감사합니다. –

관련 문제