Magento Newsletter Versand per Cronjob mit Plesk 9 und PHP5

Unser Shop Forum Shop-Systeme liefert euch Informationen, Tipps, Tricks und Hilfen zum Open-Source Shop-System Magento


Magento Newsletter Versand per Cronjob mit Plesk 9 und PHP5

Beitragvon seo-beratung » 06.04.10

Der Versand eines Magento-Newsletters ist nicht einfach. Daher habe ich hier mal die wichtigsten Schritte zusammengetragen, wie Sie dazu vorgehen müssen:

  • Schritt 1: Erstellen Sie mittels HTML-Quellcode und Magento Variablen eine Newsletter Vorlage
  • Schritt 2: Legen Sie per Aktion "Queue Newsletter ..." den Newsletter in die Warteschlange
  • Schritt 3: Eintragen eines Newsletter-Abonnenten zum Testen des eMail-Versands bzw. des Abmeldelinks
  • Schritt 4: Einrichten eines Cronjobs (Crontab) mittels cron.php für Plesk 9.x und PHP5
  • Schritt 5: Korrigieren bzw. überprüfen des Double Opt-In Verfahrens
  • Schritt 6: Ausführen eines manuellen Newsletter-Versands per Browser-Befehl (Optional)

zu 1) Die eMail besteht aus ganz regulärem HTML-Quellcode. Zum Verfassen eines Magento Newsletters dient ein einfacher Texteditor, wie Notepad++. Falls Sie Umlaute einfach eintippen wollen, dann speichern Sie die HTML-Datei als "UTF-8 ohne BOM" ab. Natürlich ist es unbedingt erforderlich, dass Sie den Newsletter-Abonnent persönlich ansprechen. Nutzen Sie dazu die Magento Variablen:

Vorname = {{var subscriber.CustomerFirstname}}
Nachname = {{var subscriber.CustomerLastname}}
eMail-Adresse = {{var subscriber.SubscriberEmail}}
Abmeldelink = {{var subscriber.getUnsubscriptionLink()}}

zu 2) Die Aktion "Queue Newsletter ..." finden Sie nicht, wie man wohl vermuten würde, unter "Newsletter Warteschlange", sondern ganz rechts unter "Newsletter Vorlage". Dadurch wird praktisch aus der Newsletter Vorlage ein eigener Magento Newsletter.

Warteschlange starten am: 06.04.2010 20:15:00
Betreff: Shopleiter Magazin No. 1 :: wallaby IT-Systems
Absendername: Angeli Susanne
E-Mail Absender: noreply@wallaby.de
Nachricht: Hier erscheint nochmals zur Kontrolle der HTML-Quellcode der Newsletter Vorlage

zu 3) Etwas ungewöhnlich ist es, wenn man mal auf die Schnelle einen Test-Empfänger anlegen möchte. Denn das geht nur über das Frontend. Aber zumindest funktioniert das An- bzw. Abmelden eines Users relativ schnell und bequem. Mit einem Klick auf "Abonnieren" landet die eMail-Adresse im Bereich "Newsletter Abonnenten" und bekommt den Status "Abonniert" zugeteilt. Hat der User schon einmal etwas eingekauft und ist bereits registrierter Kunde, dann steht sofort auch der Vor- und Nachname zur Personalisierung der eMail zur Verfügung.
Zum Abmelden von einem Magento Newsletter benötigt der Quellcode sowieso einen Abmeldelink, den Sie einfach mittels {{var subscriber.getUnsubscriptionLink()}} generieren. Klickt der User nach Erhalt des Magento Newsletters auf diesen Abmeldelink, dann erhält er künftig keinen Newsletter mehr. Der Status ändert sich zu "Abgemeldet".

