Gutscheine peronalisieren

Begonnen von dobra, November 15, 2008, 11:53:45

« vorheriges - nächstes »

0 Mitglieder und 2 Gäste betrachten dieses Thema.

dobra

Hallo,

Aufgabe:
Ein Gutschein soll nur von einem bestimmten Kunden eingelöst werden können - also nicht von jedem, der die GS Nummer kennt
(das funktioniert natürlich nur, wenn der Kunde eingeloggt ist!)

Lösung:
Ein Artikelfeld "PERS" anlegen.
Bei dem betreffenden Gutschein in diesem Feld die Kundennummer des Kunder der diesen GS exklusiv einlösen können soll eintragen.
Bei der GS-Nummer ist jetzt eine Kennzeichnung notwendig
Gutscheine beginnen normalerweise mit _GS_ und dann ein beliebiger Code
Soll der GS personalisiert werden, nach dem _GS_ ein bestimmtes Zeichen (oder Zeichenfolge) verwenden, die sonst NICHT verwendet wird.
Im Beispiel "xy"  -  die GS Nr. für personalisierte GS beginnt also mit _GS_xy......,  für nicht personalisierte GS mit _GS_..... (irgendwas aber NICHT xy)

Code in stdplacecart.ipl
<!--spmacro:module(gutschein)  {
#Die Datei enthält keine Funktionen, der Code wird direkt in den Rumpf des Moduls geschrieben

my $item = ssp::qform(ssp::get_var_form('directItem'));
     my $kdnr = ssp::get_var_user('kundennr');
if ($item =~ /_GS_xy/) {
    my $pre = ssp::db_get_prefix();
    my $ITEM = $pre . "ITEM";
my $count = ssp::readSQLData("SELECT PERS FROM $ITEM WHERE ITEMID='$item'","PERS");
            if ($count >= 0) {
                   my $i=0;
                        while ($count > $i) {
my $pers = ssp::get_var_db("PERS",$i);
++$i;

if ($pers != $kdnr) {
        ssp::set_var_form('directItem',"irgendwas");
        #Ich setze das "directItem" einfach auf eine nicht vorhandene Artikelnummer, so dass "ungültiger Gutschein" ausgegeben wird.     
}
}
#Bei erfolgreicher Abfrage der Datenbank passiert nichts und der Gutschein wird in den Warenkorb gelegt.
}
}
}
-->

Danke an cru der mir diesen Code mal für einen anderen Zweck gegeben hat!
mfG
dobra