Inhaltsverzeichnis
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.
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
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 einen Bestellstatus umbenennen, ist auch eine Anpassung der E-Mail-Vorlage erforderlich. Im Gambio-Admin unter Bestellungen > Bestellstatus finden Sie eine Auflistung jeder im Shop verfügbare Bestellstatus. 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 des Bestellstatus 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.
Datei admin/includes/gm/classes/OrderPdfManager.php
und statt der oben genannten Zeile fügen wir diese ein:
$smarty->assign('customers_firstname', $orderData['customers_firstname']);
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 > Kundenkonto erstellt 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.