Howto/Bugfix: Geschenknachricht aus der Magento Bestellbestätigung entfernen

Das Shopsystem Magento bringt eine Unmenge an nützlichen Funktionen und Features mit sich. Wie bei jedem Stück Software sind aber auch in Magento natürlich Funktionen dabei, die einfach nicht unbedingt zu jedem Projekt passen.

Eine dieser Funktionen ist die Möglichkeit des Kunden, seiner Bestellung eine Geschenknachricht anzuhängen. Ein nettes Feature für den einen Shop, aber für den anderen (z.B. B2B Shops) einfach nur störend und fehl am Platze. Das Eingabefeld dafür lässt sich ganz schnell im Konfigurationsbereich unter Verkäufe – Geschenknachrichten abstellen, leider erscheint aber selbst dann noch in der Transaktions-eMail – Neue Bestellung (die Bestellbestätigung) die Überschrift „Geschenknachrichten“ (Magento 1.4.1.1).

Dieser kleine Fehler lässt sich ganz schnell beheben:

  1. Wir öffnen app/design/frontend/base/default/template/email/order/items.phtml
  2. Dort suchen wir in ca. Zeile 60 die Abfrage, ob Geschenknachrichten aktiviert sind:
    1
    <?php if($_order->getGiftMessageId() && $_giftMessage = $this->helper('giftmessage/message')->getGiftMessage($_order->getGiftMessageId())): ?>
  3. Die Abfrage erfolgt in der E-Mail erst, wenn der Tabellenkopf „Geschenknachrichten“ bereits ausgegeben wurde.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <table cellspacing="0" cellpadding="0" border="0" width="100%" style="border:1px solid #bebcb7; background:#f8f7f5;">
    <thead>
    <tr>
    <th align="left" bgcolor="#d9e5ee" style="padding:3px 9px"><strong><?php echo $this->__('Gift Message for this Order') ?></strong></th>
    </tr>
    </thead>
    <tbody>
    <!-- Diese Zeile -->
    <?php if($_order->getGiftMessageId() && $_giftMessage = $this->helper('giftmessage/message')->getGiftMessage($_order->getGiftMessageId())): ?>
    <tr>
    <td colspan="4" align="left" style="padding:3px 9px">
    <strong><?php echo $this->__('From:'); ?></strong> <?php echo $this->htmlEscape($_giftMessage->getSender()) ?>
    <br /><strong><?php echo $this->__('To:'); ?></strong> <?php echo $this->htmlEscape($_giftMessage->getRecipient()) ?>
    <br /><strong><?php echo $this->__('Message:'); ?></strong><br /> <?php echo $this->htmlEscape($_giftMessage->getMessage()) ?>
    </td>
    </tr>
    <?php endif; ?>
    </tbody>
    </table>

    Wir verschieben diese Zeile also vor den Beginn, und das Ende der If-Abfrage hinter das Ende der Tabelle:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <!-- hierher verschieben -->
    <?php if($_order->getGiftMessageId() && $_giftMessage = $this->helper('giftmessage/message')->getGiftMessage($_order->getGiftMessageId())): ?>
    <table cellspacing="0" cellpadding="0" border="0" width="100%" style="border:1px solid #bebcb7; background:#f8f7f5;">
    <thead>
    <tr>
    <th align="left" bgcolor="#d9e5ee" style="padding:3px 9px"><strong><?php echo $this->__('Gift Message for this Order') ?></strong></th>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td colspan="4" align="left" style="padding:3px 9px">
    <strong><?php echo $this->__('From:'); ?></strong> <?php echo $this->htmlEscape($_giftMessage->getSender()) ?>
    <br /><strong><?php echo $this->__('To:'); ?></strong> <?php echo $this->htmlEscape($_giftMessage->getRecipient()) ?>
    <br /><strong><?php echo $this->__('Message:'); ?></strong><br /> <?php echo $this->htmlEscape($_giftMessage->getMessage()) ?>
    </td>
    </tr>
    </tbody>
    </table>
    <?php endif; ?>
  4. Die bearbeitete Datei speichern wir unter /app/design/frontend/default/mein_template/template/email/order/items.php („mein_template“ natürlich mit dem Pfad zum aktuellen Theme ersetzen! Solche Änderungen nie im Base-Template speichern!)
  5. Cache aktualisieren… Testen… Fertig!
Dieser Beitrag wurde unter Magento/eCommerce abgelegt und mit , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

8 Antworten auf Howto/Bugfix: Geschenknachricht aus der Magento Bestellbestätigung entfernen

  1. Thomas sagt:

    Genau diese Funktion habe ich gesucht. In den normalen Trans-Mails anpassungen. Lässt sich das denke ich aber auch einfach entfernen. Indem der entsprechende Bereich in den Mails einfach gelöscht wird.

    Ist aber die unelegantere Lösung.

  2. Kai Köpke sagt:

    Hallo Thomas, freut mich wenn ich helfen konnte

  3. Tobias Vogt sagt:

    Hey Kai,

    wieder eine super Anleitung – und auch noch mal der Hinweis das man nichts am Base machen soll, prima 🙂 Ist was für unsere nächsten Lesetipps!

    Für mich klingt das ganz klar noch einem Bug im Magento-Base Theme. Eventuell machst du direkt noch einen Bug-Report mit deinem Patch auf?

    schönen Gruß

    Tobi

  4. Kai Köpke sagt:

    Hi Tobi,

    stimmt gute Idee – Ich werd mich Morgen mal an nen Bug-Report machen. Vieleicht wirds ja dann in einer der kommenden Versionen gefixt.

    Schön, wenn die Anleitungen gefallen. Ich hab da nach den letzten abgeschlossenen Projekten noch so einige kleine Sachen, die das Leben und Arbeiten im und am Magento Shop erleichtern können.

    Ich müsst nur irgendwann in den nächsten Tagen mal wieder zum Schreiben kommen 😉

  5. eAM Chris sagt:

    Hallo Kay,

    dass das was Du geschrieben hast klasse ist, brauche ich nicht mehr sagen; ist es! Allerdings habe ich in der Version 1.6.1.0 das Problem, dass trotz der Tatsache, dass die Geschanknachricht ausgechaltet ist, immer noch die Option im Checkout steht, allerdings darunter kein Eingabefeld mehr erscheint.
    Cache habe ich gelöscht, aktualisiert und die Index-Verwaltung auf Kurs gebracht.
    Wie bekomme ich das da weg, denn es geht dabei tatsächlich um einen B2B Shop?

    Vielen Dank schon mal und liebe Grüße,
    Chris

    • Kai Köpke sagt:

      Hallo Chris,

      wenn die Geschenknachrichten unter System – Konfiguration – Verkäufe – Verkäufe – Geschenkoptionen ausgeschaltet sind, könntest du noch versuchen, das Modul Mage_GiftMessage unter System – Konfiguration – Erweitert zu deaktivieren. Das Problem gab es in einer der älteren Magento Versionen schon mal, wenn ich mich richtig erinnere…

      Gruß, Kai

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.