Shopsystem ShopPilot

ShopPilot => SSP - Shop Server Pages => SSP Bibliothek => Thema gestartet von: dobra am März 23, 2013, 22:44:46

Titel: Geschenk ab Warenwert x €
Beitrag von: dobra am März 23, 2013, 22:44:46
Einen Gutschein kann man ja bei Eintritt in den Shop automatisch in den WK legen, wenn man diese Option aktiviert.
Man kann auch eine Mindesbestellmenge festlegen, ab welchem Warenwert der GS gĂĽltig ist.
Allerdings wird der GS bei dieser Standardlösung sofort (also auch bei Warenwert 0,-) in den WK gelegt und wenn die Mindesbestellsumme nicht erreicht ist, kommt erst beim Versuch die Bestellung abzusenden eine Fehlermeldung.

Meine Idee:
Das Geschenk (der GS) soll erst ab Warenwert x in den WK gelegt werden.
Ändert der Kunde im WK die Artikelanzahl, wird das Geschenk automatisch bei überschreiten der festgelegten Mindestbestellmenge angezeigt bzw. gelöscht bei unterschreiten.

Die Lösung:
Ein Geschenk hat ja Warenwert 0,- -> ist also fĂĽr die div. Berechnungen im WK nicht relevant und muss daher auch nicht "als echter Artikel" im WK liegen.
Man legt das Geschenk als ganz normalen GS in WC an und trägt die Mindestbestellsumme ein (Gültigkeitsdauer kann aktiviert werden oder auch nicht)

Script in stdcart.ipl:
<!--spmacro:module(util)

my $ITEM = ssp::db_get_prefix() . "ITEM";
my $itemid = "_GS_GS1234";
my $jetzt = time();
my $count = ssp::readSQLData(qq|SELECT IMG,DESCR,STAFP1 FROM $ITEM WHERE ITEMID = '$itemid' AND (!LENGTH(STAFM3) OR (STAFM3 > $jetzt AND STAFP4 < $jetzt))|, "IMG","DESCR","ABWARENWERT");
$img = ssp::get_var_db("IMG",0);
if (length($img) > 2) {$img = qq|<img src="../$img" alt="" border="0" width="60">|;}
$descr = ssp::get_var_db("DESCR",0);
$wert = ssp::get_var_db("ABWARENWERT",0)/100;

#Warenkorb
sub geschenk {
my $out;
if ($count >= 0) {
my $warenwert = ssp::get_wkprodsum ();
my $preis = main::fp(0);
if ($warenwert >= $wert) {
$out = qq|
<div class="wk_header" style="height:80px;">
<div class="artikel_infos_head" style="width:325px; height:25px;float:left;margin-right: 25px;">
<span style="float:left;width:100px;"> $img </span>
<span style="float:left;width:210px;overflow:hidden;">$descr</span>
</div>
<div class="stueckzahl_head" style="width:105px;height:25px;float:left;margin-right: 25px;">
1
</div>
<div class="einzelp_head" style="width:85px;height:25px;float:left;margin-right: 25px;">
gratis
</div>
<div class="gesamtp_head" style="width:90px;height:25px;float:left;margin-right: 25px;">
$preis
</div>
<div class="options_head" style="width:70px;height:25px;float:left;">
</div>
</div>
<div style="clear: both;height:5px;border-bottom:1px solid grey;width:100%;margin-bottom: 15px;"></div>  
|;
 main::mprint $out;
 
 }
}  
}
-->

my $itemid = "_GS_GS1234";  ##hier die Gutschein-Artikelnummer eintragen
$out = qq|  <html-code der Artikelausgabe im WK> |;  

Auf der Warenkorbseite dann unterhalb
<!--spmacro:loopitem-->
....
<!--spmacro:enditem-->
__util::geschenk__
dazu schreiben.

Wenn die Artikel auch im Bestellablauf, Mail an Kunden/Händler etc. ausgegeben werden, kann man mit weiteren subs die Ausgabe dafür anpassen.
Die DB-Abfrage steht auĂźerhalb der sub - braucht also nicht jedesmal wiederholt werden.

#Bestellablauf
sub geschenk2 {
...
}

#mail an Händler
sub geschenk3 {   
...
}

Beispiel im Demo-Shop2_0 (http://www.woll-insel.at/cgi-bin/demoshops/shop2_0/iboshop.cgi?placecart10!0,,ST00001:1)

Das Geschenk wird ab Warenwert 500,- in den WK gelegt.
Erhöhen Sie die Artikelanzahl (oder legen Sie weitere Artikel in den WK) und das Geschenk wird angezeigt.
Bei Unterschreiten von Warenwert 500,- wird das Geschenk wieder entfernt.