Shopsystem ShopPilot
ShopPilot => Visual Forms => Thema gestartet von: dobra am Januar 01, 2008, 21:35:23
-
Hallo,
Habe mit 01.01.08 jetzt doch Lieferzonen in mein Shop eingebaut.
War bißchen kompliziert, da ich div andere Berechnungsfunktionen (keine Versandkosten bei nur Gutscheinbestellung, versandkosenfrei ab € 100,- und artikelbezogener Rabatt muß daher schon vom Warenwert und nicht erst von der Gesamtsumme abgezogen werden) eingebaut habe und daher die "normale" Lieferzonen -> Versandkostentabelle nicht verwenden konnte.
Aber ich denke, ich habe das ganz gut gelöst :D
Jetzt möchte ich aber auch im Kundenkonto - Einstellungen die Wahl der Zahlart von der Lieferzone abhängig machen.
= es soll so wie im WK funktionieren -> nur die für diese Lieferzone freigeschaltenen Zahlarten sollen in der Listbox angezeigt werden.
...
my $zone = ssp::get_var_user(LIEFERZONE);
my $out;
if ($zone <= 3) {
$out = qq |
<select size="1" name="ZAHLUNGSART" style="width: 180px;">
<option value="__ZAHLUNGSART:3__">Kreditkarte (Daten SSL senden)</option>
<option value="__ZAHLUNGSART:4__">Kreditkarte (Daten faxen)</option>
<option value="__ZAHLUNGSART:2__">Vorauskassa (-3% Sconto)</option>
<option value="__ZAHLUNGSART:1__">Rechnung</option>
</select>
|;
} else {
...
Im konkreten Fall soll für Lieferzone 1 - 3 Zahlart 1 - 4 eingeblendet werden.
Für Lieferzone 4 - 26 aber nur Zahlart 2, 3 und 4.
Auserdem soll nur für "berechtigte" Kunden in Zone 4 - 26 auch Zahlart 1001 angezeigt werden.
(das funktioniert im Kundenkonto aber nicht - 1001 wird (wenn als option eingetragen) auch bei ALLEN angezeigt.
Das "__ZAHLUNGSART:x__" in qq | ... | geht aber nicht.
Ich komme nicht drauf, wie ich das maskieren kann ???
\__, _\_ oder \: nutzt garnix, mit __ statt __ wird's zwar richtig angezeigt, aber dann wird das value im Quelltext nicht ersetzt = Einstellungen werden nicht mehr gespeichert bzw. im WK vorbelegt.
Ist der Ansatz schon falsch?
-
Hallo Dobra,
das funktioniert so nicht, weil hier die Reihenfolge der Auswertung anders ist.
Man kann es so wie im (Standard) Kundenkonto Modul machen.
sub printZahlungsarten {
my $field = "ZAHLUNGSART";
my $selected = ssp::get_var_user($field);
my @values;
my @titles;
my $pre = ssp::db_get_prefix();
my $PAYADD = $pre . "PAYADD";
my $MERPAY = $pre . "MERPAY";
my $sql = qq|SELECT NAME,PAYID FROM $PAYADD,$MERPAY WHERE PID=PAYID AND MID='$main::h_id' ORDER BY SID|;
my $read = ssp::readSQLData($sql, "NAME", "PAYID");
if (-1 == $read) { main::syserr($sql); }
for (my $i = 0; $i < $read; $i++) {
my $name = ssp::get_var_db("NAME", $i);
my $id = ssp::get_var_db("PAYID", $i);
push(@values, $id);
push(@titles, $name);
}
printCombo($field, $selected, \@values, \@titles);
}
Gruss hop
-
Hallo hop,
Danke für den Code, aber bitte noch um "Gebrauchsanweisung" - irgendetwas fehlt mir da sicher noch ....
(ich nix verstehen :-\)
Wenn ich den Code so einbaue, bekomme ich "Undefined subroutine &zahlart::printCombo called at (eval 73) line 22. "
Mit print($field, $selected, \@values, \@titles); wird "ZAHLUNGSART4ARRAY(0x1e5de54)ARRAY(0x1e5de6c) " ausgegeben.
Ich möchte aber doch so gerne die Zahlartlistbox mit den "erlaubten" Optionen - wie mache ich das?
-
Hallo Dobra,
es kommt aus dem Kundenkonto Modul ,
zu finden z.B. im Carshop in kundenkonto_modul/kundenkonto_kdndaten_sonstige.html.
Dort findet man auch den kompletten Code.
Gruss hop
-
Danke hop
Jetzt habe ich's ;D