xtCommerce 4 Veyton – Zweite Email bei Bestellungen mit eigenem Template verschicken

Nach einer Bestellung aus dem Online Shop xtCommerce 4 (Veyton) geht eine Bestellbestätigung an den Käufer und optional kann eine weitere E-Mail an einen anderen Empfänger weitergeleitet werden. Hier geht es darum weitere E-Mails mit selbst angelegtem Inhalt und Design an beliebige weitere E-Mail-Adressen zu schicken.

Das E-Mail-Template wird im Backend angelegt unter:

Inhalte -> E-Mail Manager -> send_order: bearbeiten

Für weitere e-mails wird ein neues e-mail-Template angelegt

Für weitere E-Mails legen wir im E-Mail Manager ein neues Template an und schreiben in das Feld für den Typ:

send_order_2

Die Felder für Absender und Reply sind ebenfalls auszufüllen. Die Weiterleitung ist optional (falls diese zweite e-mail an zwei Empfänger gehen soll). Der Inhalt für html- und text-e-mail kann beliebig gestaltet werden, wobei sich ggf. als Vorlage das Template „send_order“ eignen kann.

Im zweiten Schritt wird folgende Datei benötigt:

/xtFramework/classes/class.order.php

Hier suchen wir die Funktion:

function _sendOrderMail()

In dieser Funktion wird eine Objekt der Klasse xtMailer (eigentlich PHPMailer (phpmailer.sourceforge.net)) instanziert:

$ordermail = new xtMailer('send_order', $this->order_data['language_code']);

.......

$ordermail->_sendMail();

Für unsere zweite e-mail schreiben wir direkt nach:

$ordermail->_sendMail();

…das folgende:

//Plugin: second email - BOF
$ordermail2 = new xtMailer('send_order_2', $this->order_data['language_code']);
$ordermail2->_addReceiver('YOUR_EMAIL_ADRESSE', 'YOUR_NAME');
$ordermail2->_assign('order_products',$this->order_products);
$ordermail2->_assign('order_data',$this->order_data);
$ordermail2->_sendMail();
//Plugin: second email - EOF

In der ersten Zeile wird das neue Template angeben.
In der zweiten Zeile ist die e-mail-Adresse und der Name anzupassen.
Die dritte und vierte Zeile definiert array’s, dessen Werte im Template ausgelesen werden können. Entsprechend der benötigten Daten können hier Änderungen vorgenommen werden.

Beispiel für ein Template

{foreach name=aussen item=order_values from=$order_products}
  {$order_data.customers_id};{$order_values.products_model};{$order_values.products_quantity}
{/foreach}

Dieses Template verschickt eine e-mail mit einer CSV-Liste bestehend aus Kundenmummer, Artikelnummer und Artikelanzahl. Jetzt könnte eine Warenwirtschaft diese Daten einlesen und definierte Prozeße anstoßen.

Und natürlich braucht man nicht unbedingt im Core diese Änderungen vornehmen. Dazu gibts den hook „class.orders.php:_sendOrderMail_bottom“ zur Programmierung eines Plugins.

Auf die gleiche Weise könnten jetzt beliebig viele e-mails mit verschiedenem Inhalt und Design bei einer eingehenden Bestellung losgeschickt werden.

😉

Nachtrag: Hier das fertige Plugin für Veyton CE 4.0.14

second_email

Das Plugin muß aktiviert und wie folgt eingerichtet werden:

E-Mail-Template: send_order_2
Nachname: [Empfänger Nachname]
Vorname: [Empfänger Vorname]
Email: [Empfänger Email-Adresse]

2 Gedanken zu „xtCommerce 4 Veyton – Zweite Email bei Bestellungen mit eigenem Template verschicken

  1. Lucas

    Vielen Dank für diese Anleitung. Hat mir echt den Tag gerettet. Die Anforderung vom Chef klingt immer so trivial, aber die Umsetzung ist schon ganz schön tricki. Und geben Sie bitte so Leuten wie mir die Möglichkeit etwas für Ihre Arbeit zu spenden, würde ich sofort tun. mfg Lucas

Schreibe einen Kommentar