Anrede mit Vorname in Gambio Bestellstatus-Änderung

Zumindest bis Gambio 4.3.3 ist keine update-sichere Erweiterung der E-Mail zur Änderung des Bestellstatus möglich. Wie Sie dennoch statusabhängige Texte einbinden und Kunden mit Vornamen ansprechen, lesen Sie in folgendem Tutorial.

Hintergrund: Platzhalter in Bestellbestätigung

Hintergrund: Am 13.12.2020 hatte ich ein kostenlosen Tool bereitgestellt, das mehr als 90 neue Platzhalter für die Bestellbestätigung bereitstellt. Im zugehörigen YouTube-Video muss ich mich wohl etwas unklar ausgedrückt haben. Die neuen Platzhalter, darunter für den Vornamen des Kunden, stehen mit dem Tool ausschließlich in der Bestellbestätigung zur Verfügung.

PHP-Code u.a. mit // @todo: integrate extender

Natürlich ist es inkonsequent, Kunden in der Bestellbestätigung mit Vornamen, bei Status-Änderung aber wieder mit vollem Namen anzusprechen. Daher folgt nun dieses Tutorial als Übergangslösung, bis Gambio eine echte Erweiterung beim Versand der entsprechend E-Mail zulässt. Der todo-Kommentar in der entsprechenden PHP-Datei suggeriert, dass und wie das zukünftig möglich sein soll.

E-Mail-Vorlage Änderung Bestellstatus

Admin: Änderung Bestellstatus

Die Vorlage für die bei Änderung des Bestellstatus versandte E-Mail finden wir im Gambio-Adminbereich. Sie reiht sich ein in die übrigen Vorlagen unter Kunden > E-Mails > E-Mail Vorlagen.

Ohne individuelle Anpassung stehen für die E-Mail-Vorlage folgende Platzhalter zur Verfügung:

  • GENDER – Geschlecht des Kunden (m, f oder leer)
  • NAME – der vollständige Name des Kunden, also Vor- und Nachname
  • ORDER_DATE – Bestelldatum mit ausgeschriebenem Monat, z.B. 12. Januar 2021
  • ORDER_NR – Bestell-Nr.
  • NOTIFY_COMMENTS – Kommentare und Anmerkungen
  • ORDER_STATUS – (neuer) Bestellstatus, z.B. Offen, Bezahlt oder Versendet
  • PARCEL_TRACKING_CODES
  • PARCEL_TRACKING_CODES_ARRAY
  • gm_logo_mail, EMAIL_SIGNATURE_HTML, EMAIL_SIGNATURE_TEXT
    für Logo und Signatur.

Textpassagen abhängig vom Bestellstatus

Der Wunsch nach individuellen Texten in Abhängigkeit vom neuen Bestellstatus ist update-sicher zu lösen. Lediglich, wenn Sie Bestellstati umbenennen, ist auch eine Anpassung der E-Mail-Vorlage erforderlich. Im Gambio-Admin unter Bestellungen > Bestellstatus finden Sie eine Auflistung aller im Shop verfügbaren Bestellstati. Anhand derer können wir in der HTML-Ansicht der E-Mail-Vorlage Admin: Änderung Bestellstatus zum Beispiel folgende Passage einfügen:

{if $ORDER_STATUS==='In Bearbeitung'}
  <p>
    Wir sind gerade dabei, Ihre bestellte Ware liebevoll in ein passendes Paket zu legen.
  </p>
{elseif $ORDER_STATUS==='Versendet'}
  <p>
    Je nach Auslastung des Paketdienstleisters kann die Zustellung bis zu 5 Tage in Anspruch nehmen.
  </p>
{elseif $ORDER_STATUS==='Bezahlt'}
  <p>
    Vielen Dank! Ihre Bestellung wird in Kürze bearbeitet.
  </p>
{/if}

Bitte beachten Sie, dass Groß-/Kleinschreibung der Bestellstati dabei berücksichtigt wird!

Kunden mit Vorname anreden

Um Kunden in der Statusänderung mit Vornamen anreden zu können, bearbeiten wir diese Datei des Gambio-Shopsystems:

GXMainComponents/Extensions/Orders/OrderActions.inc.php

Die Anpassung funktioniert nur, wenn die Datei nachfolgende Zeile bereits vor der Bearbeitung enthält:

$order = $orderReadService->getOrderById($orderId);

Wir erweitern den bereits vorhandenen Codeblock:

foreach ($data as $key => $value) {
    $smarty->assign($key, $value);
}

Wie folgt:

$data['customers_firstname'] = $order->getCustomerAddress()->getFirstname();
foreach ($data as $key => $value) {
    $smarty->assign($key, $value);
}

Diese eine eingefügte Zeile sorgt dafür, dass uns in der E-Mail-Vorlage der Kundenvorname zur Verfügung steht. Dementsprechend können wir Smarty-Code wie diesen in die Vorlage einbauen und die Standard-Anrede dadurch ersetzen:

{if $GENDER == 'm'}Lieber{elseif $GENDER == 'f'}Liebe {else}Liebe(r){/if} {$customers_firstname}

Damit der Platzhalter auch bei der Stornierung zur Verfügung steht, ist eine zusätzliche Änderung in derselben Datei erforderlich. Zunächst erweitern wir die Datenbankabfrage mit Vorkommnis von o.customers_name, so: o.customers_name,o.customers_firstname,

Einige Zeilen darunter (in 4.3.3 ist es Zeile 115) fügen wir nach $smarty->assign('NAME', $check_status['customers_name']); den Platzhalter für den Vornamen ein: $smarty->assign('customers_firstname', $check_status['customers_firstname']);

Rechnungsversand

Anrede mit Vorname bei Rechnungsversand? Der Code der betreffenden Datei verursacht beim Webentwickler einen Waschzwang. Die Rede ist von dieser Datei:

admin/gm_pdf_order.php

An eine update-sichere Erweiterung ist nicht ansatzweise zu denken. Freuen wir uns lieber, dass dieser Haufen Code-Kauderwelsch überhaupt irgendwie seinen Zweck erfüllt und fügen nach der Zeile

$smarty->assign('INVOICE_NUMBERS', $invoiceNumbers);

diese Zeile ein:

$smarty->assign('customers_firstname', $order_check['customers_firstname']);

Somit können wir auch in der Rechnungs-E-Mail unter Kunden > E-Mails > E-Mail Vorlagen den oben genannten Smarty-Code nutzen, um Rechnungsempfänger mit dem Vornamen anzusprechen.

Kundenregistrierung

Bei der Kundenregistrierung mittels Registrierungsformular steht der Vorname in der globalen Variablen $_POST zur Verfügung. Das heißt, dass keine Änderung an Dateien erforderlich ist. Es genügt, unter E-Mails > E-Mail Vorlagen > Bestellbestätigung die Vorlage anzupassen:

Sehr {if $GENDER == 'm'}geehrter Herr {elseif $GENDER == 'f'}geehrte Frau {else}geehrte(r) {/if}{$NAME}

ersetzen durch

{if $smarty.post.firstname}Hallo {$smarty.post.firstname}{else}Sehr {if $GENDER == 'm'}geehrter Herr {elseif $GENDER == 'f'}geehrte Frau {else}geehrte(r) {/if}{$NAME}{/if}

Bitte beachten Sie, dass in der Vorschau der Platzhalter für den Vornamen nicht zur Verfügung steht. Die Änderung wirkt sich also nur auf den realen Versand der Registrierungsbestätigung aus.

«

Schreiben Sie einen Kommentar