Demo Webshop mit dem PlayTime-Warenkorb

Achtung: falls Sie die Seite nicht über www.rechtschreibung.at aufgerufen haben, stellen Sie bitte den Internet-Explorer beim Datenschutz auf Low / Niedrig, ansonsten reicht Mittel (gilt sinngemäß auch für andere Browser). Grund: da diese Seite auch über andere Domains erreichbar ist, handelt es sich dann um ein 3.-Cookie, das ansonsten geblockt werden würde. Wollen Sie die Sicherheitseinstellungen nicht lockern (sehr zu empfehlen!), dann bitte zum Funktionstest des Warenkorbes bitte die Seite direkt über www.rechtschreibung.at aufrufen! Die Funktion können Sie gefahrlos testen, indem Sie bei den Listen der folgenden Kategorien jeweils auf das Bild klicken und dann die Waren in den Warenkorb legen. Beim Bestellen können Sie ebenfalls gefahrlos das Formular absenden, da Sie ja nicht wirklich was bestellen...

zum virtuellen Warenkorb

ACHTUNG

Die Firma Playtime hat NICHTS mit dieser Demo zu tun! Ich habe mich auch nicht sonderlich darum bemüht, überall den Namen "Playtime" rauszulöschen, da dies NUR EINE DEMO ist.

In einer echten Produktivumgebung im Einsatz sehen können Sie den Warenkorb (noch in v0.9b) aber tatsächlich unter www.Playtime.co.at

Der virtuelle Warenkorb (aktuell: v0.92a)

Auch Sie können Ihn nutzen. Ich stelle ihn unter Open Source. Ich werde mich aber nicht sonderlich um die Dokumentation hier kümmern, da in erster Linie PHP-Entwickler angesprochen sind, die eh wissen sollten, was sie tun.

Erste Frage: WAS KOSTET DER?

Antwort: viel! Und zwar je nach Ihren Wartungsprogrammierkenntnissen mehr oder weniger Zeit und freie Spende an:

Christian Gossmann
KN:
710444985
BLZ
20151
Bank-Austria-Creditanstalt AG
IBAN:
AT361200000710444985
BIC:
BKAUATWW

Paypal: c@gossmann.at

Ich stelle den Warenkorb unter Freeware, d.h. Sie dürfen damit tun und lassen was sie wollen. Sie dürfen aber keine Kohle damit machen! Ausnahme: durch den zweckmäßigen Verkauf der mit dem Warenkorb angebotenen Artikeln. Ferner lautet die Bedingung, den Skript-Kopf dahingehend in den Skripts zu belassen, dass dort mein Name weiterhin drin bleibt!

Zweite Frage: WAS KANN DER und wie funktioniert er?

Antwort: auch viel! Er kann eine beliebige Anzahl an Artikeln und Kategorien verwalten (je nachdem, wie man die Skripts anpasst). Standardmäßig sind es 99 Kategorien und 9999 Waren / Kategorie (empfohlen werden aber nur max. 20000 Waren wegen der Skriptlaufzeiten). Ansonsten ist dieser Warenkorb im Gegensatz zu dem was von Amazon & Co. geboten wird, sauschnell. Die Artikeln werden per Grafik veranschaulicht und der Warenkorb merkt sich anahnd von temporären Session-Cookies die gewünschten Artikeln, die man in den Warenkorb legt (dies geschieht einfach per Schaltfläche, wobei dafür kein eigenes Skript aufgerufen wird, das die Seite neu lädt -> damit erpart man sich auch hier Serverlast). Ferner erlaubt JavaScript die Anpassung / Löschung der Artikeln und schickt per E-Mail die Bestellung an den Betreiber, sowie eine Bestätigungsmail an den Käufer. Ferner wird automatisch eine Nachnahmegebühr von 3 Euro automatisch zum Gesamteinkaufsbetrag dazugerechnet (das kann aber jeder im Skript ändern). Es erfolgt eine gewisse Sicherheit, da die Eingaben per JavaScript geprüft werden (da dies clientseitig geschieht, wird hier der Server entlastet - etwas was bei anderen Warenkorbsystemen NICHT DER FALL ist). Als Sicherheit, wenn JavaScript abgedreht wird, wird das Formular von PHP nicht gesendet. Dazu dient eine entsprechende Skriptvariable. Außerdem ist ein Referer-Check eingebaut, der aber erst angepasst werden müsste. Normalerweise reicht der JavaScript-Test... Die IP-Adresse vom Käufer wird aber protokolliert (falls das vor Gericht kommt...)

