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");
}
}
}
}
?>
Observer not trigger. Does anyone help me?