Create an event observer for event sales_quote_merge_before
. Create a custom module and put this in config.xml.
<events>
<sales_quote_merge_before>
<observers>
<cart_validation>
<class>MyModule_CartValidation_Model_Observer</class>
<method>quoteMergeBefore</method>
</cart_update>
</observers>
</sales_quote_merge_before>
</events>
Create Observer.php in [MyModule]/[CartValidation]/Model and put this code.
class MyModule_CartValidation_Model_Observer {
public function quoteMergeBefore($observer) {
// Get Existing Cart Items
$quoteItem = Mage::getSingleton('checkout/cart') - > getQuote() - > getItemsCollection();
//Get current product trying to be added
$product = Mage::getModel('catalog/product')
- > load(Mage::app() - > getRequest() - > getParam('product', 0));
/*
* Your code logic to see restricted items in cart
*
*/
$isRestricted = $this - > hasRestrictedItems($quoteItem, $product);
if ($isRestricted) {
Mage::getSingleton("core/session") - > addError("You can not add this product");
return;
}
}
}
Make sure you implement your restricted products logic in hasRestrictedItems().