Export-Manager von XTCommerce erweitern

Für die Anbindung eines XTCommerce Shopsystems an die Warenwirtschaft werden Bestellungen über den Export-Manager ausgegeben. Auf Anforderung eines Kunden sollten auch die im Shop berechneten Versandkosten mit ausgegeben werden. Anscheinend ist dies jedoch nicht vorgesehen, denn im Handbuch und im Forum konnte ich keine Lösung entdecken.

Um aus der Datenbank-Tabelle xt_orders_total den Preis (orders_total_price) und die Steuer (orders_total_tax) zu integrieren habe ich PHP-Code im Smarty-Template genutzt.

Auf folgende Art und Weise können weitere Tabellen im Export-Manager angesprochen werden:

{assign var=MYORDERID value=$data.order_data.orders_id}
{php}

$myOrderId = $this->get_template_vars('MYORDERID');

$dbName= "Name der Datenbank";
$dbHost= "localhost";
$dbUser= "Datenbank-Benutzer";
$dbPassword= "Datenbank-Passwort";

$connect = mysql_pconnect( $dbHost, $dbUser, $dbPassword)
or die( "Verbindungsfehler: " . mysql_error());

mysql_select_db($dbName, $connect)
or die( "DB existiert nicht: " . mysql_error() );

$query = "SELECT * FROM xt_orders_total WHERE orders_id =  $myOrderId";

$result = mysql_db_query($dbName,$query, $connect)
or die( "Abfragefehler: " . mysql_error());

$row = mysql_fetch_row($result);
echo "$row[6]~$row[7]";

mysql_close($connect);

{/php}

Ich hoffe dass ich mit diesem Beitrag noch jemandem mit einem Ähnlichen Problem helfen kann. Falls es doch viel einfacher oder ganz anders geht würde ich mich über einen Kommentar freuen.

 

XTCommerce Veyton Newsletter-Anmeldung für Neukunden

Für Newsletter wird bei XTCommerce standardmäßig das Cleverreach Plugin mitgeliefert. Möchte man dies nicht benutzen, so bleibt einem nichts als selbst Hand anzulegen. Für einen Kunden habe ich die Integration mit Hilfe der Supermailer Newsletter-Software umgesetzt.

Die Integration der Standardfunktionen mit Hilfe der vorgefertigten Newsletter-Skripte gelang ohne Probleme. Die Newsletter-Registrierung für Neukunden gestaltete sich etwas trickreicher.

Zu Beginn wurden im XTCommerce die Seiten für folgende Zwecke angelegt:

  • Seite mit dem Anmeldeformular (im Menü sichtbar)
  • Erfolgreiche Newsletter-Anmeldung
  • Abmeldung erfolgreich
  • Fehler bei der Anmeldung

Über einen Assistenten auf der Website des Supermailer wurden die Skripte generiert. Im Hauptverzeichnis von XTCommerce wurden die folgenden Dateien abgelegt:

  • newsletter.php (Programmlogik)
  • newsletter.txt (Textvorlage der Mail mit Bestätigungslink)

Die Anmeldung über das normale Formular funktionierte damit bereits.

Einrichtung der Newsletter-Anmeldung bei der Neukunden-Registrierung

Dafür mussten 2 Dateien des XTCommer-Template angepasst werden. Im ersten Schritt wurde in der Datei „xtCore/pages/login.html“ die Checkbox für die Newsletter-Anmeldung hinzugefügt.

<h2>{txt key=TEXT_NEWSLETTER}:</h2>
<p>{txt key=TEXT_TXT_NEWSLETTER}</p>
<ul>
 <li>
  <label>{txt key=TEXT_SUBSCRIBE_NEWSLETTER}</label>
  {form type=checkbox name=cust_info[subscribe_newsletter] value=1}
</li>
</ul>

Damit wird jetzt der Parameter für die Newsletter-Anmeldung in der Session gespeichert und kann somit in der Checkout-Seite abgefangen werden. Am Ende der Datei „xtCore/pages/checkout.html“ wurde folgender Code eingefügt:

{php}

$subscribeNL = $_SESSION['customer']->customerData['subscribe_newsletter'];
$newsletter_email = $_SESSION['customer']->customer_info['customers_email_address'];

if ($subscribeNL == 1) {
 echo '<iframe frameborder="0" scrolling="no" height="10" width="10"
 src="http://www.domain.de/newsletter.php?Action=subscribe&EMail='
 .$newsletter_email.'"></iframe>';
}

{/php}

In einem iFrame-Element wird damit die Seite mit der Newsletter-Anmeldung und den benötigten Parametern aufgerufen. Die Bestätigungsemail für den interessierten Kunden wird generiert und versendet.

Jetzt müssen noch die Texte im XTCommerce-Backend für folgende Variablen angelegt werden:

  • TEXT_NEWSLETTER („Newsletter“)
  • TEXT_TXT_NEWSLETTER („Hier können Sie sich für unseren Newsletter registrieren…“)
  • TEXT_SUBSCRIBE_NEWSLETTER („Newsletter-Anmeldung“)

Fertig! Ich hoffe ich hab nichts vergessen..

Viel Erfolg!