2017-09-12 4 views
2

商品がカートに追加されている場合は、ページが読み込まれたときにその商品を特定のカテゴリ(id = 13のカテゴリ)から削除する必要があります。私はかなり長い間このことに取り組んできましたが、それを研究していましたが、私が望む結果を得るために機能を果たすのに役立つものは何も見つかりませんでした。あなたの助けを前にありがとう。Magento - カートから商品を取り除く

+0

ここで共有できるコードを試しましたか? –

+0

@MahmoodRehman私は私を助けることができる何かを見つけなかったので、私は持っていないでしょう。 –

答えて

2

あなたはmagento Observerイベント、つまりcheckout_cart_save_beforeを使用して要件を満たすことができます。私はユーザーが特定のカテゴリのカートに商品を追加することを許可しない次のモジュールを作成することでこれを達成しました。

あなたは、このためのモジュールを作成する必要があります。今すぐ下

<?xml version="1.0"?> 
<config> 
    <modules> 
     <Tanymart_Removecart> 
      <active>true</active> 
      <codePool>community</codePool> 
     </Tanymart_Removecart> 
    </modules> 
</config> 
    1. は、次のコードでモジュールの登録ファイル下にアプリの/ etc /モジュール/ Tanymart_Removecart.xmlを作成します。 コミュニティ codepool、config.xmlファイルを作成します。ファイルパスは今モデルディレクトリ内Observer.phpを作成アプリ/コード/コミュニティ/ Tanymart/Removecartの/ etc/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> 
      
    2. です。次のコードでファイルパスアプリ/コード/コミュニティ/ 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(); 
              } 
             } 
      
          } 
      } 
      

    あなたの特定のカテゴリと上記を交換してください。

    これだけです。 それがあなたを助けてくれることを願っています。

  • +0

    助けてくれてありがとう! –

    関連する問題