compare only those product who have same category

2020-08-05 10:14发布

问题:

i want to compare only those category who have same parent,

for Example, user can compare nokia mobile with samsung mobile but if user want to compare nokia mobile with shoes than it will not allow to compare those products

Help is greatly appriciated

Thank You in Advance

回答1:

In app\code\core\Mage\Catalog\controllers\Product\CompareController.php\ make changes like the following

if ($product->getId() /* && !$product->isSuper() */ ) {
$categoryIds = $product->getCategoryIds();
if (is_array($categoryIds) and count($categoryIds) > 1) {
$cat = Mage::getModel('catalog/category')->load($categoryIds[2]);
if(!isset($_SESSION['compare']))
{
$_SESSION['compare']=$cat->getId();
$_SESSION['comparecount']=0;
}
if($cat->getId() == $_SESSION['compare'] /* || $cat->getId() == 13 ||$cat->getId() == 18 ||$cat->getId() == 35*/ ) ///come back here
{
$_SESSION['comparecount']++;
Mage::getSingleton('catalog/product_compare_list')->addProduct($product);
Mage::getSingleton('catalog/session')->addSuccess(
$this->__('The product %s has been added to comparison list.:)', Mage::helper('core')->escapeHtml($product->getName()))
);
Mage::dispatchEvent('catalog_product_compare_add_product', array('product'=>$product));
}else
{
Mage::getSingleton('catalog/session')->addSuccess(
$this->__('The product %s not possible to add in comparison list.:(', Mage::helper('core')->escapeHtml($product->getName()))
);

}
}}

//// Same file in function removeAction() after condition
if($item->getId()) {
$item->delete();

/// add the following lines
$_SESSION['comparecount']--;
if($_SESSION['comparecount']<1) { unset($_SESSION['comparecount']); unset($_SESSION['compare']); }

//// Same file in function clearAction() after try { $items->clear();

//// add the following lines
unset($_SESSION['compare']);

That’s all guys… Enjoy comparison… here is My blog. enjoy comparison.