Installation | Konfiguration per Menü | Struktur- Produkterfassung | Sprachen | Benutzer | Gruppen | Preisgruppen | Währungen | Versandarten | Bezahlarten / Zahlweise | Verpackungseinheiten | Datenimport | Datenexport | Links | Bilder | Übersetzung | Sessionhandling | Anzeigedatei | Automatische Umrechnung | Automatische Umrechnung (Artikeladministration) | Backup erstellen | Backup einspielen | Einbinden der sessionID | Größen (oder andere Eigenschaften) | JavaScript | Keywords | Konfigurationsdatei | Known bugs | Preis | $show_null | Test- und Entwicklungsumgebung | Texte | Verfügbarkeit | $view_limit (Artikel pro Seite) | Warenkorb Anzeige ändern | Design Änderungen | Artikelbaum beim Start öffnen | Default Anzeige bei leerer Artikelgruppe | Shop in verschiedenen Sprachen starten | Andere Default Sprache/ Währung einrichten |
Installation:
- Archiv auspacken
-> Winzip oder ähnliches
-> tar xzf archivname.tar.gz
- Dateien uploaden
- Auf manchen Servern gibt es Probleme beim Anlegen der Konfigurationsdateien (config.inc.php und config_db.inc.php).
Für die Ersteinrichtung (z.B. der Datenbankparamater) sollte ein chmod 777 (volle Zugriffsrechte inkl. Schreiben für jeden) für die Dateien und Verzeichnisse (phpayv2 und in phpayv2/admin) durchgeführt werden.
------------------------
Das Verzeichnis "/admin/" sollte nach erfolgter Konfiguration unbedingt vor unberechtigten Zugriff geschützt werden, z.B. mit .htaccess.
------------------------
Im Archiv liegen die originalen Konfigurationsdateien mit der Endung ".orig" vor (config.inc.php.orig und config_db.inc.php.orig ). Diese Dateien dienen nur der Orientierung und sind nur im Notfall anzupassen und umzubenennen, wenn die Konfiguration per Menü scheitern sollte.
Konfiguration per Menü:
- Mit dem Browser in das Verzeichnis http://your-domain.com/phpayv2/admin/ gehen
Es öffnet sich automatisch die Administrationsansicht
- Menüpunkt Datenbank-Einstellungen aufrufen und folgende Daten eingeben:
Datenbanktyp auswählen
IP bzw. Name des Servers (per Default lokalhost verwenden)
einen gültigen Benutzernamen mit zugehörigem Passowrt für die Datenbank angeben
einen Datenbanknamen angeben, in den die Daten innerhalb des Datenbankservers gespeichert werden sollen
die Felder "Datenbank anlegen" und "Tabellen erstellen" auswählen
Mit diesen Informationen werden die Dateien config_db.inc.php erstellt, wenn Sie auf den Knopf "Eintragen" klicken.
anschließend
- Menüpunkt Konfiguration aufrufen und weitere Optionen eintragen
Der Bereich gliedert sich in Systemeinstellungen und Layout
Systemeinstellungen:
Layout
Sowohl von admin/config_db.inc.php als auch von config.inc.php sind im Archiv Version mit *.orig enthalten, die vollständig sind und aus der Testumgebung stammen. In diesen muß nur noch Datenbankbenutzer und -passwort per Texteditor eingetragen werden, falls es mit der Konfiguration per Menü nicht funktioniert.
Struktur- Produkterfassung:
Die Struktur - Produkterfassung erfolgt über das Administrationsmenü, über die Punkte "Abteilung", "Artikelgruppe" und "Artikel". Die einzelnen Ebenen der Struktur sollten auch in dieser Reihenfolge erfasst werden, da nur so gewährleistet ist, daß die Zuordnungen zu den jeweils übergeordneten, bereits vorhandenen Elementen erfolgen kann.
Abteilung hinzufügen
Artikelgruppe hinzufügen
Artikel hinzufügen
Im Administrationsmenü folgt der Punkt "Sprachen". Hierüber können Sie vorhandene Sprachen löschen oder auch neue hinzufügen.
Die Belegung der einzelnen Links und Buttons des Shopsystem mit verschiedenen Sprachen wird über eine Datei im Verzeichnis lang/ realisiert.
Der Dateiname setzt sich aus der Kurzbezeichnung der Sprache (2 Buchstaben!) und .inc.php zusammen. Die Vergabe der Kurzbezeichnung ist an die Bezeichnungen der Top-Level-Domains angelehnt.
Der Inhalt der Datei läßt sich am besten mit dem Übersetzungstool ändern.
Die allerste Sprache (ID =1) in der Tabelle "language" wird als Voreinstellung verwendet, wenn der Besucher keine andere Wahl getroffen hat.
Der nächste Punkt im Administrationsmenü ist "Benutzer". Hier können Sie vorhandene Benutzer ändern, löschen oder auch neue hinzufügen.
Folgende Informationen sind zu jedem Benutzer einzutragen:
Der nächste Punkt im Administrationsmenü ist "Gruppen". In Gruppen werden Benutzer mit gleichen Privilegien zusammengefasst, z.B. Preisdarstellung, Rabatte bzw. Produktansichten.
Folgende Änderungen können mit den Gruppen vorgenommen werden:
Folgende Informationen sind zu jeder Gruppe einzutragen:
Die Informationen gelten für alle Benutzer, die einer Gruppe zugeordnet wurden. Die Zuordnung der Benutzer erfolgt im Menüpunkt Benutzer. Abteilungen und Artikelgruppen können einer Gruppe zugeordnet werden und sind ab diesem Zeitpunkt nur noch für diese Gruppe sichtbar. Der Eintrag erfolgt im jeweiligen Menü unter dem Punkt Usergruppe. Weitere Information finden Sie unter den Punkten Abteilung bzw. Artikelgruppe, im Bereich Struktur-Produkterfassung dieser Hilfedatei. Die für die Gruppen "Administration" und "Public Area" vorbelegten Texte "root.txt" und "public.txt" befinden sich im Verzeichnis "phpay-v2.01/text/"
Der nächste Punkt im Administrationsmenü ist "Preisgruppen". Preisgruppen dienen dazu, mögliche Brutto Werte automatisch errechnen zu lassen. Basierend auf einem Netto Wert wird die Mehrwertsteuer über einen Faktor 1,xxx errechnet. Als Nettopreis wird die Mehrwerststeuer mit dem Faktor 1,0 angenommen. Vorhandene Preisgruppen können Sie:
Der nächste Punkt im Administrationsmenü ist "Währungen". Hier können Sie vorhandene Währungen
Beachten Sie, die erste eingetragene Währung dient als Basiswährung für die automatische Umrechnung und als Voreinstellung. Der Umrechnungsfaktor bleibt deshalb 1,00, und sie läßt sich nicht löschen.
Es lassen sich aber Name und Bezeichnung ändern, so daß durchaus eine andere Basiswährung möglich ist.
Der nächste Punkt im Administrationsmenü ist "Versandarten". Hier können Sie vorhandene Versandarten
Zusätzlich können Sie im Dialog "Versandarten" folgende Eigenschaften der Versandart definieren:
Die Sinn der Formulardatei entspricht der für die Bezahlarten und es stehen die gleichen Variablen für die Kundenangaben zur Verfügung, um die sfield-Felder vorzubelegen. Alle Formularfelder müssen das Attribut name="sfield[]" haben, damit ihre Inhalte weiterverarbeitet werden. Jedem input-Element kann ein verstecktes Formularfeld zugeordnet werden, daß in die Email vor dem eingetragenen Wert erscheint:
<input type="hidden" name="sname[]" value="Bezeichung">
<input type="text" name="sfield[]" value="Inhalt">
wird in der Email zu der Zeile:
Bezeichnung: Inhalt
Bitte keine eigenen <form>-Elemente einfügen.
Bezahlarten / Zahlweise:
In der Spalte formfile kann eine PHP-Datei angegeben werden, die bei der entsprechenden Bezahlart angezeigt wird. Zum Beispiel ein Formular für die Angaben zur Kreditkarte.
Alle Formularfelder müssen das Attribut name="pfield[]" haben, damit ihre Inhalte weiterverarbeitet werden. Jedem input-Element kann ein verstecktes Formularfeld zugeordnet werden, daß in die Email vor dem eingetragenen Wert erscheint:
<input type="hidden" name="pname[]" value="Bezeichung">
<input type="text" name="pfield[]" value="Inhalt">
wird in der Email zu der Zeile:
Bezeichnung: Inhalt
Folgende Variablen für die Kundenangaben stehen zur Verfügung, um die pfield-Felder vorzubelegen.
Verpackungseinheiten:
Für die jeweilige Sprache kann eine neue Vepackungseinheit angelegt bzw. eine vorhandene entfernt werden.
Datenimport:
Beim Import muß in der zweiten Kommentarzeile nochmal das Zeichen der Währung auftauchen, wie es auch exportiert wird. Artikel, die eine Mengeangabe haben, die nicht in der Datenbank zu finden ist, werden nicht auch eingetragen. Schon vorhandene Artikel werden aktualisiert; nicht vorhandene aktualisiert. Artikel, die keine gültige Artikelgruppen-ID haben, werden ebenfalls nicht importiert.
Paßwörter können unverschlüsselt in der Datei (3. Spalte) stehen. Sie werden MD5-verschlüsselt in die Datenbank geschrieben. Ist die Spalte pw leer, wird bei bestehenden Kundeneinträgen das Paßwort auch nicht geändert. Benutzer mit ungültiger Gruppenzugehörigkeit werden nicht importiert. Sollen selbst erstellte Dateien importiert werden, ist es wichtig, dass die ID der Abteilungen bzw. Artikelgruppen stimmen. Die Bilder zu den importierten Daten sind per FTP hochzuladen.
Datenexport:
Die exportierten Daten werden im Verzeichnis admin/backup abgelegt (Benennung: Tabellenname_backupaktuelles Datum-Uhrzeit). Sie können dann zum Beispiel mit einem Programm zur Tabellenkalulation weiterverarbeitet werden. Die Namen der einzelnen Spalten werden mit in dieser Datei angeben. Zeilen, die mit "## " beginnen werden als Kommentar behandelt. Paßwörter werden nicht exportiert.
Der nächste Punkt im Administrationsmenü ist "Links". Hier können Sie vorhandene Hyperlinks
Zusätzlich werden folgende Eingaben benötigt:
Über den Punkt "Bilder" im Administrationsmenü können Sie vorhandene Bilder verändern, klicken Sie dafür auf den Knopf mit der Beschriftung "Edit".
Übersetzung:
Für die bersetzung aller Dialoge wird ein separates Übersetzungstool mitgeliefert.
Das Übersetzungstool befindet sich im Verzeichnis admin/lang/
Sollte der verwendete Webserver keine Sessions unterstützen, gibt es die Möglichkeit in der Datei start.php die Zeilen 3 und 4 zu aktivieren (# entfernen) und dafür die Zeilen 7 und 8 auszukommentieren (mit # versehen) .
Aktive Zeilen Webserver Session-Handling (Voreinstellung):
session_start();
$sess=session_id();
phPay-eigenes Session-Handling:
srand ((double)microtime()*1000000);
$sess=time()+rand();
Bitte nur eines von beidem verwenden ;-)
------------------------
Sollten beim normalen Shopstart keine Abteilungen in der Navigation angezeigt werden und die Hauptseite nur endlos lange irgendwas laden, stimmt das Passwort des Benutzers mit ID == 2 vermutlich nicht. Das Passwort, das in die Datenbank für diesen Benutzer eingetragen wird, muß im Klartext auch in der Datei start.php Zeile 17 eingetragen werden.
$md_pw = md5("public"); Standardmäßig heißt das Passwort public. Da es ohne jede Relevanz für die Sicherheit ist, gibt es eigentlich keinen Grund es zu ändern.
Anzeigedatei:
Diese Datei regelt die Anordnung der einzelnen Artikelinformationen wie Artikelnummer, Preis usw.
Derzeit stehen drei verschiedene zur Auswahl:
- show_items_0.inc.php: Ausführlichste Anzeige mit Bild. Die einzelnen Infos sind großzügig verteilt.
- show_items_1.inc.php: Ohne Bild, aber mit großzügiger Anordnung der Informationen.
- show_items_2.inc.php: Kürzeste Anzeige in Tabellenform. Alle Infos stehen in einer Zeile.
Im DropDown-Menü werden alle verfügbaren Dateien aufgelistet.
Damit eine Datei als Anzeigedatei erkannt wird, muß in der zweiten Zeile stehen:
## itemlist
[ Die Datei selbst muss im Verzeichnis oberhalb von admin/ liegen. ] Eine Vorlage, um eigene Listenansichten zu erstellen ist die Datei show_item_x.in.php.
Automatische Umrechnung:
Um dem Administrator die Arbeit zu vereinfachen, gibt es die Option für automatische Umrechnung. Dafür wird die Währung mit der ID==1 als Basis verwendet. Dadurch müssen nicht alle Preise einzeln geändert werden, nur weil sich der Umrechnungskurs ändert. Eine Eintragung für die erste Währung im Artikelmenü genügt dann völlig.
[ Wenn diese Option eingeschaltet ist, ist es nicht mehr möglich einen Artikel in einer Währung ohne Preisangabe oder gratis anzubieten und in einer anderen Währung mit Preis. ]
Automatische Umrechnung (Artikeladministration):
Ermittelt auf Basis der Umrechnungsfaktoren die Preise in den anderen Währungen. Diese Funktion ist unabhängig von der Option "Automatische Umrechnung".
Backup erstellen:
Alle Daten aus der Datenbank werden ausgelesen und in einer Datei im Verzeichnis admin/backup/ gespeichert. Der Dateiname wird nach dem Schreibvorgang am Ende der Seite angezeigt. Er setzt sich aus dem Wort backup, dem aktuellen Datum und der Uhrzeit zusammen. Diese Datei kann mit "Backup einlesen" eingelesen werden. Auch wenn es nur eine Textdatei(CSV) ist, sollte man nichts darin ändern, es sieht nicht sehr schön aus und ist nicht übersichtlich ;-) Dafür ist das Backup auch nicht gedacht. Außer dem Erstellen der Backup-Datei werden alle Tabellen optimiert (nur mySQL?).
Backup einspielen:
Zunächst werden alle Daten in den Tabellen gelöscht (!), dann
aus der Datei, die mit "Backup erstellen" angelegt
wurde, in die Datenbank eingelesen.
Einbinden der sessionID:
Es können sowohl in die Texte der Abteilungen und Benutzergruppen als auch der Artikel Links zum Beispiel zur Detailansicht eines Artikels eingefügt werden. Dabei ist es wichtig, daß die sessionID mit übergeben wird, um den Besucher zu identifizieren. An dieser sessionID hängen auch der Warenkorb und die Sprach- und Währungseinstellungen des Besuchers.
Um diesen Wert zu übergeben muß #sessionID# geschrieben werden, wo später der Wert übergeben werden soll. Groß-/Kleinschreibung beachten!
Innerhalb eines Textes erzeugt die Zeile:
<a href="detail.php?#session#&art_id=5">Artikel mit der ID 5 (ID nicht Artikelnummer!)</a>
den HTML-Code für eine Verknüpfung mit der Detailansicht des Artikels mit der ID 5:
<a href="detail.php?sess=32zeichen&art_id=5">Artikel mit der ID 5 (ID nicht Artikelnummer!)</a>
Die ID eines Artikels läßt sich in der Administration Menüpunkt Artikel herausfinden.
- In der Spalte Art.Nr sind die Artikelnummern mit dem Änderungsmodus verknüpft. In der Statuszeile des Browsers ist etwas zu sehen wie:
item.php?chg=edit&art=5
Die Zahl hinter "art=" ist die gesuchte ID.
- Beim Ändern eines Artikel wird die ID angezeigt.
Größen (oder andere Eigenschaften):
Es gibt die Möglichkeit einem Artikel zusätzliche Eigenschaften zuzuweisen.
Bei Schuhen beispielsweise die Größe als zusätzliche erste Eigenschaft,
und Farbe als zweite zusätzliche Eigenschaft.
Der Artikelname in der Titelleiste führt zurück zum Änderungsmodus
des Artikels.
Der Link autofill schreibt den Inhalt des ersten Formularfeldes (=
Bezeichnung 1. Sprache) mittels JavaScript in die weiteren Formularfelder
dieser Größe.
Wenn das Feld "Verfügbarkeit" leer ist,
werden die Bezeichungen nicht in die Datenbank übernommen - also gelöscht.
Auch wenn immer von "Größen" gesprochen wird: Es lassen
sich selbstverständlich ebensogut Farben, Formen oder ähnliches
an dieser Stelle eintragen. Diese Bezeichnung kommt vom Namen der Tabelle
"size".
Die JavaScripts sind mit Netscape 6.2, Opera 6.01 und InternetExplorer 5 erfolgreich
getestet.
JavaScript:
Artikel: Um zu verhindern, dass eine Artikelgruppe aus gewählt wird,
die nicht zu der gewählten Abteilung paßt, wird das Menü für
die Artikelgruppen mit JavaScript dynamisch an die Auswahl des Menüs
Abteilung angepaßt. Auch die Funktionen autofill
und autoconvert
Datenimport/-export: Die zwei zusätzlichen Menüs
(Sprache, Währung) werden anhand der Tabellenauswahl angepaßt.
Für Benutzer gibt es keine zusätzliche Auswahlmöglichkeit,
sonst die Sprache, in der die Informationen gespeichert sind.
Wenn Artikel exportiert oder importiert werden sollen, kann zusätlich
die Währung der Preise angegeben werden.
Diese Skripte sind mit Netscape Versionen 4.x und 6.2, Konqueror 2.1, Opera
6.01 und InternetExplorer 5 erfolgreich getestet.
Keywords:
Mit Hilfe der keywords werden in der Detailansicht ähnliche
Artikel gesucht.
Durch Leerzeichen getrennt sind die Artikelnummern der Artikel anzugeben,
die in der Detailansicht als Empfehlung auftauchen sollen.
Konfigurationsdatei:
Es werden im DropDown-Menü alle verfügbaren Dateien aufgelistet.
Damit eine Datei als Konfigurationsdatei erkannt wird, muß in der zweiten
Zeile stehen:
## Config
(Die Datei selbst muss im Verzeichnis oberhalb von admin/ liegen.)
Known bugs:
- PHP4.02B kennt sowas wie is_uploaded() nicht. Das führt beim
Bilderupload natürlich zu einem Fehler.
Datenimport aus Version 1.05 fehlt noch.
Preis:
Je Artikel ist ein Preis und eine Mengenangabe möglich. Der Preis bezieht
sich auf die Mindestmenge und Verpackungseinheit.
Falls in anderen Währungen Preise verwendet werden sollen, die nicht
nur mit dem Umrechnungsfaktor ermittelt wurden,
sind die anderen Währungen einzutragen.
Die Entscheidung, ob ein Artikel mit 'auf Anfrage'
oder 'gratis' angezeigt wird, wird anhand der ersten Währung getroffen.
$show_null:
Es gibt die Möglichkeit statt 0,00 EUR einen Text anzuzeigen. Der angezeigte
Text steht in der Variable $null_text. Für Preise, die kleiner
als 0 (null) sind, wird immer der Wert der Variablen $gratis
angezeigt.
Beide Variablen sind am Anfang der Sprachdatei zu finden und lassen sich auch
mit dem Übersetzungstool ändern.
Test- und Entwicklungsumgebung:
- PHP 4.04pl1 und 4.06
- mySQL 3.23.39
- Redhat Kernel 2.4
- Apache 1.3.19
- PHP 4.2.0
- mySQL 4.01
- Windows2000
- Apache 2
Texte:
In allen Texten, Beschreibungen und Namen können HTML-Elemente eingebunden
werden. Sowohl formatierende wie <i> oder <b>
aber auch <ul> und <ol>. Ebenso sind <a>
und <img> möglich.
Wenn <table>-Elemente eingesetzt werden sollen, dann immer
nur komplette Tabellendefinitionen verwenden, weil sonst die phPay-eigenen
Tabellenstrukturen durcheinanderkommen.
<form> und <font> sollten gar nicht verwendet
werden.
Verfügbarkeit:
Drei Status können vergeben werden. Diese beziehen sich vor allem darauf,
was passiert, sollte eine verfügbare Menge aufgebraucht sein.
In den eckigen Klammern wird angegeben, ob schon zusätzliche Eigenschaften
angeben wurden.
Der Link ist nur beim Ändern eines Artikels da, nicht beim Neuanlegen.
Siehe auch Größen (oder andere Eigenschaften)
$view_limit (Artikel pro Seite):
Wenn die Anzahl der Artikel größer als der Wert für $viewlimit
ist erscheint oberhalb der Artikel eine zusätzliche Navigation mit Vor-
und Zurückbutton. Außerdem wird die Gesamtzahl Artikel angezeigt.
Das Design dafür kommt aus der Datei limit_navi.inc.php.
Im admin-Bereich muß der Wert direkt am Anfang der Datei mit einem Texteditor
geändert werden.
Derzeit ist das für "item.php" und "user.php"
möglich.
Der Warenkorb zeigt per Default die Anzahl der verschiedendenen Artikel und nicht die Summe aller Artikel an. Um das Verhalten umzustellen sind in der Datei "show_cart.inc.php" in den folgenden Zeilen der Eintrag 'num_items' durch den Eintrag 'num_arts' zu ersetzen:
Das Shop Design läßt sich über die folgenden Stellen anpassen:
Artikelbaum beim Start öffnen:
Um beim Öffnen eines Shops einen bestimmten Artikelbaum zu öffnen,
"simuliert" man den Klick auf die gewünschte Abteilung.
Statt in der "login.php" den Standardwert $url="nav.php"
zu übergeben, ändert man das auf $url="nav.php?abt=1"
wenn z.B. die Abteilung mit der ID=1 geöffnet werden soll. Zusätzlich
darf $sess nicht vergessen oder weglassen werden
Default Anzeige bei leerer Artikelgruppe:
Wenn noch nicht alle Artikel (Nr. Beschreibung etc.) verfügbar sind,
aber die Gruppen bereits feststehen, eine Meldung im Hauptfenster anzeigen,
z.B. "Leider noch nicht verfügbar..." , wenn der User eine
leere Artikelgruppe auswählt. Gibts die Möglichkeit das irgendwie
umzusetzen?
- in Version 2.01 noch nicht realisiert, folgende Tips:
Du könntest eine 'show_item_leer_mit_Hinweis.inc.php' basteln, die Du
je nach Artikelgruppe oder in Abhängigkeit von $num_res (Zeile 18, main.php)
einbindest.
Die Einbindung findet in Zeile 31 der main.php statt.
Shop in verschiedenen Sprachen starten:
Eine Startseite erstellen, auf der 2 Links. Je nachdem welchen Link der User
klickt, soll der Shop in englischer oder deutscher Sprache starten.
- in Version 2.01 noch nicht realisiert, folgende Tips:
Hierfür werden zwei verschiedene "start.php" Dateien
angelegt. Sie unterscheiden sich nur in dem Eintrag in die Tabelle online
(Zeile 28)
... insert into online ... '$ip','1','1','','')" or ...
... insert into online ... '$ip','2','1','','')" or ...
Andere Default Sprache/ Währung einrichten:
Eine andere Sprache/ Währung als Default einrichten (PhPay Version 2.01).
Wie im Bereich Sprachen beschrieben ist die Sprache
mit "ID = 1" die Default Sprache. Ebenso verhält es
sich mit der Währung.
Im Shop selber:
In Folgeversionen soll diese Einstellung als Option verfügbar sein.