Autor Thema: Varianten in Listbox und Lagerbestand  (Gelesen 7114 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline admin

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 530
  • Lob: 10
Varianten in Listbox und Lagerbestand
« 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.

<!--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
if  ((length($lbsauto) == 0) || ( $lbsauto > 0)) {
                       my $vitemid = ssp::get_var_varticle('itemid',$i);


Linkback: http://www.shoppilot.net/pf/seo/7/varianten-in-listbox-und-lagerbestand/1552/

Offline hop

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 705
  • Lob: 5
Re: Varianten in Listbox und Lagerbestand Artikelnummer mit "-"
« 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:
<!--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);
}
-->


Schöne Grüße hop


xx
LBSAUTO und Listbox

Begonnen von neZicke

2 Antworten
3676 Aufrufe
Letzter Beitrag Juni 03, 2007, 22:49:27
von admin
xx
Listboxauswahl für Varianten

Begonnen von dobra

1 Antworten
3441 Aufrufe
Letzter Beitrag April 16, 2008, 10:10:05
von dobra
xx
Varianten/Staffelpreise

Begonnen von manitram

1 Antworten
4323 Aufrufe
Letzter Beitrag Mai 10, 2003, 22:36:43
von hop
xx
Image bei Varianten

Begonnen von dobra

2 Antworten
4243 Aufrufe
Letzter Beitrag November 14, 2006, 10:05:49
von dobra