"ab Preis" bei Varianten ausgeben

Begonnen von admin, August 23, 2013, 17:18:42

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

admin

Frage: Ich möchte in zu Variantenartikeln einen "ab Preis" darstellen, wie komme ich an den günstigsten Preis in dem Variantenartikel ?

Lösung:



<!--spmacro:module(preis)
sub ab {
   my $index = $_[0];
   my $anzahl = $_[1];
   my $vindex = $_[2];
   my $vanzahl = $_[3];
   if ($vanzahl > 0) { # Sind überhaupt Varianten da ?
      my $minpreis = 9999999999; # sehr hoher Preis
      for( my $i = 0; $i <= $vanzahl; ++$i) { # alle Varianten durchlaufen
         my $vp = ssp::get_var_varticle('preis',$i);
         if ($vp < $minpreis) {  # ist der Preis niiedriger ?
            $minpreis = $vp;
         }
      }
      main::mprint("ab " . main::fp($minpreis));
   }

}
-->



Mit __preis::ab__ kann man dann den niedrigsten Preis einer Variante des Artikels ausgeben.
Das Script ist für Artikelseiten gedacht funktioniert aber auch auf er Detailseite.

dobra

#1
Frage: geht das auch für Staffelpreisen (Varianten kosten alle das selbe) ?

Lösung:

<!--spmacro:module(verzpreis)
sub ab {
my $index = $_[0];
my $anzahl = $_[1];
my $minpreis = 9999999999; # sehr hoher Preis
   if ($index <= $anzahl) {
 my $st1 = ssp::get_var_article('stafp1', $index);
if (length($st1)) { # Sind überhaupt Staffelrabatte eingetragen ?
$st1 =~ s/,/./g;
my @liste = ($st1);
my $st2 = ssp::get_var_article('stafp2', $index);
if (length($st2)) {$st2 =~ s/,/./g; push(@liste, $st2)};
my $st3 = ssp::get_var_article('stafp3', $index);
if (length($st3)) {$st3 =~ s/,/./g; push(@liste, $st3)};
my $st4 = ssp::get_var_article('stafp4', $index);
if (length($st4)) {$st4 =~ s/,/./g; push(@liste, $st4)};
 foreach $x (@liste) {
if ($x < $minpreis) {  # kleinsten Preis ermitteln
$minpreis = $x;
}
 }  
 main::mprint("<small>ab</small> " . main::fp($minpreis));
  } else {main::mprint("__preis__");}  # sind keine Staffelpreise eingetragen, wird der normale Preis ausgegeben
  }
}
-->


Ausgabe mit __verzpreis::ab__ statt __preis__

Produktseite:


auf der Detailseite gebe ich die Preise und Staffelrabatte dann "konventionell" aus
mfG
dobra

dobra

Aufgabe:
das "ab" soll nur ausgegeben werden, wenn es unterschiedliche Variantenpreise gibt

Lösung:
<!--spmacro:module(preis)
sub ab {
  my $index = $_[0];
  my $anzahl = $_[1];
  my $vindex = $_[2];
  my $vanzahl = $_[3];
  my $vp;
  my $ab;
  if ($vanzahl > 0) { # Sind überhaupt Varianten da ?
     my $minpreis = 9999999999; # sehr hoher Preis
 my $maxpreis = 0;
     for( my $i = 0; $i <= $vanzahl; ++$i) { # alle Varianten durchlaufen
        $vp = ssp::get_var_varticle('preis',$i);
        if ($vp < $minpreis) {  # ist der Preis niedriger ?
           $minpreis = $vp;
        }
        if ($vp > $maxpreis) {
           $maxpreis = $vp;
        }
     }
       if ($minpreis != $maxpreis) {$ab = "ab ";}
     main::mprint($ab . main::fp($minpreis));
  }
}
-->


mit __preis::ab__  wird jetzt nur dann ein "ab <Preis>" ausgegeben, wenn es mehr als einen Preis bei den Varianten gibt.

Will man z.B.  Preis von - bis ausgeben, kann man das so machen
main::mprint( main::fp($minpreis) . " - " . main::fp($maxpreis));
mfG
dobra