我的产品比较链接不起作用。这是在Magento 1.9。
My issues are almost identical to this post,但清除索引不起作用。还有什么我可以尝试的吗?
以下是问题:
当我点击产品上的“添加到比较”时,会显示一条消息,指出“此类产品已成功添加到比较列表”。
然而,比较产品侧边栏显示“您没有要比较的项目。”
我可以告诉表格catalog_compare_item
正在填充正确的访客ID和产品ID,但如果我在template / catalog / product / compare / sidebar.phtml中填写print_r($this->helper('catalog/product_compare')->getItemCount())
,“0 “归来了。
边栏为什么不显示要比较的产品?
答案 0 :(得分:7)
从评论中看,您的Magento数据库看起来没有report_compared_product_index表。
导入以下SQL以在数据库中创建此表结构。
CREATE TABLE IF NOT EXISTS `report_compared_product_index` (
`index_id` bigint(20) unsigned NOT NULL COMMENT 'Index Id',
`visitor_id` int(10) unsigned DEFAULT NULL COMMENT 'Visitor Id',
`customer_id` int(10) unsigned DEFAULT NULL COMMENT 'Customer Id',
`product_id` int(10) unsigned NOT NULL COMMENT 'Product Id',
`store_id` smallint(5) unsigned DEFAULT NULL COMMENT 'Store Id',
`added_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'Added At'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Reports Compared Product Index Table' AUTO_INCREMENT=1 ;
ALTER TABLE `report_compared_product_index`
ADD PRIMARY KEY (`index_id`), ADD UNIQUE KEY `UNQ_REPORT_COMPARED_PRODUCT_INDEX_VISITOR_ID_PRODUCT_ID` (`visitor_id`,`product_id`), ADD UNIQUE KEY `UNQ_REPORT_COMPARED_PRODUCT_INDEX_CUSTOMER_ID_PRODUCT_ID` (`customer_id`,`product_id`), ADD KEY `IDX_REPORT_COMPARED_PRODUCT_INDEX_STORE_ID` (`store_id`), ADD KEY `IDX_REPORT_COMPARED_PRODUCT_INDEX_ADDED_AT` (`added_at`), ADD KEY `IDX_REPORT_COMPARED_PRODUCT_INDEX_PRODUCT_ID` (`product_id`);
如果有帮助,请告诉我。
答案 1 :(得分:1)
第1步:确保数据库中有“report_compared_product_index”表。
第2步:清除缓存并执行索引
第3步:转到以下网址
app\code\core\Mage\Catalog\Helper\Product\Compare.php
找到以下功能
public function calculate($logout = false)
并将代码评论为
// first visit
// if (!$this->_catalogSession->hasCatalogCompareItemsCount() && !$this->_customerId) {
// $count = 0;
// } else {
/** @var $collection Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Compare_Item_Collection */
$collection = Mage::getResourceModel('catalog/product_compare_item_collection')
->useProductItem(true);
if (!$logout && $this->_customerSession->isLoggedIn()) {
$collection->setCustomerId($this->_customerSession->getCustomerId());
} elseif ($this->_customerId) {
$collection->setCustomerId($this->_customerId);
} else {
$collection->setVisitorId($this->_logVisitor->getId());
}
/* Price data is added to consider item stock status using price index */
$collection->addPriceData();
$this->_productVisibility->addVisibleInSiteFilterToCollection($collection);
$count = $collection->getSize();
// }
$this->_catalogSession->setCatalogCompareItemsCount($count);
return $this;
如果您还有任何查询,请告诉我
由于
Sagar的