0

我最近将 magento 从 1.4.0.1 升级到 1.7.0.2。现在我在发票详细信息页面上遇到错误。

致命错误:在第 151 行对 D:\xampp\htdocs\magento171\app\code\core\Mage\Adminhtml\controllers\Sales\Order\InvoiceController.php 中的非对象调用成员函数 updateBackButtonUrl()

第 151 行的代码是

 $this->getLayout()->getBlock('sales_invoice_view')->updateBackButtonUrl($this->getRequest()->getParam('come_from'));

任何人都可以帮忙,如何解决这个问题。

4

2 回答 2

3

因为我最近更新了磁电机,有可能会更换控制器或查看文件,所以我用新的新版本替换了所有文件,但问题仍然存在。

然后我从 exception.log 文件中找到

异常“Mage_Core_Exception”,带有消息“请求的付款方式不可用。” 在 D:\Mage.php:594

由于数据库中已经有许多订单和发票记录,所以我假设这些订单和发票的付款方式可能未安装或可能被禁用。所以和老管理员分析比较,这些订单的两种支付方式都没有被系统识别。

  1. 亚马逊付款。
  2. 有线传输。

与此相关的所有订单在详细页面中都有问题。后来我发现付款存储在“sales_flat_order_payments”表中,该字段是“method”,但是当我看到它有值的字段时。

然后我做了一个技巧并使用电汇和亚马逊支付完成了一些测试订单(我已经为亚马逊支付安装了一个新模块),所以对于电汇现在我可以看到与之相关的发票的详细页面,所以我确定它以前没有打开,我们在与销售和有线转账相关的数据库表中存在冲突,通过执行此交易,冲突得到了解决

对于亚马逊来说,新订单的价值不同,所以我用新的亚马逊支付价值替换了旧价值。

UPDATE sales_flat_order_payment SET method='checkoutbyamazon_sandbox' WHERE method='amazonpayments_cba';

现在所有与亚马逊相关的发票的详细信息页面都没有错误。

于 2012-11-10T11:49:45.583 回答
0

这个按钮在 1.7x 中工作,所以它是您的设置,而不是 Magento 中的错误。要弄清楚发生了什么:

检查没有重写 Mage_Adminhtml_Block_Sales_Order_Invoice_View 的模块,并确保 InvoiceController.php 文件的 app/code/local 中没有副本。

通过“消除过程”,您可以在 app/etc/modules 中禁用添加模块。

还要确保控制器文件和 app/code/core/Mage/Adminhtml/Block/Sales/Order/Invoice/View.php 来自 1.7x 而不是 1.4x。

于 2012-11-07T12:46:46.320 回答