2010-04-07 85 views
5

当我点击产品上的“添加到比较”时,出现一条消息,指出“已成功添加到比较列表中的此类产品”,但比较产品侧栏显示“你没有物品可以比较。“如果我在template/catalog/product/compare/sidebar.phtml中执行print_r($this->helper('catalog/product_compare')->getItemCount()),则返回“0”。比较产品侧边栏项目不显示产品

为什么侧边栏不显示要比较的产品?

信息:Magento 1.4.0.1版本 会话似乎工作,我可以添加产品到购物车,他们将留在购物车,因为我在网站周围导航。

谢谢 本

+0

线索#1:如果我将磁盘上的文件保留在磁盘上时切换到干净(或基本干净)的数据库副本,则产品比较工作。所以,它不能是一个数据库存储的配置问题。 – 2010-04-07 14:53:56

回答

18

发现了几个小时的搜索后的溶液: 一个或多个需要重建索引。

万一别人遇到这种问题,引发索引重建的选项在管理界面通过转到系统菜单,然后选择索引管理发现。

+0

我也遇到过这个问题。而reindex解决了这个问题,但只是暂时的。你遇到了同样的问题吗?如果是这样,你的修复是什么? – mattalxndr 2010-11-01 00:34:47

+0

@Ben Gribaudo非常感谢发布解决方案,我只是浪费了几个小时寻找解决方案,但没有找到,突然间我访问了您的问题,并阅读您的答案,它完美的工作。 现在我有一个疑问,如果经常需要重建索引,那么商店访问者/用户可能面临同样的问题,这是不好的,有没有永久解决这个问题? – 2011-11-18 02:54:26

+0

谢谢,也为我工作。 – 2013-08-29 13:04:33

2

我做了这个文件的更改:

应用程序\代码\核心\法师\目录\辅助\产品\ Compare.php

从线215我已经如果说出了这个评论。

/* 
if (!$this->_getSession()->hasCatalogCompareItemsCount()) { 
    $count = 0; 
} else { 
*/ 

和线235评论右括号指出:

/*}*/ 

它为我工作。

我认为这就是解决方案。

0
app\code\core\Mage\Catalog\Helper\Product\Compare.php at line 257 

评论,如果语句不上的Magento社区诉工作1.7.0.2

/** 
* Retrieve count of items in compare list 
* 
* @return int 
*/ 
public function getItemCount() 
{ 

    if (!$this->_getSession()->hasCatalogCompareItemsCount()) { 
     $this->calculate(); 
    } 


    return $this->_getSession()->getCatalogCompareItemsCount(); 
} 
0

我有同样的问题,这是因为我的浏览器(Chrome),我改用Firefox和'添加到比较'选项工作正常。

1

是比较工具可能被打破的另一个原因是一些网站的优化,例如禁用某些事件,比如

controller_action_predispatch controller_action_postdispatch

检查等/ local.xml中

<frontend> 
    <events> 
     <controller_action_predispatch> 
      <observers><log><type>disabled</type></log></observers> 
     </controller_action_predispatch> 
     <controller_action_postdispatch> 
      <observers><log><type>disabled</type></log></observers> 
     </controller_action_postdispatch> 
    </events> 
</frontend> 

,并删除

 <controller_action_predispatch> 
      <observers><log><type>disabled</type></log></observers> 
     </controller_action_predispatch> 
     <controller_action_postdispatch> 
      <observers><log><type>disabled</type></log></observers> 
     </controller_action_postdispatch>