osCommerce Knowledge Base

Bestätigungs-E-Mail nach Bestellung

Zuletzt aktualisiert: 29th March, 2005
Beitrag ID: 149


Überblick

In der Datei catalog/checkout_process.php werden die Variablen für die Bestätigungs-E-Mail initialisiert. Der relevante Codebereich befindet sich in der Originaldatei zwischen den Zeilen 222 und 258. Er wird durch die Kommentarzeile “// lets start with the email confirmation” eingeleitet.


// lets start with the email confirmation
  $email_order = STORE_NAME . "n" .
                 EMAIL_SEPARATOR . "n" .
                 EMAIL_TEXT_ORDER_NUMBER . ' ' . $insert_id . "n" .
                 EMAIL_TEXT_INVOICE_URL . ' ' . tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO, 'order_id=' . $insert_id, 'SSL', false) . "n" .
                 EMAIL_TEXT_DATE_ORDERED . ' ' . strftime(DATE_FORMAT_LONG) . "nn";


In diesem Teil der eMail wird die Bestellnummer, der Link zur History im Kundenkonto sowie das Bestelldatum ausgegeben.


  if ($order->info['comments']) {
    $email_order .= tep_db_output($order->info['comments']) . "nn";
  }
  $email_order .= EMAIL_TEXT_PRODUCTS . "n" .
                  EMAIL_SEPARATOR . "n" .
                  $products_ordered .
                  EMAIL_SEPARATOR . "n";


In diesem Teil der eMail wird ein vorhandener Kommentar des Kunden sowie die bestellten Produkte aufgelistet.


  for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) {
    $email_order .= strip_tags($order_totals[$i]['title']) . ' ' . strip_tags($order_totals[$i]['text']) . "n";
  }

  if ($order->content_type != 'virtual') {
    $email_order .= "n" . EMAIL_TEXT_DELIVERY_ADDRESS . "n" .
                    EMAIL_SEPARATOR . "n" .
                    tep_address_label($customer_id, $sendto, 0, '', "n") . "n";
  }

  $email_order .= "n" . EMAIL_TEXT_BILLING_ADDRESS . "n" .
                  EMAIL_SEPARATOR . "n" .
                  tep_address_label($customer_id, $billto, 0, '', "n") . "nn";
  if (is_object($$payment)) {
    $email_order .= EMAIL_TEXT_PAYMENT_METHOD . "n" .
                    EMAIL_SEPARATOR . "n";
    $payment_class = $$payment;
    $email_order .= $payment_class->title . "nn";
    if ($payment_class->email_footer) {
      $email_order .= $payment_class->email_footer . "nn";
    }
  }


In diesem Teil der eMail werden die Adressdaten des Käufers nocheinmal aufgelistet.


  tep_mail($order->customer['firstname'] . ' ' . $order->customer['lastname'], $order->customer['email_address'], EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);


Dieser Teil ist für das Senden der eMail zuständig und gibt den Empfänger, den Absender sowie den Betreff der eMail an.



Beispiel einsprachig

Im folgenden Beispiel zeigen wir, wie man in der Bestätigungs-E-Mail hinter dem Shop-Namen eine zusätzliche Textnachricht einfügt, die von jeweils einem Zeilenumbruch umschlossen wird.

Folgende Codezeile generiert die zusätzlich in die Bestätigungs-E-Mail aufzunehmende Textnachricht:

$email_order = "rnThank you for your order! rnrn Enjoy! rn" .


Diese Zeile wird nun hinter der Zeile 223 eingefügt.

catalog/checkout_process.php Zeile 223 ff. alt:

// lets start with the email confirmation
$email_order = STORE_NAME . "n" .
               EMAIL_SEPARATOR . "n" .
...



catalog/checkout_process.php Zeile 223 ff. neu:

// lets start with the email confirmation
$email_order = STORE_NAME . "n" .
               "rnThank you for your order! rnrn Enjoy! rn" .
               EMAIL_SEPARATOR . "n" .
...



Die Steuerzeichen rn sorgen für einen Zeilenumbruch ohne zusätzliche Leerzeile, wohingegen nn für einen Zeilenumbruch samt Leerzeile sorgt.


Beispiel mehrsprachig

Die Bestätigungsemail nach einer Bestellung ein wenig zu erweitern ist recht einfach. Im folgenden Beispiel ergänzen wir den Namen des Kunden und fügen eine Fußzeile ein. Da die Texte in den jeweiligen Sprachdateien ergänzt werden, ist das ganze mehrsprachig.

catalog/checkout_process.php

Den ersten Teil der Bestätigung ergänzen:


// lets start with the email confirmation
  $email_order = EMAIL_TEXT_GRUSS . ' ' . $order->customer['firstname']." ".$order->customer['lastname']. "n" .
                 EMAIL_TEXT_ANREDE . ' ' . STORE_NAME . "n" .
                 EMAIL_SEPARATOR . "n" .
                 EMAIL_TEXT_ORDER_NUMBER . ' ' . $insert_id . "n" .
                 EMAIL_TEXT_INVOICE_URL . ' ' . tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO, 'order_id=' . $insert_id, 'SSL', false) . "n" .
                 EMAIL_TEXT_DATE_ORDERED . ' ' . strftime(DATE_FORMAT_LONG) . "nn";



catalog/includes/languages/[SPRACHE]/checkout_process.php

Ergänzen:

define('EMAIL_TEXT_GRUSS', 'Guten Tag');
define('EMAIL_TEXT_ANREDE', 'Vielen Dank für Ihre Bestellung bei');



Ergebnis:

Guten Tag Max Mustermann
Vielen Dank für Ihre Bestellung bei osCommerce
------------------------------------------------------
Ihre Bestellnummer: 1
Die detaillierte Bestellübersicht finden Sie unter: http://www.oscommerce.com/............
Bestelldatum: Mittwoch, 01. Januar 2004



 

Wie hilfreich ist dieser Beitrag?