Shopsystem ShopPilot

ShopPilot => Visual Forms => Thema gestartet von: dobra am Februar 17, 2007, 10:41:06

Titel: benutzerdefinierte Felder in Kundenkonto - Bestelldetails =>Lösung
Beitrag von: dobra am Februar 17, 2007, 10:41:06
Hallo,

Habe eine Lösung gefunden, wie man auch benutzerdefinierte Felder auf der Bestelldetail-Seite anzeigen kann:
(in diesem Beispiel wird berücksichtigt ob es sich um eine Variante oder einen Artikel handelt
Die Benutzedefinierten Felder ARTIKELNAME und SEITE sind bei Artikel angelegt, sollen aber auch bei Varianten angezeigt werden)

<!--spmacro:module(artikelname)
sub vanzeigen {
   my $index = $_[0];
   my $id = ssp::get_var_db("ITEMID",$index);
my $count = ssp::readSQLData("SELECT MITEMID FROM PY2_SITM WHERE ITEMID ='$id'","MITEMID");
if ($count >= 0) {
my $i=0;
while ($count > $i) {
$arikelid = ssp::get_var_db("MITEMID",$i);
++$i;
}

my $count = ssp::readSQLData("SELECT ARTIKELNAME, SEITE FROM PY2_ITEM WHERE ITEMID ='$arikelid'","ARTIKELNAME", "SEITE");
if ($count >= 0) {
my $i=0;
while ($count > $i) {
$name = ssp::get_var_db("ARTIKELNAME",$i);
$seite = ssp::get_var_db("SEITE",$i);
++$i;
}

my $anzeigen = qq{<a href="http://www.woll-insel.at/cgi-bin/shop2/iboshop.cgi?show$vseite,__xxsession__" > $vname </a>};
main::mprint ($anzeigen);
       }
}
}

sub anzeigen {
   my $index = $_[0];
   my $id = ssp::get_var_db("ITEMID",$index);
my $count4 = ssp::readSQLData("SELECT ARTIKELNAME, SEITE FROM PY2_ITEM WHERE ITEMID ='$id'","ARTIKELNAME", "SEITE");
if ($count4 >= 0) {
my $i=0;
while ($count4 > $i) {
$name = ssp::get_var_db("ARTIKELNAME",$i);
$seite = ssp::get_var_db("SEITE",$i);
++$i;
}

my $anzeigen = qq{<a href="http://www.woll-insel.at/cgi-bin/shop2/iboshop.cgi?show$seite,__xxsession__" > $name </a>};
main::mprint ($anzeigen);
       }
}

-->
Gewünschte Ausgabe, Name von den benutzerdefinierten Feldern und ev. Tabellennamen müssen natürlich angepaßt  werden.

Beispiel:
(http://www.woll-insel.at/Bilder/detail.gif)
hier wird statt der Artikelnr. der Artikelname (ben. def. Feld ARTIKELNAME) mit Link zu Seite (ben. def. Feld SEITE) ausgegeben.

Den Code in oitem_identifier.ipl schreiben - Ausgabe auf der kundenkonto_bestellung_detail.html Seite mit __artikelname::vanzeigen__ für Varianten und __artikelname::anzeigen__ für Artikel.

Das Skript kann natürlich - je nachdem was man anzeigen möchte - beliebig angepaßt werden.

P.S.:  der Code ist sicher umständlich und nicht professionell geschrieben, aber es funktioniert (zumindestens bei mir  :D)
PP.S.: um nicht mehr im Katalog vorhandene Artikel abzufangen, werde ich noch versuchen, eine "If"-Abfrage einzubauen - ist mir gerade eingefallen, daß das fehlt

Titel: Re: benutzerdefinierte Felder in Kundenkonto - Bestelldetails =>Lösung
Beitrag von: dobra am Februar 19, 2007, 09:02:25

Zitat
PP.S.: um nicht mehr im Katalog vorhandene Artikel abzufangen, werde ich noch versuchen, eine "If"-Abfrage einzubauen

(http://www.woll-insel.at/Bilder/Kundenkonto%20-%20Bestelldetails2.gif)

Wenn Arikel nicht mehr im Katalog ist (erster Artikel) wird wieder die Artikelnummer angezeigt und bei Beschreibung der Hinweistext
"Artikel ........."
(man kann natürlich auch beliebige andere Texte ausgeben)

Falls jemand den Code haben möchte, bitte um Nachricht
Titel: Re: benutzerdefinierte Felder in Kundenkonto - Bestelldetails =>Lösung
Beitrag von: catwoman am März 08, 2021, 14:03:27
Hallo Dobra, könnte ich den Code bitte haben. Gerne auch mit der Lösung:  um nicht mehr im Katalog vorhandene Artikel abzufangen. Vielen Dank im voraus.
Titel: Re: benutzerdefinierte Felder in Kundenkonto - Bestelldetails =>Lösung
Beitrag von: dobra am März 08, 2021, 14:29:16
Hallo catwoman,

hier der Code (für Artikel - berücksichtigt auch abgelaufene Gutscheine)
<!--spmacro:module(show)
sub produkt {
my $jetzt = time();
    my $index = $_[0];
my $itemid = ssp::get_var_cart('id', $index);
my $pre = ssp::db_get_prefix();
my $ITEM = $pre . "ITEM";
ssp::readSQLData("SELECT STAFP4 FROM $ITEM WHERE ITEMID='$itemid'","STAFP4");
my $gueltigbis = ssp::get_var_db('STAFP4', 0);
    my $produkt = ssp::get_var_cart('produkt', $index);
my $out = qq|$produkt|;
if ($itemid =~ /_GS_/ && $jetzt > $gueltigbis && length($gueltigbis)) {$out = "Gutschein abgelaufen";}
if (!length($produkt) && $itemid !~ /_GS_/ ) {$out = "nicht mehr verfügbar";}
main::mprint ($out);
}
-->>

und dann __produkt__ mit __show::produkt__ ersetzen