echtes GUTHABENKONTO bauen

Begonnen von dobra, November 15, 2008, 08:22:17

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

dobra

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

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)
mfG
dobra