Tips zum Strato Shop cgi
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ß
- die Währung EUR angezeigt wird,
- zwei Dezimalstellen nach dem Komma angezeigt werden,
- das Cookie einen anderen Namen als SCHLECKI erhält,
-
Text unter jedes Bestellmail eingeblendet werden kann,
(dieses Feature hatte Strato ursprünglich dokumentiert, hat aber nie funktioniert) - der Besteller eine Kopie der Bestellung erhält,
-
die enthaltene Mehrwertsteuer ausgewiesen wird,
(Annahme: die MWSt ist in den Preisen enthalten und für alle Produkte gleich!) - das eMail an jemand anderes als den Webmaster geschickt werden kann,
- zusätzliche Felder eingebaut werden können, z.B. die Telefonnummer für Rückfragen,
-
eine Checkbox, das die AGB-Bedingungen gelesen und akzeptiert werden,
(bevor die Checkbox nicht angeklickt wurde, geht der Bestellungvorgang nicht weiter) - die Bestellung über eine SSL-gesicherte Leitung geht (ssl-id.de für Strato-Kunden),
- mehrere Shops auf einer Domain unabhängig voneinander laufen können.
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:
- Bankverbindung für Zahlung per Einzug einbauen,
- evtl. eine Versandkostenpauschale einbauen.
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!
UPDATE November 2012
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-faq.de.
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äuft. 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:
- Sie erstellen die Shop-Seiten wie angegeben.
-
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>
...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 dasreadonly="readonly"
nicht, aber der im Cookie enthaltene Wert wird nicht verändert! -
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 Namename=
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 Wertvalue=" "
muß angeben werden; mindestens mit einem Blank.
Das ist alles! Ein Bestellmail sieht dann wie folgt aus:
Formulareintraege von andreas skript (andreas(at)hillschmidt(dot)de) am Freitag, 12 April, 2002 um 16:03:04 ------------------------------------------------------------------------ email: andreas(at)hillschmidt(dot)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 ------------------------------------------------------------------------ |
Ein Shop lief mit dieser Änderung erfolgreich auf einer Strato-Domain, bis er durch eine teurere Lösung abgelöst wurde.
Ü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(at)domain(dot)de"> oder ähnlich) komplett ersetzt mit den Zeilen
<script language="JavaScript"> <!-- document.write("<input type=hidden name=recipient value=webmaster(at)domain(dot)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:
- das Ersetzen der Zeichenfolge <!--EMAIL--> durch das Strato-Script geschieht nur EINMAL!
- Daher wird in meinem Workaround die konkrete Absenderadresse des Bestellers einer Variablen zugewiesen.
- Diese Variable wird im Folgenden benutzt, um dem mailmanager-Script eine ZWEITE Adresse unterzuschieben. Diese Adresse wird mit Komma von der ersten Adresse, die auf einer Strato-Domain liegen muss, getrennt. Die zweite Adresse muss NICHT bei Strato liegen!
- Von nun an schickt der mailmanager die Bestellung an den Lieferanten (erste Adresse) und an den Besteller (zweite Adresse).
Cool, oder ?
Falls Sie Fragen, Anmerkungen, ... haben: hier der Link zum Feedback-Formular!
Und: auch diese Seite ist bei Strato gehostet!