当我点击产品上的“添加到比较”时,会显示一条消息,指出“此类产品已成功添加到比较列表”,但比较产品侧栏显示“您没有要比较的项目”。如果我在print_r($this->helper('catalog/product_compare')->getItemCount())
中执行了template/catalog/product/compare/sidebar.phtml
,则会返回“0
”。
边栏为什么不显示要比较的产品?
信息:Magento 1.4.0.1版 会话似乎有效,我可以将产品添加到购物车,当我浏览网站时,它们将保留在购物车中。
谢谢你, 本
答案 0 :(得分:18)
经过几个小时的搜索后找到了解决方案: 需要重建一个或多个索引。
如果其他人遇到此问题,可以在管理界面中找到触发索引重建的选项,方法是转到系统菜单并选择索引管理。
答案 1 :(得分:2)
我对此文件进行了更改:
应用\代码\核心\法师\目录\助手\产品\ Compare.php
来自第215行。我已经评论了if语句。
/*
if (!$this->_getSession()->hasCatalogCompareItemsCount()) {
$count = 0;
} else {
*/
并在235行。评论结束括号:
/*}*/
它对我有用。
我认为这就是解决方案。
答案 2 :(得分:1)
比较工具可能被破坏的另一个原因是一些网站优化,例如禁用某些事件,如
controller_action_predispatch controller_action_postdispatch
检查etc / 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>
答案 3 :(得分:0)
app\code\core\Mage\Catalog\Helper\Product\Compare.php at line 257
评论if语句不适用于magento社区v 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();
}
答案 4 :(得分:0)
我有同样的问题,因为我的浏览器(chrome),我切换到firefox并且'添加到比较'选项正常工作。