Hallo,
Nachdem die Frage gestellt wurde, ob man im Kundenkonto auch für den Kunden spezielle Angebote wie bei Amazon anzeigen kann, hier mal ein möglicher Ansatz:
Man speichert die Suchergebnisse eines eingelogten Kunden in einem ben.def. Kundenfeld (im Beispiel "SUCH" -> Text lang)
Dazu den Code in die iplSearchresults.ipl ergänzen:
sub saferesults {
if (length($main::userid)) {
my $kdnr = ssp::get_var_user("kundennr");
my $pre = ssp::db_get_prefix();
my $USR = $pre . "USR";
my $read = ssp::readSQLData(qq|SELECT SUCH FROM $USR WHERE KUNDENNR = '$kdnr'|, "SUCH");
my $oldstr = ssp::get_var_db("SUCH",0);
my $str;
my $newstr;
my $anzahl = $_[1];
for ($i=0;$i<=$anzahl;$i=$i+1){
$itemid = ssp::get_var_article("itemid", $i);
if ($oldstr =~ /$itemid/) {$str.= "";} else {$str.= "$itemid, ";}
}
$newstr = $str.$oldstr;
ssp::db_update_usr($kdnr,"SUCH",$newstr);
}
}
auf der Suchergebnisseite werden dann mit __searchresults::saferesults__ die gefundenen Artikelnummern in's SUCH-Feld des Kunden eingetragen.
diese Artikel können dann auf jeder beliebigen Seite - wie "normale" Crossartikel - ausgegeben werden
<!--spmacro:module(show)
sub empfehlung {
if (length($main::userid)) {
my $str = ssp::get_var_user("SUCH");
if ($str) {
ssp::embedded("csearch","embedded/artikelempfehlung.txt",$str . ":10000000:::3:0");
}
}
}
-->
__show::empfehlung__
Wie man die Favoriten anzeigen kann, habe ich ja hier http://www.shoppilot.net/pf/index.php?topic=1342.msg4792#msg4792 (http://www.shoppilot.net/pf/index.php?topic=1342.msg4792#msg4792) schon beschrieben.
noch eine Idee für' Kundenkonto:
Man kann auch die "zuletzt gesehenen Artikel" für eingelogte Kunden speichern und beim nächsten Besuch wieder anzeigen.
Dazu wieder ein ben.def. Kundenfeld anlegen (im Beispiel LASTSEEN -> Text lang)
Auf den Detailseiten das Script so ergänzen
<!--spmacro:module(Callback)
sub begin_read_template {
if ($ssp::xxsession != 4711471147 && length($main::userid)) {
my $kdnr = ssp::get_var_user("kundennr");
my $besuchteSeiten = ssp::cart_read_var('compseite');
if ($besuchteSeiten eq $ssp::undefined) { $besuchteSeiten = ""; }
my $aktuelleSeite= ssp::get_var_article('itemid');
if ($besuchteSeiten =~ m/$aktuelleSeite!_!/) {$alleSeiten = $besuchteSeiten}
else { $alleSeiten = $aktuelleSeite . "!_!" . $besuchteSeiten; }
ssp::cart_write_var('compseite', $alleSeiten);
my $safelastseen = $alleSeiten;
$safelastseen =~ s/!_!/, /g;
ssp::db_update_usr($kdnr,"LASTSEEN",$safelastseen);
}
}
-->
Ausgabe s. oben mit
my $str = ssp::get_var_user("LASTSEEN");