Gelöst JTL Shop Neukunde abfragen (im Smarty Template) und Text im Bestellabschluss anzeigen

  • "Hermes B2C" wird zum 29.02.2020 abgeschaltet und durch das neue "Hermes-Shipping-Interface" (HSI) ersetzt.
    Wer noch "Hermes B2C" nutzt sollte rechtzeitig umsteigen
    Weiterführende Infos gibt es hier: Infos zur Schnittstelle

edding18

Mitglied
10. August 2018
41
6
Hi Leute,

Wir möchten gerne auf der Bestellbestätigungsseite abhängig davon ob der Kunde zum ersten Mal oder eben bereits wiederholt bei uns bestellt, einen anderen Text anzeigen lassen.

Dazu benötigen wir auf der Bestellbestätigungsseite die Info, wie viele Orders der Kunde bereits in der Vergangenheit platziert hat.

Im Kundenkonto gibt es ja das Objekt $Bestellungen und da könnte man die Größe des Arrays ermittelt und darauf die Logik aufbauen.

Nur beim Bestellabschluss selbst, gibt es dieses Objekt nicht - wie könnte ich mir das dort ranholen bzw. hat jemand anders für das Thema schon eine Lösung bzw. ein fertiges Script?

VG
 

edding18

Mitglied
10. August 2018
41
6
Gelöst:

Ich hab jetzt im Template einfach über den PHP-Tag den gleichen Code eingebracht, wie in der jtl.php steht und erzeuge mit dem Ergebnis dann die Smarty-Variable $Bestellungen, welche dann im Template wie gehabt weiterverarbeitet werden kann. Alternativ könnte man auch direkt mit PHP die Programmlogik ausgeben - hier einmal mit dem $OrderCount als Beispiel gezeigt.

Code:
{php}

global $smarty;
    
$Bestellungen = [];
    if (isset($_SESSION['Kunde']->kKunde) && $_SESSION['Kunde']->kKunde > 0) {
        $Bestellungen = Shop::DB()->selectAll(
            'tbestellung', 'kKunde', (int)$_SESSION['Kunde']->kKunde,
            '*, date_format(dErstellt,\'%d.%m.%Y\') AS dBestelldatum', 'kBestellung DESC'
        );

    }

$OrderCount = count($Bestellungen);

if($OrderCount > 1){
    
    echo "Das ist deine " . $OrderCount . ". Bestellung bei uns im Shop";

}else{
    
    echo "Das ist deine erste Bestellung bei uns im Shop";
}
    
$smarty->assign('Bestellungen', $Bestellungen);

{/php}