我对着在Magento的一个问题。 我有它含有约4500多种产品功能的网站Magento的一个商店。 我想重新索引产品。
我通过Magento的默认功能CSV有进口4500产品。 进口产品的变化没有显示在正面之后,所以我去了指标管理,我发现有两个指标都在处理状态
1个产品属性2产品平面数据
我已经做了以下步骤:
1尝试重新指数从管理侧系统 - >索引管理它
2尝试通过调用PHP脚本做手工
require_once 'app/Mage.php';
umask( 0 );
Mage :: app( "default" );
$process = Mage::getSingleton('index/indexer')->getProcessByCode('catalog_product_flat');
$process->reindexAll();
要么
$indexingProcesses = Mage::getSingleton('index/indexer')->getProcessesCollection();
foreach ($indexingProcesses as $process) {
$process->reindexEverything();
}
也改变了VAR /锁文件夹的权限为777,并重新命名文件夹,并尝试删除它在这个锁文件夹中创建,但没有得到解决的.lock文件。
我没有SSH权利。 那么,有没有其他解决办法,这将帮助我解决重新索引问题。
原因
有catalog_product_flat_%表中inexisting /删除产品引用。
解
尝试截断在MySQL控制台或经由phpMyAdmin的'catalog_product_flat_%'表(catalog_product_flat_1,catalog_product_flat_2,catalog_product_flat_3等):
mysql > truncate table ´catalog_product_flat_1´;
mysql > truncate table ´catalog_product_flat_2´;
mysql > truncate table ´catalog_product_flat_3´;
然后重新索引。
注:虽然下面的答案了,以我的经验,一直是有关这种类型的问题,它不会似乎是目前由提问者经历的情形的原因
Processing
是指以下两种情况之一:
所有这些Processing
真正的意思是“Magento的未能成功收购这些索引工作的锁”。 第一种情况是琐碎和无趣。 等待了几个小时,如果同样的索引仍列为Processing
,那么你可能有第二种情况。
检查锁定文件,下找到的权限var/locks
在你的Magento根。 他们是否被作为Web服务器正在运行的同一个用户拥有? 如果不是,你是绝对肯定的是,指标不再运行 ,可以安全地删除锁。 下一步是找出为什么锁了摆在首位的错误的权限。 也就是说,这可能是更好曾与你的主机,如果你没有一个谈话ssh
访问。
从分度器的错误将被捕获并默认情况下不记录。 典型的解决方法是使用CLI重指数的工具; 这将是非常详细的任何错误。
例如。
php shell/indexer.php --reindex ...
但考虑到你没有SSH访问-你可以看看indexer.php
文件,看看它们是如何产生的错误,或者你可以只推出shell_exec
或exec
从一个基于Web的PHP脚本,将模拟CLI。
我是不是能够重新索引catalog_product_flat
索引化处理。 呆了一天,并试图在互联网上的几个解决方案之后。 我能解决这个问题。 下面是步骤。
- 创建其面对索引问题Magento的DB的克隆。
- 转储数据库到新创建的数据库。
- 截断表
catalog_product_flat_1
单店和多个商店将有多个表catalog_product_flat_*
,其中*
是店铺ID。 这里截断所有表。 - 在mangento运行实例指向新创建的数据库,并配置DATABSE,使网站运行正常。
- 现在运行命令
php document_root/shell/indexer.php --reindex catalog_product_flat
或尝试从管理员重新索引。 php document_root/shell/indexer.php --reindexall
用于重建索引的所有过程。
我遇到同样的问题,创造新的客户群时,我无法重新索引的价格。
发现这里的解决方案http://www.magikcommerce.com/blog/how-to-resolve-magento-reindexing-errors-in-your-magento-store/
这里的程序:
找到VAR /锁目录,删除该目录下的所有文件。 这将清除所有的锁重新索引再次发生。
现在,登录到您的MysQSL / phpMyAdmin来运行下面的MySQL查询(请确保您已经采取完全备份犯这个MySQL查询之前)
DELETE CPOP * FROM catalog_product_option_price AS CPOP INNER JOIN catalog_product_option AS CPO ON cpo.option_id = cpop.option_id WHERE cpo.type = '复选框' OR cpo.type = '无线电' OR cpo.type = 'DROP_DOWN'。
DELETE cpotp.* FROM catalog_product_option_type_price AS cpotp INNER JOIN catalog_product_option_type_value AS cpotv ON cpotv.option_type_id = cpotp.option_type_id INNER JOIN catalog_product_option AS cpo ON cpotv.option_id = cpo.option_id WHERE cpo.type <> 'checkbox' AND cpo.type <> 'radio' AND cpo.type <> 'drop_down';
重新登录到您的Magento管理面板,进入系统选项卡>管理指数再次创下指数,你会发现没有这样的错误,会再次出现。 如果重新索引在未来停止解析,您可以再次遵循相同的步骤Magento
ReIndexing
的问题。