Magento Newsletter einrichten


May 04, 2011 at 13:09
Magento

Magento bietet von Haus aus eine simple Newsletter Funktion. Da ich noch keine kostenfreie Extension dafür gefunden habe, habe ich mich mal bemüht, mit den vorhandenen Mitteln einen einigermaßen präsentablen, wiederverwendbaren Newsletter aufzusetzen, den auch Outlook anzeigt. Der Newsletter hat einen Header und Footer, im Inhalt werden die neuesten Produkte angezeigt. Das Layout ist mit Tabellen aufgebaut, da wird ja alle wissen, dass CSS Styles in einem Newsletter von den meisten Mailprogrammen nicht akzeptiert werden.

Schritt 1: anlegen der footer und header Templates

Ich habe meine templates footer.phtml und header.phtml genannt. Header hat eine Zeile beliebigen Inhalts und umschließt den gesamten Content mit einer Tabelle, Footer beendet diese Tabelle und hat nochmal eine abschließende Zeile, in die man beispielsweise disclaimer oder den unsubscribe Link hineinschreiben kann. Die beiden Dateien bekommen ein neues Verzeichnis im template Ordner des aktuellen Designs, und dieses Verzeichnis heißt "email". Die header Datei wird gespeichert unter /app/design/frontend/default/THEMENAME/template/email/header.phtml und sieht so aus:
<table width="500" cellpadding="10">
 <tr height="70">
 <td bgcolor="#FF0000">
   ...header inhalt...
 </td>
 </tr>
 <tr>
 <td>
footer befindet sich unter /app/design/frontend/default/THEMENAME/template/email/footer.phtml und sieht so aus:
</td>
</tr>
<tr height="70">
 <td bgcolor="#FF00FF">...footer inhalt...</td>
</tr>
</table>

Schritt 2: eine neue Newsletter Vorlage erstellen

Felder wie Absender, Betreff, etc. sind selbsterklärend und werden nach Wunsch ausgefüllt. In Vorlageninhalt kann man nun seine Inhalte einfügen und über die Magento Syntax den Footer, den Header und die neuen Produkte einfügen:
{{block type="core/template" template="email/header.phtml"}}

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim.

{{block type="catalog/product_new" name="home.catalog.product.new" alias="product_homepage" template="catalog/product/new_nl.phtml"}}

{{block type="core/template" template="email/footer.phtml"}}
In der ersten und letzten Zeile werden header und footer eingefügt und können so in neuen Vorlagen wiederverwendet werden. Der mittlere Aufruf ist für das Anzeigen neuer Produkte.

Schritt 3: Anzeige der neuen Produkte

Standardmäßig werden die neuen Produkte als Listen angezeigt, für einen Newsletter ist es besser, das ganze in einer Tabelle darzustellen, deshalb habe ich eine neue Datei in catalog/product/ angelegt, new_nl.phtml. Ich habe mir den Inhalt von new.phtml übernommen und meinen Vorstellungen entsprechend modifiziert:
<?php if (($_products = $this->getProductCollection()) && $_products->getSize()): ?>
<h2><?php echo $this->__('New Products') ?></h2>
<?php $_columnCount = $this->getColumnCount(); ?>
 <table>
 <?php $i=0; foreach ($_products->getItems() as $_product): ?>
 <?php if ($i++%$_columnCount==0): ?>
 <tr>
 <?php endif ?>
 <td>

 <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($_product->getName()) ?>"><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(135) ?>" width="135" height="135" alt="<?php echo $this->htmlEscape($_product->getName()) ?>" /></a>
 <h3><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($_product->getName()) ?>"><?php echo $this->htmlEscape($_product->getName()) ?></a></h3>
 <?php echo $this->getPriceHtml($_product, true, '-new') ?><br/>
 </td>
 <?php if ($i%$_columnCount==0 || $i==count($_products)): ?>
 </tr>
 <?php endif ?>
 <?php endforeach; ?>
 </table>
<?php endif; ?>
Damit werden die Daten in Tabellenzellen gepackt und so von den gängigen Mailprogrammen korrekt dargestellt.

Hinterlasse einen Kommentar:
Benny
23.07.2013
Hi Leider funktioniert das nicht mit Magento 1.5. Es werden zwar header und footer angezeigt aber die Produkte nicht. Irgendwelche Lösungsvorschläge? Gruß Benny