Magento: Telefon als optionales Feld bei Bestellung & Registrierung

Wird von vielen Kunden als störend empfunden: Telefonnumer als Pflichtfeld.

Wird von vielen Kunden als störend empfunden: Telefonnumer als Pflichtfeld.

Magento ist standardmässig so konfiguriert dass bei der Registrierung oder beim Absenden einer Bestellung eine Telefonnummer angegeben werden muss. Dies macht in gewissen Situationen sicher Sinn, zum Beispiel wenn man zum Versand der Bestellung einen Kurierdienst nutzt, welcher die Lieferung per Telefon ankündigt. In den meisten Fällen wird jedoch nicht zwingend eine Telefonnummer benötigt. Viele Kunden stören sich zudem daran, wenn sie ihre Telefonnummer angeben müssen, weil sie Werbeanrufe fürchten.

Aus diesem Grund wurden wir schon oft damit beauftragt, die Telefonnumer in ein optionales Feld umzuwandeln. Der Kunde kann seine Telefonnummer angeben, muss jedoch nicht. Um die Telefonnummer in ein optionales Feld umzuwandeln gehen Sie wie unten beschrieben vor.

Datenbank

Führen Sie als erstes folgenden SQL-Befehl in Ihrer Datenbank aus (entweder direkt auf dem Server oder per phpMyAdmin):

UPDATE eav_attribute
SET is_required = 0
WHERE attribute_code = "telephone"

Dieser Befehl legt in der Datenbank fest dass sämtliche Telefon-Felder optional sind.

Templates

Als nächstes müsen Sie Ihre Templates bearbeiten. Wenn Sie ein eigenes Design-Theme verwenden so liegen diese Templates in folgendem Ordner /app/design/PAKETNAME/THEMENAME/template/. Wenn Sie das Standarddesign von Magento verwenden so liegen diese Dateien unter /app/design/base/default/template/. Kopieren Sie in diesem Fall die zu bearbeitenden Dateien nach /app/design/default/default/template/.

Öffnen Sie nun in diesem Ordner folgende Dateien:

  • template/checkout/onepage/billing.phtml
  • template/checkout/onepage/shipping.phtml
  • template/customer/address/edit.phtml
  • template/customer/form/register.phtml

Suchen Sie in diesen Dateien jeweils nach dem «Telephone»-Feld und entfernen Sie im <label> die «required»-Klasse sowie den Indikator für das Pflichtfeld:

<em>*</em>

Im <input> selber muss der PHP-Code für die Validierungsklasse entfernt werden, also folgender Code:

<?php echo $this->helper('customer/address')->getAttributeValidationClass('telephone') ?>

Die Datei template/checkout/onepage/shipping.phtml müsste also wie folgt angepasst werden:

Original:

...
...

Angepasst:

...
...

Nehmen Sie diese Anpassung in den vier oben aufgelisteten Template-Dateien vor.

Core-Code

Als nächstes muss eine Datei aus dem Magento-Core bearbeitet werden: /app/code/core/Mage/Customer/Model/Address/Abstract.php. Kopieren Sie diese Datei zuerst an folgenden Pfad, um die Updatefähigkeit beizubehalten: /app/code/local/Mage/Customer/Model/Address/Abstract.php.

Öffnen Sie nun die Datei und suchen Sie nach folgendem Inhalt:

if (!Zend_Validate::is($this->getTelephone(), 'NotEmpty')) {
    $errors[] = Mage::helper('customer')->__('Please enter the telephone number.');
}

Entfernen Sie diese drei Zeilen komplett, um die Validierung der Telefonnumer zu deaktivieren.

Attribut-Update

Zuletzt muss folgender PHP-Code einmalig im Magento ausgeführt werden:

Mage::getModel('eav/entity_attribute') ->loadByCode('customer_address', 'telephone') ->setIsRequired(false) ->save();

Fügen Sie diese Zeile dazu in der index.php ganz unten ein und rufen Sie eine beliebige Seite im Magento-Shop auf. Entfernen Sie danach diese Zeile wieder und speichern Sie die Datei.

Wenn alles geklappt hat so sind sämtliche Telefonnummer-Felder ab sofort keine Pflichtfelder mehr, und Ihre Kunden müssen diese nicht mehr bei jeder Bestellung angeben, wenn sie nicht möchten.

PS: Brauchen Sie Hilfe bei dieser oder einer anderen Anpassung in Ihrem Magento-Onlineshop? Gerne stehen wir Ihnen dazu zur Verfügung. Nehmen Sie einfach mittels dem unten stehenden Kontaktformular mit uns Kontakt auf und wir helfen Ihnen gerne weiter.

Other interesting articles:

Back to the blog overview