致命错误:在非对象上调用成员函数setFinalPrice()?

时间:2013-03-31 05:23:13

标签: magento

当我在magento 1.702上安装名为ajax pro的扩展程序时。当我将产品添加到购物车时,它会显示

致命错误:在第73行的..app\code\core\Mage\Sales\Model\Quote\Item\Abstract.php中的非对象上调用成员函数setFinalPrice()。

虽然我删除了所有这个扩展名的文件和文件夹。当我将产品添加到购物车时。错误仍然存​​在?如何纠正它。谢谢。我清除了所有缓存。

3 个答案:

答案 0 :(得分:4)

在以编程方式创建具有与默认商店ID不同的商店ID的报价后,我收到此错误。

修复是运行此sql(当然,在备份所有sales_flat_quote表之后):

DELETE FROM sales_flat_quote_item;

请注意,由于参照完整性,TRUNCATE sales_flat_quote_item将无效,并且上述命令也将从其他某些sales_flat_quote表中删除链接记录。

在回复评论时 - 如果您无权访问数据库,那么要求您的托管服务提供商给您(大多数提供某种访问权限 - 例如phpmyadmin)您可以将其作为代码片段运行,我想:

<?php
// Save this in Magento root directory. 
require_once( dirname(__FILE__) . ' /app/Mage.php');
umask(0);
Mage::app()->setCurrentStore(0);

$resource = Mage::getSingleton('core/resource');
$dbw = $resource->getConnection('core_write');

$query = "DELETE FROM sales_flat_quote_item;";
$dbw->query($query); 

在现场制作系统上运行它并不是一个好主意 - 现有客户将丢失其购物车中的所有商品 - 但如果您的网站损坏且您没有任何遗失,也许可以试一试!

要备份数据库而无法访问它,https://www.phpmyadmin.net/或类似的工具将对此有所帮助。您也可以使用它直接运行上述查询。

答案 1 :(得分:0)

tibble中删除会话文件。

答案 2 :(得分:0)

如果所有客户都愿意使用,则可以删除 sales_flat_quote_item 表。如果仅对特定客户发生这种情况,请执行以下操作。在这种情况下,所有报价都不会被删除。

  1. sales_flat_quote_address(列名称:customer_id)表中获取客户ID。在这里,您可以获取引起问题的特定报价ID(表中的列名称为quote_id)。

    示例:从sales_flat_quote_address中选择quote_id,其中customer_id = 23423

  2. 现在,转到 sales_flat_quote_item ,然后删除引起问题的特定记录。

    示例:从sales_flat_quote_item中删除,在quote_id = 43535