お支払い方法が削除され、古い注文が読み込まれない


7

概要:magentoのインストールから古い支払い方法の拡張機能を削除しましたが、この支払い方法を使用して行われた注文を表示できず、例外が発生します。

具体的には、私たちの店は、私が別のベンダーから新しいバージョンにまたがるブランドにアップグレードする過程にある、古い支払い方法の拡張機能を使用しています。

古い拡張機能はひどく書かれていて完全に混乱しているので、それを取り除きたかっただけです。新しい拡張機能は同じ支払いプロバイダー用ですが、異なる$ _codeを使用しており、古い拡張機能と互換性がありません。

この支払い方法が使用されている注文をバックエンドまたは顧客アカウントページで表示しようとすると、「要求された支払い方法は利用できません」という例外が発生します。

どうすればこれを回避できますか?これらの古い注文の支払い方法は気にしません。注文がクラッシュすることなく詳細を表示できるようにしたいだけです。

注文の支払い方法コードを新しい支払い方法コードに変更することはできません。互換性がなく、さらにエラーが発生するためです。magentoのニーズを満たすことのみを目的として、古い支払い方法の$ _codeを使用する「スケルトン」支払い方法を作成することは可能ですか?これはどれほど難しいでしょうか?それとも、この問題を回避する別の方法がありますか?これには、古いレガシー拡張機能を動かし続けることは含まれていませんか?

回答:


4

はい、拡張機能を削除して、支払い方法を提供することは可能です。私は最近、置き換えられた拡張機能に対して同じことをしましたSaferpay_Business。拡張機能を削除するだけで、ユーザーは注文履歴を表示できなくなり、古い注文を開くたびにショップバックエンドで例外がスローされます。

残念ながらモジュールの出力を無効にするだけでは十分ではありません。オブザーバーが呼び出され、厄介な副作用を引き起こす可能性があります。今回のケースでは、saferpay拡張機能が追加のjsファイルを追加し、オブザーバーを通じてヘッダーを変更したため、1ページのチェックアウトが正しく機能しませんでした。

拡張機能を取り除くために行ったのは次のとおりです。

  1. 削除され<resources><events>からの<routers>エントリSaferpay_Business/etc/config.xml

  2. セット<show_in_default><show_in_website><show_in_store>Saferpay_Businessの/ etc / System.Xmlの中に0に(管理者で特定の支払い設定を非表示になります)

  3. で削除レイアウト変更/オーバーライドエントリ<layout>からapp/design/base/default/layout/saferpaybe.xml

  4. バージョン情報を変更してSaferpay_Business/etc/config.xml、拡張機能がmagento connectでまだ利用できる場合に拡張機能が更新されないようにします。

手順が異なる場合があります-最初にテスト環境で試してください。


おかげで、これで正しい軌道に乗ることができました。単純なスケルトン拡張を作成して同じ$ _codeを指定し、フロントエンドまたはバックエンドで使用できないことを確認しました。
Turpachull、2015

@Turpachullも良い解決策です。私たちのケースでは、拡張機能が支払いレコードに保存した追加の支払い情報(ccトランザクションIDなど)を保持したいため、より複雑な方法が必要でした。
2015

1

古い支払い拡張機能をそのまま残して、無効にしないのはなぜですか?パフォーマンスについては、[設定]-> [詳細]-> [詳細]に移動して、その出力を無効にすることもできます。


これは一部ではうまくいくかもしれませんが、元のモジュールがあまりにもひどく書かれていて、出力を無効にしても効果がないため、私にはうまくいきません。/ app / etc / modulesで完全に無効にする必要がありました。
Turpachull、2015

0

Magento 2にも同じ問題があり、Gistの詳細に従って解決しました。関連するGoogle検索からのトップリンクの1つだったため、ここに追加します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.