Shopsystem ShopPilot

ShopPilot => Aktuelle FAQ - H?ufige Fragen => Thema gestartet von: admin am März 09, 2010, 11:00:07

Titel: Testen, ob ein Gutschein im WK liegt
Beitrag von: admin am März 09, 2010, 11:00:07
Manchmal muss man feststellen, ob schon ein Gutschein im Warenkorb liegt, z.B. um zu verhindern, dass noch ein weiterer Gutschein genutzt werden kann.
Das grundsätzliche Vorgehen ist, dass man für alle Artikel im WK feststellt, ob die Artikelnummer mit dem Gutscheinkennzeichen beginnt.
    for (my $i=0;$i<=$anzahl;$i++) {
         my $item = ssp::get_var_cart('id',$i); # Artikelnummer
         if ($item =~ /^$main::KZGS/)  { # mit Gutscheinkennzeichen vergleichen
  main::mprint("GUTSCHEIN");
# Gutschein schon vorhanden
        } else {
main::mprint("KEIN GUTSCHEIN");
       }  
   }

Dies funktioniert wunderbar im Warenkorb. Leider ausserhalb des Warenkorbs nicht mehr, da die Warenkorbdaten nicht zur Verfügung stehen.

Man kann jedoch ein embedded Template mit WK Inhalt nehmen um doch noch überall an die Information zu gelangen.

Hier das Template gutschein.txt
__test::gs__ 

<!--spmacro:module(test)

sub gs { # Falls schon Gutschein im  WK ist hier Schluss
my $anzahl = ssp::get_cart_items();

    for (my $i=0;$i<=$anzahl;$i++) {
      my $item = ssp::get_var_cart('id',$i);
    if ($item =~ /^$main::KZGS/) {
   main::mprint("GUTSCHEIN");
   return; # Gutschein schon vorhanden
        } else {
   main::mprint("KEIN GUTSCHEIN");
    }  
}
}
-->


Hier der Code zum Aufruf
<!--spmacro:module(embed)

sub gutschein {
ssp::embedded("showwk","embedded/gutschein.txt");
}

...

Die Ausgabe erfolgt dann mit __embed::gutschein__