zu 4) Wesentlich bequemer und ohnehin empfehlenswert ist das Einrichten eines Cronjobs oder Crontabs unter Linux. Die im Magento root-Verzeichnis liegende Datei cron.php ist für den eMail-Versand des Magento Newsletters verantwortlich.
Jan Huschauer erläutert hierzu drei verschiedene Möglichkeiten: PHP-Skripte als Browser-Aufrufe (mittels wget), reine PHP-Skripte für die Shell (mittels Shebang-Zeile #!/usr/bin/php) oder PHP-Skript Aufruf per Command-Line-Interface (CLI).
Unter Plesk 9.x und PHP5 funktioniert die dritte Variante recht zuverlässig. Unter "Start > Domain > Geplante Aufgaben > Crontab" sieht ein Cronjob der alle 30 Minuten erneut startet bspw. so aus:

Code: Alles auswählen
*/30   *   *   *   *   /usr/bin/php5 -f /srv/kompletter-pfad-zu-magento/cron.php

zu 5) Korrigieren der Double Opt-In Verfahrens zur Newsletter-Anmeldung

Zur Korrektur dieses Fehlverhaltens, dass bereits registrierte Kunden ihre eMail-Adresse nicht per Double Opt-In Verfahren bestätigen brauchen, sind ein paar kleiner Korrekturen in der Datei app/code/core/Mage/Newsletter/Model/Subscriber.php erforderlich. Da es sich um eine Core-Datei handelt duplizieren wir diese in das Verzeichnis app/code/local/Mage/Newsletter/Model/Subscriber.php

Dazu sucht man in der local-Variante die Stelle $customerSession->isLoggedIn() in etwa bei Zeile 311 und ändert die Zeile von:

Code: Alles auswählen
$this->setStatus(self::STATUS_SUBSCRIBED);

zu

Code: Alles auswählen
$this->setStatus(self::STATUS_NOT_ACTIVE);

Außerdem ist noch weiter Anpassung etwa in Zeile 315 erforderlich:

Code: Alles auswählen
$this->setSubscriberStatus(self::STATUS_SUBSCRIBED);

die nach der Korrektur so aussieht:

Code: Alles auswählen
$this->setSubscriberStatus(self::STATUS_NOT_ACTIVE);

Vorsorglich müssen Sie noch kontrollieren, ob das Double Opt-In Verfahren für das Newsletter-Abonnement überhaupt aktiv ist. Gehen Sie dazu zu "System > Konfiguration > Newsletter > Abonnementoptionen" und prüfen ob dort "Bestätigung nötig" auf "Ja" gesetzt ist.

zu 6) Falls Sie keinen eigenen root-Server besitzen oder einfach den Magento-Newsletter-Versand sofort starten wollen, so gibt es auch die bequeme Alternative den Newsletter Versand per Browser-Aufruf zu starten. Dazu ebenso Schritt 2) ausführen und den Newsletter Versand in die Warteschlange legen.
Jetzt finden Sie bei "Newsletter Warteschlange" den entsprechenden Link für Ihren eMail-Versand (sending). Danach lässt sich der Versand sofort starten mittels dem Seitenaufruf im Browser:

http://domain.tld/index.php/admin/newsletter_queue/sending
http://domain.tld/index.php/admin/newsl ... ding/id/4/ (inkl. Queue-ID)
http://domain.tld/index.php/admin/newsl ... nopqrstuv/ (inkl. Queue-ID und Security-Key)

Die Nutzung des Sicherheitsschlüssel konfigurieren Sie unter "System > Konfiguration > Admin > Erweitert > Sicherheit > Secret-Key zu URLs hinzufügen". Dort den Wert auf "Ja" setzen, um den Sicherheitsschlüssel bei URL-Aufrufen zu verwenden. Sonst kann jeder User (zumindest theoretisch) den Newsletter Versand manuell starten.

Weiterführende Informationen
How to Set Up a Cron Job
Variablen Liste für Mail Templates
Transactional Emails
Benutzeravatar
seo-beratung
Moderator
 
Beiträge: 367
Registriert: 03/06
Wohnort: Kleinaitingen


Ähnliche Shop Forum Themen passend zu "Magento Newsletter Versand per Cronjob mit Plesk 9 und PHP5"

Zurück zu Magento

Wer ist online im Shop Forum?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste