ShopPilot > Aktuelle FAQ - H?ufige Fragen

"ab Preis" bei Varianten ausgeben

(1/1)

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:



--- Code: ---<!--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));
   }

}
-->


--- End code ---

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.


Linkback: https://www.shoppilot.net/pf/index.php?topic=1669.0

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

Lösung:


--- Code: ---<!--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
   }
}
-->
--- End code ---

Ausgabe mit __verzpreis::ab__ statt __preis__

Produktseite:


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

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

Lösung:

--- Code: ---<!--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));
   }
}
-->
--- End code ---

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
 
--- Code: ---main::mprint( main::fp($minpreis) . " - " . main::fp($maxpreis));
--- End code ---

Navigation

[0] Themen-Index

Go to full version
Powered by SMFPacks SEO Pro Mod | Sitemap