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

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline admin

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 544
  • 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: https://www.shoppilot.net/pf/index.php?topic=1552.0

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
5237 Aufrufe
Letzter Beitrag Juni 03, 2007, 22:49:27
von admin
xx
Import von Varianten

Begonnen von metallic

0 Antworten
3353 Aufrufe
Letzter Beitrag Oktober 06, 2009, 13:16:16
von metallic
xx
LBSAUTO für Varianten

Begonnen von jg

1 Antworten
4909 Aufrufe
Letzter Beitrag März 20, 2006, 10:53:21
von jg
xx
arbeiten mit Varianten

Begonnen von dobra

4 Antworten
6579 Aufrufe
Letzter Beitrag April 13, 2007, 07:35:15
von dobra