ShopPilot > Visual Forms

benutzerdefinierte Felder in Kundenkonto - Bestelldetails =>Lösung

(1/1)

dobra:
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)


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

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

Beispiel:

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



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

dobra:


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



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

catwoman:
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.

dobra:
Hallo catwoman,

hier der Code (für Artikel - berücksichtigt auch abgelaufene Gutscheine)

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

und dann __produkt__ mit __show::produkt__ ersetzen

Navigation

[0] Themen-Index

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