Das Strato-Shop-cgi: So geht's besser!


Mit Ausweitung der PowerWeb-Paketen auf Perl und SSL-Verschlüsselung habe ich mir das Ursprungs-Script des Strato-Shops von der c't besorgt und umgebaut! Mit diesem Script wird es nun möglich, daß

Bis auf die SSL-Verschlüsselung wurde das so modifizierte Script bereits auf einer 1&1 Domain getestet - Danke, Kai!
Aber das ist noch nicht das Ende der Fahnenstange! Ich arbeite noch an folgenden Features:

Wer hat noch Vorschläge?

Zum Testen schaut Euch mal diesen Testshop an. Das ist zwar eine Dauerbaustelle, sollte aber zumindest auf der ersten Katalogseite funktionieren. Wer mehr wissen will: siehe Kontaktformular am Ende der Seite!

Wer ein Power-Web-Paket oder mehr bei Strato hat, kann auch die cgi-Skripte benutzen, die Strato anbietet. Diese Skripte haben alle so ihre Macken, die man entweder akzeptiert (und nicht allzu viel vom Support erwartet) oder aber nicht, und dann neue Skripte im Internet sucht.

Einen Vorteil jedoch darf man nie vergessen: ist Strato nicht verfügbar, sind es auch nicht die Skripte. Doch umgekehrt kann Frust entstehen: da ist Strato on-line, aber das verlinkte Skript einer anderen Site nicht. Beispiele hat man vielleicht schon selbst beim Surfen erlebt: Gästebücher, die nicht verfügbar sind oder on-line Shops, die temporär nicht erreichbar sind (das gilt auch für kostenlose Strato-Shops, oder ???)

Wenn Sie mit cgi-Skripten von Strato arbeiten, so sollten Sie zunächst die Anleitungen dazu genau lesen und befolgen. Die Links sind: http://www.strato.de/full/service/kundenservice.html bzw. direkt, ohne Login in Ihren Servicebereich, http://www.strato.de/service/allgemein/cgi/.
Wenn Sie Probleme haben, schauen Sie doch erst mal unter http://stratofaq.ig4.de/ nach.
Und wenn das Problem immer noch nicht gelöst ist, oder Sie nicht suchen wollen, oder aus welchen Gründen auch immer: Sie können ja auch ein eMail an den Support aus Ihrem Kundenbereich schicken....

Wenn dann alles nichts hilft, bleibt dann nur noch die Selbsthilfe.

Äh ???

JA, Sie müssen unter Umständen tricksen!!!!

So ging es jedenfalls mir, als ich endlich vom Strato-Support die Bestätigung erhielt, daß das Shop-cgi derzeit (?) NICHT auf non-.de-Domains läft. Genauer gesagt: die eMail-Funktionalität ist gestört (!?) - es kommen keine Bestell-eMails an!
Danach wurde ich dann mehrere Monate um Geduld gebeten, daß das Problem in Arbeit ist und die Lösung noch ein wenig dauert - bla-bla-bla.

RATSCH ... - das war mein Geduldsfaden, der riß, zumal mein Auftraggeber eine Lösung bis Mai 2002 haben mußte!

