Das beliebte Shopsystem Magento bietet die Möglichkeit, Bestellungen auch manuell im Backend aufzugeben. Diese Funktion ist besonders für Unternehmen geeignet, die Bestellungen auch per Telefon aufnehmen. Möchte man dafür eine extra Zahlungsart nutzen, die Kunden bei einer Bestellung im Online-Shop nicht sehen sollen, stößt man allerdings schnell an die Grenze des Machbaren. Wir zeigen Ihnen, wie Sie dennoch eine Zahlungsart nur für das Backend freischalten können.

Wo finde ich die Einstellungen dafür in Magento?

Leider bietet das Shopsystem selbst im Backend keine Möglichkeit, den Ausgabeort von Zahlungsarten zu bestimmen. Dafür müssen Sie eine Anpassung im Code des Zahlungsmoduls vornehmen. Aber keine Angst, es handelt sich dabei nur um eine kleine Änderung.

Wie kann die Zahlungsart angepasst werden?

Jede Zahlungsart, die in einem Magento Shop integriert ist, sei es als extra Plugin oder als Core-Funktionalität, erweitert in jedem Fall die Klasse Mage_Payment_Model_Method_Abstract und kann deshalb auch auf folgende Klasseneigenschaften zugreifen:

$_canUseInternal
$_canUseCheckout

Während $_canUseInternal angibt, ob die Zahlungsart für manuelle Bestellungen im Backend genutzt werden kann, ist $_canUseCheckout dafür zuständig, dass die Zahlungsart für die Kunden im Frontend angezeigt werden darf. Diese Eigenschaften müssten also für die entsprechende Zahlungsart angepasst werden.

In welchem Verzeichnis finde ich die Zahlungsarten?

Der folgende Pfad soll als Beispiel für die Zahlungsart „Vorkasse“ dienen: „/app/code/core/Mage/Payment/Model/Method/Banktransfer.php“.

Damit Ihre Änderungen Updatefähig bleiben, empfiehlt es sich jedoch, die Klasse der Zahlungsart vorher in das entsprechende lokale Verzeichnis zu kopieren: „/app/code/local/Mage/Payment/Model/Method/Banktransfer.php“.

Durchführung der Änderung

Öffnen Sie die kopierte Datei mit einem Editor und ergänzen Sie die Klasse um folgende Eigenschaften:

protected $_canUseInternal = true;
protected $_canUseCheckout = false;

Speichern Sie die Datei und laden Sie diese zurück auf den Server, falls dies noch nicht passiert ist. Vergessen Sie auch nicht den Cache zu leeren, damit die Änderung überall korrekt angezeigt wird. Hat alles funktioniert, wird diese Zahlungsart dem Kunden im Frontend nun nicht mehr zur Auswahl angeboten. Bei der Aufgabe einer Bestellung im Backend sollte die Zahlungsart nun allerdings zur Verfügung stehen.

Mit anderen Zahlungsarten können Sie genau so verfahren. Ändern sie die genannten Eigenschaften einfach nach Belieben ab und erstellen Sie somit z.B. Zahlungsarten, die Sie für die telefonische Aufnahme von Bestellungen verwenden können. Wir wünschen Ihnen viel Erfolg.