Shopsystem ShopPilot Shoploesung Diskussionen und Infos zum Shopsystem ShopPilot
Willkommen Gast. Bitte einloggen oder registrieren.
Mai 20, 2012, 01:57:46

Einloggen mit Benutzername, Passwort und Sitzungslänge
Suche:     Erweiterte Suche
5257 Beiträge in 1422 Themen von 333 Mitglieder
Neuestes Mitglied: pje
* Übersicht Hilfe Login Registrieren
+  Diskussionen und Infos zum Shopsystem ShopPilot
|-+  ShopPilot
| |-+  Aktuelle FAQ - Häufige Fragen
| | |-+  Varianten in Listbox und Lagerbestand
0 Mitglieder und 1 Gast betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Drucken
Autor Thema: Varianten in Listbox und Lagerbestand  (Gelesen 1908 mal)
admin
Administrator
Sr. Member
*****

Lob: 9
Offline Offline

Beiträge: 443


« am: September 13, 2011, 12:46:29 »

Frage: Ich möchte meine Varianten in einer Listbox darstellen. Dabei sollen aber nur die verfügbaren Größen angezeigt werden. Wie kann ich Größen ausblenden, die keinen Lagerbestand haben.

Anwort: Zusnächst mal zum Lagerbestand. Der wird üblicherweise in den benutzerdefinierten Feldern LBS oder LBSAUTO geführt. LBSAUTO verrringert sich bei Käufen automatisch. Die Lösung ist natürlich, dass wir die Listbox per SSP ausgeben.
Dazu legen wir ein kleines Modul "vari" an. Dies kann direkt in der Vorlage der Detailseite passiern oder in einer vari.ipl Datei. Wenn amn die Funktion in verschiedenen Vorlagen nutzen möchte sollte man eine vari.ipl anlegen und diese per <!--spmacro:include(scripts/vari.ipl)--> einbinden.

Wir lesen einfach per SSP in einer Schleife den Lagebestand der Varrianten aus. Ist dieser grösser Null. lesen wir die restlichen Daten der Variante und legn eine Zeile in der Lisbox an.

Code:
<!--spmacro:module(vari)
sub show {
my $index    = $_[0];
my $anzahl   = $_[1];
my $vindex   = $_[2];
my $vanzahl = $_[3];

my $itemid =  ssp::get_var_article("itemid",$index);
my $out = qq{<form name="Alv$itemid" action="">\n<select name="variant">\n};
$out .= qq{<option>Bitte Größe wählen</option>\n};

for(my $i = 0; $i <= $vanzahl; ++$i) {
my $lbsauto  = ssp::get_var_varticle('LBSAUTO',$i);
if ($lbsauto > 0) {  # eventuell auch  || length($lbsauto) > 0
  my $vitemid = ssp::get_var_varticle('itemid',$i);
my $descr   = ssp::get_var_varticle('idescription',$i);
my $price   = main::fp(ssp::get_var_varticle('preis',$i));
$out .= qq{<option value="$vitemid"> $descr $price  </option>\n};
   }
}
$out .= "</select></form>\n";
main::mprint($out);
}
-->

Angezeigt wird die Listbox dann mit __vari::show__

Wenn man nicht für alle Varianten einen gültigen Lagebestand hat, würde das Feld LBSAUTO leer beleiben.
In diesem Fall bleibt es auch  bei Verkäufen unberührt.
Die Abfragebedienung wäre dann
Code:
if  ((length($lbsauto) == 0) || ( $lbsauto > 0)) {
                       my $vitemid = ssp::get_var_varticle('itemid',$i);
Gespeichert
hop
Global Moderator
Hero Member
*****

Lob: 5
Offline Offline

Beiträge: 705


« Antwort #1 am: November 05, 2011, 16:14:24 »

Hiezu noch eine Ergänzung: Falls man in der Artikelnummer des Hauptartikels ein Minuszeichen hat, muss man dieses entfernen.
Der Code lautet dann:
Code:
<!--spmacro:module(vari)
sub show {
my $index    = $_[0];
my $anzahl   = $_[1];
my $vindex   = $_[2];
my $vanzahl = $_[3];

my $itemid =  ssp::get_var_article("itemid",$index);
$itemid =~ s/\-//g; # MINUS ENTFERNEN
my $out = qq{<form name="Alv$itemid" action="">\n<select name="variant">\n};
$out .= qq{<option>Bitte Größe wählen</option>\n};

for(my $i = 0; $i <= $vanzahl; ++$i) {
my $lbsauto  = ssp::get_var_varticle('LBSAUTO',$i);
if ($lbsauto > 0) {  # eventuell auch  || length($lbsauto) > 0
  my $vitemid = ssp::get_var_varticle('itemid',$i);
my $descr   = ssp::get_var_varticle('idescription',$i);
my $price   = main::fp(ssp::get_var_varticle('preis',$i));
$out .= qq{<option value="$vitemid"> $descr $price  </option>\n};
    }
}
$out .= "</select></form>\n";
main::mprint($out);
}
-->


Gespeichert

Schöne Grüße hop
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