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

データベースにはすでに多くの注文と請求書のレコードがあるため、これらの注文と請求書の支払い方法がインストールされていないか、無効になっている可能性があると想定しました。したがって、2つの支払い方法がこれらの注文についてシステムによって認識されていないことを分析し、古い管理者と比較します。

  1. アマゾンの支払い。
  2. 電信送金。

これに関連するすべての注文には、詳細ページに問題があります。後で、支払いが'sales_flat_order_payments'テーブルに保存され、フィールドが' method'であることがわかりましたが、フィールドに値があります。

次に、電信送金とアマゾン決済を使用してトリックとテスト注文を行いました(アマゾン決済用の新しいモジュールをインストールしました)。電信送金については、それに関連する請求書の詳細ページが表示されるので、確信しています。以前は開店していなかったため、販売と電信送金に関連するデータベーステーブルに競合があり、このトランザクションを実行することで競合が解決されました

アマゾンの場合、新しい注文の値が異なるため、古い値を新しいアマゾンの支払い値に置き換えました。

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

これで、Amazonに関連するすべての請求書の詳細ページにエラーはありません。

于 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.4xではなく1.7xからのものであることを確認してください。

于 2012-11-07T12:46:46.320 に答える