Condition: I have restricted category of products [category id = 680, 894, 895], this category of products should be purchase alone, not mixed with other products.

Workout: Case 1: If cart had other products, if the customer tries to add restricted category products trigger observer like not eligible to add to cart and display a message like If you want this product, Purchase alone not mixed with other Products

case 2: If cart had a restricted category of products if customer try to add non-restricted products trigger observer like not eligible to add to cart and display a message like Cart has Special Product you can not add another

code :

app/etc/modules/Gta_KolupadiRestrict.xml

<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Gta_KolupadiRestrict>
<active>true</active>
<codepool>local</codepool>
</Gta_KolupadiRestrict>
</modules>
</config>

app/code/local/Gta/KolupadiRestrict/etc/config.xml

<?xml version="1.0"?>
<config>
<modules>
<Gta_KolupadiRestrict>
<version>1.0.0</version>
</Gta_KolupadiRestrict>
</modules>
<global>
<models>
<gta_kolupadirestrict>
<class>Gta_KolupadiRestrict_Model</class>
</gta_kolupadirestrict>
</models>
<events>
<checkout_cart_product_add_after>
<observers>
<Gta_KolupadiRestrict_Model_Observer>

<type>singleton</type>
<class>Kolupadi_Restrict_Model_Observer</class>
<method>cartevent</method>
</Gta_KolupadiRestrict_Model_Observer>
</observers>
</checkout_cart_product_add_after>

</events>
</global>

</config>

app/code/local/Gta/KolupadiRestrict/Model/Observer.php

<?php
Mage::log('fine dude', null, 'logfile.log');
//create class
class Gta_KolupadiRestrict_Model_Observer
{

    //create function
    public function cartevent(Varien_Event_Observer $observer)
    {
        $category_id = array(680, 894, 895) ; //category ids

        $category_products  = Mage::getModel('catalog/category')
                                    ->setWebsiteId(2);           // load website id
                                    ->load($category_id);        // load category 

        // check cart qty status                            
        $cart_qty = (int) Mage::getModel('checkout/cart')->getQuote()->getItemQty();  

        //logic
        if($category_products && $cart_qty > 0  )
        {
            Mage::throwException("If you want Kolu Padi, Purchase alone not mixed with other Products");    
        }

         //check if cart have products 
         $quote = Mage::getModel('checkout/cart')->getQuote();
         foreach($quote->getAllItems() as $item)
         {
            $productId  = $item->getCategoryId();

            if($productId == $category_id)
            {
                Mage::throwException("Cart has Special Product you can not add another");
            }
         }      
    }       
}

?>

    Write a Reply...