Hinweise:

  • wenn Waren bereits im Warenkorb vorhanden sind, wird dies bei neuerlichem Hinzufügen nicht gemeldet:
     
    Stimmt und stimmt nicht. Stimmt, wenn Sie NUR die Webbrosernavigation (zurück und vorwärts) verwenden - hier hat das Warenkorbsystem keine Chance wegen dem Caching "dies mitzukriegen". Stimmt daher nicht, wenn Sie die Artikelseite direkt aus den Übersichtslisten per Klick aufrufen, d.h. die PHP-Aufbereitung neuerlich durchführen lassen (damit wird der Browser-Cache umgangen). Die Dokumente sind zwar so eingestellt, dass Caching prinzipiell untersagt wird -> dennoch scheren sich moderne Webbroser und / oder Betriebssysteme ganz im Sinne des Benutzers (dem das Denken abgenommen wird) einen Dreck darum -> das kommt dann dabei heraus, ohne dass ich etwas dafür kann.
     
  • FEINE LÖSUNG ZU DIESEM PROBLEM WURDE BEREITS PROGRAMMIERT: ein Onload-Handler in der linkidx.php der ein Javascript aufruft, checkt das entsprechende Cookie "nach" und korrigiert den noch "gecachten" PHP-Wert um den Cookie-Wert von Javascript (bei dieser Gelegenheit wurde gleich die Artikelhinzufügemeldungsroutine dahingehend geändert, dass eine doppelte Hinzufügung zum Warenkorb (ohne die Seite zwischenzeitlich gewechselt zu haben) korrekt die Meldung ausgibt, dass der Artikel schon drin ist (eben mit Menge: 1) - da dies jedoch nur Etappe #1 auf dem Weg zu V0.93 ist, steht dieser "Fix" unter der Computerkunst als "v093B01.zip" zum Download und beinhaltet ausschließlich die verbesserte "linkidx.php"-Datei. Das Haupt-Warenkorbskript (virtkorb.php) selbst musste hierfür nicht geändert werden - da sieht man, wie stabil das Kernskript eigentlich läuft...

  • zur Warenkorbartikelanzahl vs. Anzahl unterschiedlicher Artiklen in der Bestellungsmail:
     
    Es handelt sich nicht um eine doppelte Zählung, sondern um einen statistischen Wert. Das "Warenkorbartikelanzahl"-Feld spiegelt die Anzahl der ursprünglich eingekauften Artikel VOR Absendung der Bestellung wider. Da es möglich ist, Artikeln aber noch auf 0 zu setzen, erhält der Webshop-Betreiber den tatsächlichen Wert (=Anzahl unterschiedlicher Warenkorbartikel) UND die Warenkorbartikelanzahl (vor der Absendung) - testen Sie es! Füllen Sie den Warenkorb mit mind. 2 unterschiedlichen Artikeln, setzen Sie mind. 1 davon wieder auf 0 und senden die Bestellung ab und sehen was passiert... Es wird völlig korrekt die Anzahl der Warenkorbartikeln ausgegeben - leider sind die Variablennamen unglücklich gewählt und der E-Mail-Text auch...
     
  • zur "0-Setzung" der Artikeln beim Absenden:
     
    es handelt sich nicht um einen Fehler, sondern um gewollte 0-Setzung der Artikeln. Bei langsamen Server-Anbindungen dauert es nämlich bis Sendmail hochfährt und die Daten zur Verarbeitung entgegennimmt. Bis dahin wurde aus Sicherheitsgründen aber schon der Warenkorb auf 0 gesetzt, um Doppelbestellungen zu verhindern, sollte mehrmals geklickt werden - genau das sehen Sie bei hohen Auflösungen noch am Bildschirm, während noch die korrekte Verarbeitung der vorher übergebenen Daten läuft. Also bitte Geduld! Sobald auf Bestellen geklickt wurde, läuft die Bestellung auch - es wird schon eine Bestätigungsseite eingeblendet... Außer der Strom fällt aus, oder das Internet wird vernichtet, oder die Hardware geht ein, oder sonstige höhere Gewalt ist im Spiel...

neu in V0.91

  • Tausendertrennzeichen werden bei großen Zahlen im Warenkorb eingefügt

neu in V0.92

  • Texte wurden um "Playtime" erleichtert - hier steht nun Rechtschreibung (damit keine Verwirrung mehr stattfindet...) - es handelt sich allerdings immer noch um den Playtime-Warenkorb!
  • Fehler beim Referer-Check behoben
  • aussagekräftigere Fehlermeldungsseite für abgedrehtes Javascript und falschen Refereraufruf, anstatt 0815-Meldungstext

neu in V0.92a (nur ne Zwischenversion...)

  • Rückverlinkung auch von den Bildern im Warenkorb zur Beschreibung

geplant in Version V0.92+

  • Tausendertrennzeichen (auf Wunsch) auch in den Bestätigungsmails, bzw. der Bestellmail in den Artikellisten und nicht nur in der Endsumme (fehlt in V0.92 noch ist aber schon im hier vorhandenen Betakorbscirpt drin zusammen mit einer verbesserten Linkindex-Datei diesbezüglich [OHNE SUPPORT]...)
  • E-Mail-Test auch in PHP (v.a. ob es die Server gibt -> wird nämlich der JavaScript-Test bestanden, heißt das noch lange nicht, dass der Server auch wirklich existiert. Vertippt kann man sich ja jederzeit haben...
  • irreführende Variablennamen und der E-Mail-Text für Warenkorbartikelanzahl vs. Anzahl unterschiedlicher Artiklen in der Bestellungsmail wird geändert
  • HTML-Mails (auf Wunsch) / mit tabellarischer Warenanzeige wie im Web
  • Limitierung der Menge in den OPTION-Tags, da ansonsten im Extremfall die HTML-Dateien recht groß und die Auswahllisten recht lang werden
  • Fehlermeldungsseite anstatt 0815-Meldungstext auch bei Mail-Versandfehler der Bestellungsmail
  • Tausendertrennzeichen auch in den Bestätigungsmails VOR der Endsumme -> dies müsste dann in PHP, anstatt JavaScript implementiert werden, was wieder mehr Serverlast bedeuten würde -> das muss ich mir noch überlegen, ob sich das lohnt, da der praktische Nutzen 0 ist...

geplant in übernächster Version

  • zusätzliche Captcha-Sicherung (muss ich mir aber überlegen, da ansonsten die Leute wohl von allfälligen Bestellungen vergrault werden...

Was ist anzupassen

Nun, da es sich um ein Warenkorbskript handelt, eigentlich ALLES, WAS DIE TEXTE UND ARTIKELN betrifft. Hier kann ich Ihnen leider nicht helfen. In den Skripts können Sie natürlich auch die Farben an Ihren Geschmack anpassen. Sämtliche "color"-Kommandos in den Styles und HTML-Attributen wurden aber nicht extra mit den Anpassungs-Kommentarenmarkern: xxx --- xxx versehen. Diese Dinge suchen Sie am besten per Search-Funktion Ihres Editors. Die Aufbereitung der Artikellisten erfolgt bei PlayTime natürlich mit einem automatischen Excel-VBA-Skript. Für Ihre eigenen Artikellisten (Tabellen) sind sie dagegen selbst verantwortlich. Da dies auch zu spezifisch ist, kann ich Ihnen auch hier leider nicht helfen. Sie dürfen aber gerne die HTML-Tabellen von PlayTime, bzw. die vom Demoshop als Vorlage verwenden.

Die linkidx.php-Datei erwartet folgenden Aufruf: http://www.mein-provider.at/linkidx.php?num=XXXXXX&pic=Y

Die XXXXXXe stehen dabei für die Artikelnummer (die auch so in der gesamtindex.txt drin sein muss), das Y steht für "j" oder "n", je nachdem ob ein Standardbild (=nopic.jpg) oder ein Bild, das die Artikelnummer repräsentiert, gezeigt werden soll. Die Namen und Verzeichnisse in den Skripts können Sie natürlich auch anpassen.

Da jedoch hier zwingen JavaScript, PHP und HTML-Kenntnisse erforderlich sind (das alles nicht zu knapp, sollten Sie aber ohnehin die Finger davon lassen, wenn Sie sich nicht zum Kreis der fortgeschrittenen Programmierer zählen und erst beim Kapitel: "Wie installiere ich XAMPP?", angelangt sind...)

Nichts gegen Sie, aber zur Inbetriebnahme dieser Skripts sollten Sie einen Nachmittag, bzw. am besten gleich 2 Tage einplanen, um deren Funktionsweise zu verstehen...

Bitte achten Sie peinlichst genau darauf, dass Sie alle Texte an Ihre lokalen Gegebenheiten anpassen. Es käme immerhin sehr peinlich rüber, wenn da noch etwas auf PlayTime hinweisen würde. Ich selbst habe es zwecks Demonstration NICHT GEMACHT (war auch zu faul -> ich aber will ja keinen Webshop betreiben, sondern Sie!). Nur die E-Mail-Adressen habe ich geändert. Das müssen Sie daher auch! Die wichtigste Änderung ist die Code-Zeile:

mail($strEmpfaengerconfirm, $strSubject_Playtime.$S_Ticket_Id, $strMailtext_Playtime, "From: ".$strFrom)

Dort gehört zwingend das $strEmpfaengerconfirm in $strEmpfaenger geändert und die Zeile:

$strEmpfaenger = 'office@playtime.co.at';

dahingehend angepasst, dass dort Ihre E-Mail-Adresse steht, oder alle Sie betreffenden Bestellungen gehen an PlayTime! (SEHR PEINLICH!)

AB VERSION 0.92 STEHT DORT OHNEHIN NICHT MEHR office@playtime.co.at / angepaßt gehören die Zeilen trotzdem...

Die eigentliche Text-Datenbankdatei (gesamtindex.txt):

diese muss durch Trennzeichen getrennt vorliegen und in jeder Zeile einen Artikel beinhalten. Selbstverständlich können Sie die Skripts anpassen, um ein eigenes Trennzeichen zu verwenden. Für PlayTime wurde das "§"-Zeichen genommen. Das Format:

Artikelnummer§Lagerstand§Preis§Artikelname§Artikelbeschreibung

Beispiel von PlayTime:

10027§5§5.99§Game Cube Memory Card ngc§Features: 4 Mb Speicherplatz, 59 Speicherblöcke

Die Listen für PlayTime werden dort automatisch aus Excel heraus per (ebenfalls von mir stammendem) VBA-Skript erstellt. Sie können solche Listen jedoch mit jedem von Ihnen bevorzugten Programm erstellen lassen.

Das Warenkorbskript (virtkorb.php) ist ordentlich kommentiert - sie müssen aber die "xxx --- xxx" - Stellen anpassen. Selbiges gilt für das dynamische Aufbereitungsskript linkidx.php. Dort stellen die Artikelnummern mit angefügtem "g" gleichzeitig die Namen der allfälligen Grafikdateien dar. Für die Listen mit den Vorschaubildern sind sie dagegen selbst verantwortlich. Bei PlayTime wird dies so gehandhabt, dass die kleinen Vorschaubilder gleich den Namen der Artikelnummer tragen.

Eine Bestätigungsseite (für PlayTime bestconf.html) nach einem Bestellungseingang erstellen Sie sich bitte selbst und benennen sie bei Bedarf, wie Sie wollen - Achtung: bitte dies auch im Skript berücksichtigen!

Die komplette Demonstration des Warenkorbsystems im kommerziellen Umfeld finden Sie unter www.PlayTime.co.at - auf dieser Seite dagegen finden Sie nur eine Minidemonstration (eben den obigen Pseudowaffenshop...)

Die eigentlichen Warenkorb-Dateien sind somit

  • virtkorb.php -> das eigentliche Warenkorbskript
  • linkindx.php -> die Datei zur Aufbereitung der Informationen
  • gesamtindex.txt -> die Datei mit einigen Artikeldaten

Dritte Frage: wo krieg ich ihn her?

Antwort: dort kann man sich ihn herunterladen

zurück zur Startseite