Shopsystem ShopPilot Shoploesung Diskussionen und Infos zum Shopsystem ShopPilot
Willkommen Gast. Bitte einloggen oder registrieren.
Februar 08, 2012, 15:10:13

Einloggen mit Benutzername, Passwort und Sitzungslänge
Suche:     Erweiterte Suche
5208 Beiträge in 1408 Themen von 330 Mitglieder
Neuestes Mitglied: spraytool
* Übersicht Hilfe Login Registrieren
+  Diskussionen und Infos zum Shopsystem ShopPilot
|-+  ShopPilot
| |-+  Visual Forms
| | |-+  Kundenkonto-Einstellungen: Zahlart abhängig von Lieferzone
0 Mitglieder und 1 Gast betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Drucken
Autor Thema: Kundenkonto-Einstellungen: Zahlart abhängig von Lieferzone  (Gelesen 2525 mal)
dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1167


WWW
« 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  Cheesy

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.

Code:
...
     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  Huh
\__, _\_ oder \: nutzt garnix, mit &#95;&#95; 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?
« Letzte Änderung: Januar 02, 2008, 08:47:33 von dobra » Gespeichert

admin
Administrator
Sr. Member
*****

Lob: 9
Offline Offline

Beiträge: 434


« Antwort #1 am: Januar 02, 2008, 11:56:22 »

Hallo Dobra,

das funktioniert so nicht, weil hier die Reihenfolge der Auswertung anders ist.
Man kann es so wie im (Standard) Kundenkonto Modul machen.

Code:
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
Gespeichert
dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1167


WWW
« Antwort #2 am: Januar 02, 2008, 12:35:33 »

Hallo hop,

Danke für den Code, aber bitte noch um "Gebrauchsanweisung" - irgendetwas fehlt mir da sicher noch ....
(ich nix verstehen  Undecided)

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?

Gespeichert

admin
Administrator
Sr. Member
*****

Lob: 9
Offline Offline

Beiträge: 434


« Antwort #3 am: Januar 02, 2008, 12:47:36 »

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
Gespeichert
dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1167


WWW
« Antwort #4 am: Januar 02, 2008, 13:19:22 »

Danke hop 

Jetzt habe ich's  Grin
Gespeichert

Seiten: [1] Drucken 
« vorheriges nächstes »
Gehe zu:  

mysitelist Impressum Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS