Created module like No other products adds to cart if restricted product available in cart and vice versa.
Module :
app/etc/modules/Brst_Test.xml
<?xml version="1.0"?>
<config>
<modules>
<Brst_Test>
<active>true</active>
<codePool>community</codePool>
</Brst_Test>
</modules>
</config>
app/code/community/Brst/Test/Model/Observer.php
<?php
ini_set('display_errors', '1');
// Mage::log('Hy observer called', null, 'logfile.log');
class Brst_Test_Model_Observer
{
//Put any event as per your requirement
public function logCartAdd() { $product = Mage::getModel('catalog/product')
->load(Mage::app()->getRequest()->getParam('product', 0)); $cart_qty = (int) Mage::getModel('checkout/cart')->getQuote()->getItemsQty();
if ($product->getId()==31588 && cart_qty > 0) {
Mage::throwException("You can not add This special Product, empty cart before add it");
}
// $quote = Mage::getSingleton('checkout/session')->getQuote();
// if ($quote->hasProductId(2))
//{
// Mage::getSingleton("core/session")->addError("Cart has Special Product you can not add another");
// return;
// } $quote = Mage::getModel('checkout/cart')->getQuote();
foreach ($quote->getAllItems() as $item) { $productId = $item->getProductId();
if($productId==31588){
Mage::throwException("Cart has Special Product you can not add another");
}
}
}
}
?>
app/code/community/Brst/Test/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<Brst_Test>
<version>0.1.0</version>
</Brst_Test>
</modules>
<global>
<models>
<brst_test>
<class>Brst_Test_Model</class>
</brst_test>
</models>
</global>
<frontend>
<events>
<controller_action_predispatch_checkout_cart_add>
<observers>
<brst_test_log_cart_add>
<class>brst_test/observer</class>
<method>logCartAdd</method>
</brst_test_log_cart_add>
</observers>
</controller_action_predispatch_checkout_cart_add>
</events>
</frontend>
</config>
Not working, how to solve the error?