Magento 1.6.2无法重新索引产品价格

时间:2012-03-31 13:01:54

标签: magento indexing

亲爱的社区,我需要你的帮助。

花费大量时间处理一个看起来很容易修复的问题。无法重新定价。价格将在产品视图页面上更改,但不会在类别视图中更改。

该错误仅影响configeruble产品的类别视图价格。

我做了:

  • 使用magento-cleanup.php
  • 删除所有商店
  • 删除所有产品
  • 重复数据库(php myadmin)

试图找到数据库修复工具但似乎不再可以从magento站点获得???

在例外日志下面:

2012-03-31T12:02:12 + 00:00调试(7):异常消息:SQLSTATE [21S01]:插入值列表与列列表不匹配:1136列数与第1行的值计数不匹配

追踪:

#0 C:\xampp\htdocs\lib\Varien\Db\Statement\Pdo\Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)
#1 C:\xampp\htdocs\lib\Zend\Db\Statement.php(300): Varien_Db_Statement_Pdo_Mysql->_execute(Array)


#2 C:\xampp\htdocs\lib\Zend\Db\Adapter\Abstract.php(479): Zend_Db_Statement->execute(Array)


#3 C:\xampp\htdocs\lib\Zend\Db\Adapter\Pdo\Abstract.php(238): Zend_Db_Adapter_Abstract->query('INSERT INTO `ca...', Array)

#4 C:\xampp\htdocs\lib\Varien\Db\Adapter\Pdo\Mysql.php(389): Zend_Db_Adapter_Pdo_Abstract->query('INSERT INTO `ca...', Array)


#5 C:\xampp\htdocs\app\code\core\Mage\Catalog\Model\Resource\Product\Indexer\Price\Default.php(278): Varien_Db_Adapter_Pdo_Mysql->query('INSERT INTO `ca...')


#6 C:\xampp\htdocs\app\code\core\Mage\Downloadable\Model\Resource\Indexer\Price.php(47): Mage_Catalog_Model_Resource_Product_Indexer_Price_Default->_prepareFinalPriceData()


#7 C:\xampp\htdocs\app\code\core\Mage\Catalog\Model\Resource\Product\Indexer\Price.php(381): Mage_Downloadable_Model_Resource_Indexer_Price->reindexAll()


#8 C:\xampp\htdocs\app\code\core\Mage\Index\Model\Indexer\Abstract.php(143): Mage_Catalog_Model_Resource_Product_Indexer_Price->reindexAll()


#9 C:\xampp\htdocs\app\code\core\Mage\Index\Model\Process.php(207): Mage_Index_Model_Indexer_Abstract->reindexAll()
#10 C:\xampp\htdocs\app\code\core\Mage\Index\Model\Process.php(253): Mage_Index_Model_Process->reindexAll()


#11 C:\xampp\htdocs\app\code\core\Mage\Index\controllers\Adminhtml\ProcessController.php(124): Mage_Index_Model_Process->reindexEverything()


#12 C:\xampp\htdocs\app\code\core\Mage\Core\Controller\Varien\Action.php(420): Mage_Index_Adminhtml_ProcessController->reindexProcessAction()


#13 C:\xampp\htdocs\app\code\core\Mage\Core\Controller\Varien\Router\Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('reindexProcess')


#14 C:\xampp\htdocs\app\code\core\Mage\Core\Controller\Varien\Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))

#15 C:\xampp\htdocs\app\code\core\Mage\Core\Model\App.php(349): Mage_Core_Controller_Varien_Front->dispatch()


#16 C:\xampp\htdocs\app\Mage.php(640): Mage_Core_Model_App->run(Array)


#17 C:\xampp\htdocs\index.php(83): Mage::run('', 'store')


#18 {main}

有人可以对此有所了解吗?

THX!

2 个答案:

答案 0 :(得分:0)

问题对我来说很棘手,我昨天尝试了Magento 1.7并在升级后添加了一些额外的列(特别是group_price)。我切换到1.6.2,因为有几个错误,但列仍在这里。所以我不得不在数据库中手动删除创建的列。

希望这有帮助!

答案 1 :(得分:0)

我使用传统(有效)的方式将几个Magento CE(1.4)升级到Magento EE(1.11)。但我发现在重新索引价格时存在一个重要问题,导致Magento无法做到这一点。

在Magento Boards上阅读这篇文章我发现问题(在我的情况下)与catalog_product_entity_tier_price表中的错误有关,其中一些条目与不再存在的产品有关。这是实际的错误,当试图重新索引产品价格时,Magento会抛出这样的信息:

There was a problem with reindexing process.

如何解决

所以你要解决这个问题。您必须删除catalog_product_entity_tier_price表中与不再存在的产品相关的所有条目。您可以手动执行此操作,也可以使用我创建的以下脚本。它真的很容易使用。

[download from here][1]

在该文件中,您会找到:

The script: clean_tier_prices.php
A library to connect in a really easy way to the db

请按照以下步骤操作:

Make a copy of your database (just in case)
Uncompress the zip file in your magento base directory
Edit the lib/db.php file and put there your connection settings (db user, user pass and db)
Open the browser and go to http://yourmagentopath.com/clean_tier_prices.php
You’ll see wich references have been deleted from the catalog_product_entity_tier_price table
Try reindexing again in your Magento backoffice

重要说明:您使用此脚本需要您自担风险。在应用之前制作数据库的副本。如果你改进了这个,请与我和世界其他地方分享! download from here