Und da kam mir auf einer Autofahrt die Idee: wenn das Skript bis zum eMail-Versand läuft, dann muß es doch möglich sein, das eMail-Skript einzubauen, das ja klappt. Nach einigen Tests fand ich die Lösung! Hier der Trick:

  1. Sie erstellen die Shop-Seiten wie angegeben.

  2. Die Datei order_tpl.html ändern Sie wie folgt ab:
    HTML Source Code Anm.
    ...
    
    <!-- <form action="shopping.cgi?sendOrder" method="POST"> -->
    <form action="/cgi-bin/mailmanager.pl" method="POST">
    
    <input type=hidden name="redirect" value="http://Ihre_Strato_Domain/shop/danke.html"></input>
    <input type=hidden name="recipient" value="bestell_eMail_Adresse@Ihre_Strato_Domain"></input>
    <input type=hidden name="subject" value="on-line Bestellung"></input>
    <input type=hidden name="print_config" value="email,realname"></input>
    
    ...
    
    <code><b><input type="text" name="realname" value="<!--NAME1-->" readonly="readonly"></input></b></code><br>
    <code><b><input type="text" name="ADDR1" value="<!--ADDR1-->" readonly="readonly"></input></b></code><br>
    <code><b><input type="text" name="ADDR2" value="<!--ADDR2-->" readonly="readonly"></input></b></code><br>
    <code><b><input type="text" name="email" value="<!--EMAIL-->" readonly="readonly"></input></b></code>
    
    ...
    
    <code><b><input type="text" name="Summe" value="<!--P_SUM_ORD-->" readonly="readonly"></input></b></code>
    
    ...
    
    1
    
    2
    3
    
    4
    5
    6
    7
    
    8
    
    9
    
    
    
    
    10
    
    11
    
    12
    

    Was haben Sie gemacht ? Nun, Sie haben die Elemente wie <!--ADDR1-->, die vom Shop-cgi ersetzt werden, wenn diese Seite aufgerufen wird, als nicht-veränderbare Eingabe-Felder für das eMail-Skript umdefiniert.
    Zwar interpretiert Netscape 4.x das readonly="readonly" nicht, aber der im Cookie enthaltene Wert wird nicht verändert!

  3. Die Datei order_row.html ändern Sie wie folgt ab:
    HTML Source Code Anm.
    ...
    
    <input type="hidden" name="<!--PRODUCT--> | Preis: <!--PRICEPU--> EURO | Anz.: <!--P_PCS_VAL--> | Summe: <!--P_SUM_P_U--> EURO" value=" "></input>
    
    ...
    
    1
    
    

    Hier wird ein verborgenes Feld pro Bestellposition für das eMail-Skript eingefügt.
    WICHTIG: der Name name= muß eindeutig sein - sonst wird im eMail-Skript nur das erste Feld mit demselben Namen übertragen. Dazu können Sie den Feldnamen aus den Elementen <!--PRODUCT-->, <!--PRICEPU-->, <!--P_PCS_VAL-->, <!--P_SUM_P_U--> beliebig zusammensetzen.
    WICHTIG: der Wert value=" " muß angeben werden; mindestens mit einem Blank.

Das ist alles! Ein Bestellmail sieht dann wie folgt aus:

Formulareintraege von
andreas skript (andreas@hillschmidt.de) am Freitag, 12 April, 2002 um 16:03:04
------------------------------------------------------------------------

email: andreas@hillschmidt.de

realname: andreas skript

ADDR1: teststrasse 66

ADDR2: 12345 stratort

==Buchung== 81 Zauberkurs fuer Erwachsene | Preis: 50.00 EURO | Tln.: 1 | Summe: 50 EURO:

Summe: 50

------------------------------------------------------------------------


Der Shop, der damit auf einer Strato-Domain läuft: http://www.klarenthal.org/shop/.
Eingebettet ist er in das on-line Angebot des Volksbildungswerkes Wiesbaden-Klarenthal, auch unter Strato gehostet.

Übrigens: dieses Vorgehen löst auch das DM-Problem auf Shops unter .de-Domains ...

Und noch ein Trick:

Mit einem einfachen Kniff ist auch der Mini-Shop in der Lage, ein Bestätigungs-eMail zu schicken:

1. Der Shop ist auf das mailmanager.pl Script umgestellt, wie auf dieser Seite und in den Strato-FAQ beschrieben (wo Strato den Trick wohl her hat).

2. Das order_tpl.html im Verzeichnis shop/ wird wie folgt geändert:
im <head>-Bereich werden folgende Zeilen eingefügt:

<script language="JavaScript">
<!--
var eMail="<!--EMAIL-->";
//-->
</script>

3. Im <body>-Bereich wird die Zeile mit dem recipient (<input type="hidden" name="recipient" value="webmaster@domain.de"> oder ähnlich) komplett ersetzt mit den Zeilen

<script language="JavaScript">
<!--
document.write("<input type=hidden name=recipient value=webmaster@domain.de,"+eMail+"></input>")
//-->
</script>

4. Ferner wird die Zeile <input type="text" name="email" value="<!--EMAIL-->" readonly="readonly"> ersetzt mit den Zeilen

<script language="JavaScript">
<!--
document.write("<code><b><input type=text name=email value=" + eMail + " readonly=readonly></input></b></code><br>")
//-->
</script>

Das wars!

Technischer Hintergrund:

Cool, oder ?

Falls Sie Fragen, Anmerkungen, ... haben: hier das Feedback-Formular:

Ihr Name:
Ihre eMail Adresse:
Ihr Kommentar:
     

Und: auch diese Seite ist bei Strato gehostet!


zuletzt geändert am 04.01.2012
© 2002 Andreas Schmidt