Zahlungsmethode entfernt, alte Bestellungen werden nicht geladen

7

Synopsis: Ich habe eine alte Erweiterung der Zahlungsmethode aus meiner Magento-Installation gelöscht, und jetzt können Bestellungen, die mit dieser Zahlungsmethode getätigt wurden, nicht angezeigt werden und führen zu einer Ausnahme.

Insbesondere hat unser Geschäft eine alte Zahlungsmethodenerweiterung verwendet, die ich gerade auf eine brandneue Version eines anderen Anbieters aktualisiere.

Die alte Erweiterung ist schlecht geschrieben und ein komplettes Durcheinander, also wollte ich sie einfach loswerden. Die neue Erweiterung gilt für denselben Zahlungsanbieter, verwendet jedoch einen anderen $ _code und ist nicht mit der alten Erweiterung kompatibel.

Der Versuch, eine Bestellung anzuzeigen, bei der diese Zahlungsmethode verwendet wird, entweder im Back-End oder auf der Kundenkontoseite, führt zu einer Ausnahme: "Die angeforderte Zahlungsmethode ist nicht verfügbar."

Wie komme ich darum herum? Die Zahlungsmethode für diese alten Bestellungen ist mir egal. Ich möchte nur weitere Details zur Bestellung anzeigen können, ohne dass diese abstürzt.

Ich kann den Zahlungsmethodencode für die Bestellungen selbst nicht in den neuen Zahlungsmethodencode ändern, da diese nicht kompatibel sind und weitere Fehler verursachen. Ist es möglich, eine "Skelett" -Zahlungsmethode zu erstellen, die den $ _code aus der alten Zahlungsmethode verwendet, um nur die Magento-Anforderungen zu erfüllen, und wie schwierig wäre dies? Oder gibt es einen anderen Weg, um dieses Problem zu umgehen, bei dem ich die alte Legacy-Erweiterung nicht beibehalten muss?

Turpachull
quelle

Antworten:

4

Ja, es ist möglich, die Erweiterung zu entfernen, um nur die Zahlungsmethode anzugeben. Ich habe vor kurzem das gleiche für die ersetzte Erweiterung getan Saferpay_Business. Durch einfaches Entfernen der Erweiterung wird verhindert, dass die Benutzer ihren Bestellverlauf anzeigen und eine Ausnahme im Shop-Backend auslösen, wenn eine alte Bestellung geöffnet wird.

Es reicht leider nicht aus, nur den Modulausgang zu deaktivieren: Es werden immer noch Beobachter angerufen, was zu unangenehmen Nebenwirkungen führen kann. In unserem Fall fügte die Saferpay-Erweiterung zusätzliche JS-Dateien hinzu und änderte die Header über einen Beobachter, wodurch die einseitige Prüfung nicht ordnungsgemäß funktionierte.

Folgendes haben wir getan, um die Erweiterung zu entfernen:

  1. entfernt <resources>, <events>und die <routers>Einträge ausSaferpay_Business/etc/config.xml

  2. Satz <show_in_default>, <show_in_website>, <show_in_store>0 in Saferpay_Business / etc / system.xml (die spezifischen Zahlungseinstellungen im Admin verstecken)

  3. Layoutänderungen entfernt / Einträge überschreiben von <layout>ausapp/design/base/default/layout/saferpaybe.xml

  4. Ändern Sie die Versionsinformationen in Saferpay_Business/etc/config.xml, um zu verhindern, dass die Erweiterung aktualisiert wird, wenn sie in Magento Connect noch verfügbar ist.

Ihre Schritte können abweichen - versuchen Sie es zuerst in einer Testumgebung.

abwechseln
quelle
Danke, das hat mich auf den richtigen Weg gebracht. Ich habe eine einfache Skeletterweiterung erstellt und ihr den gleichen $ _code gegeben und sichergestellt, dass sie am vorderen oder hinteren Ende nicht verfügbar ist.
Turpachull
@Turpachull das ist auch eine gute Lösung. In unserem Fall wollten wir weiterhin die zusätzlichen Zahlungsinformationen (wie die CC-Transaktions-ID) behalten, die die Erweiterung in den Zahlungsaufzeichnungen gespeichert hat, und dies auf kompliziertere Weise.
Wechsel
1

Warum behalten Sie die alte Zahlungserweiterung nicht bei und deaktivieren sie einfach? Für die Leistung können Sie auch Konfiguration -> Erweitert -> Erweitert wählen, um die Ausgabe zu deaktivieren.

Tran Dinh Khanh
quelle
Dies mag für einige funktionieren, aber für mich nicht, da das ursprüngliche Modul so schlecht geschrieben wurde, dass das Deaktivieren der Ausgabe keine Auswirkungen hatte. Musste es durch / app / etc / modules komplett deaktivieren.
Turpachull
0

Ich hatte das gleiche Problem in Magento 2 und löste es gemäß den Details in meinem Gist . Hinzufügen hier, da es einer der Top-Links von relevanten Google-Suchanfragen war.

cmtickle
quelle