Magento – Zahlungsmethode nur im Backend anzeigen für Admin nicht aber im Frontend

BildWer häufiger direkte Bestellungen über das Backend aufnimmt und z.B. telefonische Kreditkartenbuchungen durchführt, dem wird auffallen, dass es schwierig ist eine der vorhandenen Zahlungsmethoden zu nehmen. Schön wäre daher eine Zahlungsmethode z.B. “Zahlung per telefonischer Kreditkartenbuchung”, die nur den Administratoren nicht aber den Shopbesuchern zur Verfügung steht.

Es gibt hier viele Extensions und Anleitungen, um dies hinzubekommen. Die einfachste und daher hier auch dargestellte ist aber folgende:

Wir verwenden für die “neue” Zahlungsmethode die von Magento mitgebrachte Methode “Purchase Order”. Deren Code lautet “purchaseorder”.

Nun wird die

methods.phtml des jeweiligen Templates geöffnet. Z.B. im Ordner

app/design/frontend/[base oder default]/[IhrTemplate]/template/checkout/onepage/payment

Dort dann folgende Zeile einfügen

<?php if($_code==”purchaseorder”){ continue; } ?>

Hier treffen wir wieder auf den o.g. Code. Soll es eine andere Zahlungsart sein, einfach den Code von dieser verwenden (lässt sich z.B. sehr einfach mit Firebug rausfinden).

Diese Zeile wird unter

<?php foreach ($this->getMethods() as $_method): $_code = $_method->getCode() ?>

und vor

<dt>

eingefügt.

Anschließend evtl. Cache leeren und die neue Zahlungsmethode taucht im Backend auf.

Noch ein Tipp:

Die Datei purchaseorder.phtml

aus dem Ordner

app/design/adminhtml/default/default/template/payment/form

nehmen und den Bereich

<li>
<div class=”input-box”>
<label for=”po_number”><?php echo Mage::helper(‘payment’)->__(‘Payment by phone’) ?> <span class=”required”>*</span></label><br/>
<input type=”text” id=”po_number” name=”payment[po_number]” title=”<?php echo Mage::helper(‘payment’)->__(“Payment by phone”) ?>” class=”required-entry input-text” value=”<?php echo $this->getInfoData(‘po_number’) ?>”/>
</div>
</li>

auskommentieren oder löschen. Somit wird im Backend dann die Input Box mit der Auftragsnummer nicht mehr benötigt und auch nicht mehr angezeigt.

Um dann vollkommen abzuschließen noch die Übersetzungen anpassen. Also entweder den leichten Weg gehen und “Purchase Order” so übersetzen wie man es will oder die entsprechenden Dateien ändern, dass dort nicht mehr “Purchase Order” sondern z.B. “Payment by phone” o.ä. zu übersetzen ist.

Genutzt in Magento Version 1.4.1.1 Kommentare? Ergänzungen? Hinweise? Gerne!

Published by Covos

Seit 2009 arbeite ich nun intensiv mit Magento. Begonnen habe ich mit der Erstellung und dem Betrieb von B2C-Shops. Ausgeweitet wurde dies durch meine Tätigkeit im Logistik-Sektor. Hieraus entstanden erste spezialisierte B2E-Systeme. Heute arbeite ich tag-täglich mit spannenden B2C-, B2B- und B2E-Projekten und berichte in diesem Blog über Herausforderungen und gebe Insider-Tipps.

2 comments on “Magento – Zahlungsmethode nur im Backend anzeigen für Admin nicht aber im Frontend”

  1. Gute Anleitung, danke!

    Das eigentliche Problem bei der Umsetzung der Möglichkeit zur telefonischen Bestellaufnahme ist aber, dass z.B. Zahlung per Kreditkarte nicht wirklich im Backend unterstützt wird. Die Anbeiter, die ich kenne, unterstützen das jedenfalls nicht. Denn es reicht ja nicht, einfach die Kreditkartendaten aufzunehmen – man muss diese ja auch gleich wie im Frontend auch eingeben und verifizieren können.

    VG, Robert

    1. Das hängt dann aber vom Kreditkartenabwickler ab. Bekannt sind uns zwei Möglichkeiten: Auf der einen Seite direkt im Backofficebereich des Kundenaccounts beim KK Abwickler. Dort können Buchungen vorgenommen werden und auf der anderen Seite gibt es bei einigen Anbietern eine kleine Software, mit der direkt vom Desktop aus die Buchung vorgenommen werden kann.

Leave a Reply

Your email address will not be published. Required fields are marked *