Kundenspezifische Angebote

Begonnen von dobra, Dezember 15, 2009, 10:54:03

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

dobra

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 schon beschrieben.
mfG
dobra

dobra

#1
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");

mfG
dobra