Hallo,
hab ich schon mal erwähnt, daß mit ShopPilot ALLES realisierbar ist? ;)
Aufgabe:
Ein GUTHABENKONTO für Kunden einrichten
das funktioniert so, daß man einem registrieten Kunden ein Guthaben zuschreiben kann
(z.B. den Betrag für Rücksendungen, "Provisionen", oder was auch immer)
Dieses Guthaben wird dann von der aktuellen Bestellung abgezogen.
Macht die Bestellung weniger aus als das Guthaben, wird das Guthabenbudget natürlich automatisch aktualisiert bzw gelöscht wenn es verbraucht ist.
Lösung:
zwei benutzerdefinierte Kundenfelder anlegen
GUTSCHTEXT -> hier kommt der Text rein
GUTSCHBETR -> hier kommt der Betrag rein
Code in stdall.ipl:
<!--spmacro:module(show)
sub gutschrift {
my $out;
my $out2;
my $kdnr = ssp::get_var_user("kundennr");
my $gstext = ssp::get_var_user('GUTSCHTEXT');
my $pre = ssp::db_get_prefix();
my $USR = $pre . "USR";
ssp::readSQLData(qq|SELECT GUTSCHBETR FROM $USR WHERE KUNDENNR = '$kdnr'|, "GUTSCHBETR");
my $wert = ssp::get_var_db('GUTSCHBETR',0);
$wert = 0 if ($wert eq $ssp::undefined);
$wertanz = main::fp($wert);
my $rbetr = ssp::get_wktotalsum ();
my $rest = $wert - $rbetr;
if ($rest < 0) {$rest = 0}
my $showrest = main::fp($rest);
if ($rest > 0) {$out2 = qq|
<tr>
<td colspan="6" class="mindertext" style="border:none;">Restguthaben</td>
<td colspan="2" class="mindertext" style="padding-right:15px;" nowrap bgcolor="#FEF7FE"> $showrest</td>
</tr>
|;
}
my $showrbetrneu = $rbetr-$wert;
if ($showrbetrneu < 0) {$showrbetrneu = 0;}
$showrbetrneu = main::fp($showrbetrneu);
if ($wert > 0) { $out = qq|
<input type="hidden" name="gseingeloest" value="$rest">
<tr>
<td colspan="6" class="mindertext" style="border:none;">$gstext</td>
<td colspan="2" class="mindertext" style="padding-right:15px;" nowrap bgcolor="#FEF7FE"> $wertanz</td>
</tr>
<tr>
<td colspan="6" class="mindertext" style="border:none;">Rechnungsbetrag NEU</td>
<td colspan="2" class="mindertext" style="padding-right:15px;" nowrap bgcolor="#FEF7FE"> $showrbetrneu</td>
</tr>
$out2
|;
main::mprint $out;
}
}
-->
der HTML-Teil muß natürlich angepasst werden
Im WK, auf den Bestelldatenvorlagen und im Mail an Händler mit __show::gutschrift__ ausgeben.
(wird nur angezeigt, wenn es auch ein Guthaben für diesen Kunden gibt)
Damit dieses Gutschriftfeld bei Bestellungen auch in der DB aktualisiert wird auf der Meldungsseite "Bestellung OK" diesen Code im Headbereich eintragen
<!--spmacro:module(gutschrift)
sub aktualisieren {
my $pre = ssp::db_get_prefix();
my $USR = $pre . "USR";
my $kdnr = ssp::get_var_user("kundennr");
my $sgrest = ssp::qform(ssp::get_var_form('gseingeloest')) ;
if ($sgrest ne 'undefined') {
my $sql = qq|UPDATE $USR SET GUTSCHBETR = "$sgrest" WHERE KUNDENNR = $kdnr|;
ssp::exec_sql($sql, 1);
ssp::db_update_usr($kdnr,"GUTSCHBETR",$sgrest)
}
}
-->
__gutschrift::aktualisieren__
und das war's schon :D
Mit "Daten einlesen" ist der aktuelle Stand des Kundenguthabens auch im WC
Jetzt möchte ich noch eine Funktion bauen, mit der der Kunde selber Gutscheinbeträge auf sein Guthabenkonto buchen kann
(so wie man das bei Amazon machen kann)
hier beschrieben: http://www.shoppilot.net/pf/shopbetrieb/gutschein_auf_guthabenkonto_buchen-t1340.0.html;msg4790#msg4790 (http://www.shoppilot.net/pf/shopbetrieb/gutschein_auf_guthabenkonto_buchen-t1340.0.html;msg4790#msg4790)
Achtung: bei Verwendung von Zahlartschnittstellen wie z.B. Sofortüberweisung wird das Guthaben nicht berücksichtigt!
(dafür wäre ein anderes Script nötig)