osCommerce

Elm@r - Readme

 

Das Elm@r-Modul für osCommerce

Dies ist die Startseite des Elm@r-Moduls für osCommerce. Mit Hilfe dieses Moduls können Shop- und Produktdaten für verschiedene Internetdienstleister wie Shopverzeichnisse, Produktsuchmaschinen, Preisvergleichsdienste usw. auf einfache Weise gemäß dem offenen shopinfo.xml-Standard bereitgestellt werden. Weitere Informationen finden Sie zum Modul und zum Standard unter http://elektronischer-markt.de/. Nutzen Sie für Fragen und Anregungen bitte auch das Diskussionsforum.

Voraussetzungen

Das Elm@r-Modul nutzt Funktionen, die PHP erst ab Version 4.1 zur Verfügung stellt. Getestet haben wir unser Modul mit osCommerce 2.2 Milestone 2 unter Linux und Windows mit Apache und Microsoft Internet Information Server.

Installation

Bitte entpacken Sie die Installationsdatei im Hauptverzeichnis des Shops; das ist normalerweise das Verzeichnis catalog von osCommerce. Unter Linux bei tar den Parameter -p angeben, damit die Zugriffsrechte stimmen, z. B.:

tar -xzpvf elmarmodul.tar.gz

Dabei wird das Verzeichnis elmar zum Unterverzeichnis des osCommerce-Verzeichnisses catalog und steht auf der gleichen Ebene im Verzeichnisbaum wie das include-Verzeichnis von osCommerce. Die Verzeichnisse img, logs und tools liegen im Verzeichnis elmar. Siehe Bild.

Verzeichnisstruktur

Es sind keine Veränderungen an der osCommerce-Installation notwendig.

Anpassen des Elm@r-Moduls

Sie können das Elm@r-Modul mit zahlreichen Konstanten, die in der Datei elmar_config.inc.php definiert sind, an Besonderheiten Ihres Shops anpassen. Erläuterungen dazu finden Sie direkt in der Konfigurationsdatei.

Zum Ändern der Konfigurationsdatei können Sie diese beispielsweise per FTP vom Webserver auf Ihren Rechner holen und dann lokal mit einem Texteditor bearbeiten. Anschließend speichern Sie die Datei und übertragen Sie wieder zum Webserver.

ACHTUNG: Bearbeiten Sie die Konfigurationsdatei elmar_config.inc.php nicht mit dem osCommerce-Dateimanager. Aufgrund eines Fehlers im Dateimanager werden sonst alle Backslash-Zeichen entfernt, was unter anderem zu fehlerhaften Produktdateien führt, weil z. B. fälschlicherweise t statt Tabulator ("\t") als Trennzeichen benutzt wird.

Der Fehler im osCommerce-Dateimanager lässt sich beheben, indem in der Datei admin/filemanager.php die Zeile (bei Zeilennummer 148)

$file_contents = htmlspecialchars(implode('', $file_array));

ersetzt wird durch

$file_contents = addslashes(htmlspecialchars(implode('', $file_array)));

Zugriffssteuerung und Sicherheit

Die Startdatei elmar_start.php sollte durch ein Passwort geschützt werden, das in der Datei config.inc.php unter ELMAR_PASSWORD einzutragen ist. Um den Passwortschutz (vorübergehend) auszuschalten, einfach eine leere Zeichenkette eintragen.

define('ELMAR_PASSWORD', '');

Bei Apache-Servern, die PHP als Modul ausführen, läuft die Autorisierung über den Browser, sonst wird ein Cookie benutzt. Über HTTP-Verbindungen (statt HTTPS) ist der Schutz jedoch begrenzt, weil das Passwort unter Umständen mitgelesen werden kann.

Falls der Passwortschutz wider Erwarten nicht funktionieren sollte, besteht ein einfacher Schutz vor unbefugtem Zugriff im Umbenennen von elmar_start.php und dem Verzeichnis elmar. Dabei ist in der Datei elmar_config.inc.php die Konstante ELMAR_PATH entsprechend anzupassen. Wenn das Verzeichnis z. B. in geheim und elmar_start.php in geheim_start.php umbenannt wird, muss die Konstante so gesetzt werden:

define('ELMAR_PATH', 'geheim/');

damit eine URL der Art http://www.example.com/catalog/geheim_start.php?file=index.php die Startseite des Moduls aufruft.

ACHTUNG: Spätere Updates kopieren neue Dateien wieder in das Verzeichnis elmar, sodass die neuen Dateien ggf. von Ihnen in das umbenannte Verzeichnis zu verschieben sind!

Für Apache-Webserver steht darüber hinaus die Datei .htaccess zur Verfügung, welche Zugriffe auf das elmar-Verzeichnis von außen unterbindet. Über elmar_start.php kann das Webinterface jedoch trotzdem genutzt werden! Weitere Informationen finden Sie in der Datei access.html.

Update

Unter dem Menüpunkt Update können Sie prüfen, ob eine neuere Version des Moduls verfügbar ist. Vor der Installation einer neuen Version des Moduls führen Sie bitte zuerst mit dem entsprechenden Menüpunkt ein Backup durch. Laden Sie dann die neue Version des Moduls von http://elektronischer-markt.de/nav/osCommerce. Anschließend können Sie die Update-Datei auspacken und damit die Dateien der alten Version überschreiben. Sollten Fehler auftreten, war die installierte Version vermutlich zu alt für ein Update, z. B. von Version 2.x auf 3.x. Installieren Sie dann die neue Vollversion und kontrollieren Sie die Einstellungen in den Dateien elmar_config.inc.php sowie config.inc.php. Abschließend stellen Sie ggf. gesicherte Dateien (insbesondere die Shopdatei shopinfo.xml) wieder her.

WICHTIG: Verbreitung Ihrer Angebote

Zeigen Sie Preisvergleichsdiensten, Produktsuchmaschinen, Shopping-Portalen usw., dass Sie den shopinfo.xml-Standard unterstützen und diese somit Ihre Shop- und Produktdaten leicht abrufen können. Sie erhöhen damit Ihre Chancen auf eine kostenlose Aufnahme und die Verbreitung Ihrer Angebote. Verlinken Sie dazu Ihre Shopdatei shopinfo.xml z. B. auf der Startseite oder im Impressum (Pfad ggf. anpassen):

<a href="/shopinfo.xml"
   title="Wir unterst&uuml;tzen den shopinfo.xml-Standard."
   target="_blank"><code>shopinfo.xml</code></a>

Und so sieht es aus: shopinfo.xml

Der Link kann auch einfach in die so genannte Info-Box gesetzt werden. Öffnen Sie dazu die osCommerce-Datei catalog/includes/boxes/information.php und ändern Sie die Anweisung, die mit $info_box_contents[] beginnt und mit '); endet:

  $info_box_contents[] = array('text' => '...');

Fügen Sie am Ende zwischen ' und ); den Link ein:

  $info_box_contents[] = array('text' => '...' . '<br><a href="/shopinfo.xml">shopinfo.xml</a>');

Gerne dürfen Sie auch unser Logo auf Ihren Seiten einbinden, z. B.:

<a href="http://elektronischer-markt.de/"
   target="_blank"><img
   src="http://elektronischer-markt.de/gfx/elmar-logo-100x50.gif"
   width="100" height="50" border="0"
   title="Wir unterst&uuml;tzen den shopinfo.xml-Standard und sind bei Elm@r registriert."
   alt="Elm@r - shopinfo.xml"></a>

Und so sieht es aus: Elm@r - shopinfo.xml
(Die Grafikdatei steht auch im Verzeichnis .../elmar/img/elmarlogo.gif.)

Oder einfach als Textlink, z.B.: Elm@r

<a href="http://elektronischer-markt.de/"
   title="Wir unterst&uuml;tzen den shopinfo.xml-Standard und sind bei Elm@r registriert."
   target="_blank">Elm@r</a>

Bekannte Probleme und Lösungen

Falls der Server nicht der Schnellste ist, sollte für einen reibungslosen Zugriff auf die Produktdaten unter "Einstellungen" die Option "Produktdatei speichern" aktiviert werden. Es wird dann eine Produktdatei auf die Platte geschrieben und der Zugriff erfolgt anschließend schnell per Umleitung auf diese Datei. Per Voreinstellung wird die Produktdatei automatisch beim Zugriff nach 12 Stunden neu generiert (siehe UPDATEINTERVAL).
Außerdem kann in der Datei elmar_config.inc.php der Wert von DB_SLEEP auf 1 - oder wenn das noch nicht hilft, auf 0 - gesetzt werden:

define('DB_SLEEP', 1);

Wenn safe_mode=On und max_execution_time=30 ist, darf ein PHP-Skript höchstens 30 Sekunden laufen, bevor es abgebrochen wird. Die Erstellung der Produktdatei durch Aufruf von elmar_products.php dauert für Shops mit mehreren Tausend Produkten unter Umständen länger, so dass das Skript vorzeitig abgebrochen wird, wodurch abgeschnittene Produktdateien entstehen, die nicht alle Produkte enthalten. Unter dem Menüpunkt "Produktdateien" können Sie mit dem Button "Markierte Produktdateien in mehreren Schritten generieren" trotzdem vollständige Produktdateien erzeugen. Allerdings verfolgen einige Browser wie bspw. Firefox nur eine maximale Anzahl von Weiterleitungen, sodass unter Umständen nicht alle Produkte in die Produktdatei aufgenommen werden. Mit dem Internet Explorer funktioniert es.
(Elm@r kann Ihre Produkte bei Kundenabfragen übrigens auch mithilfe der Echtzeitabfrageschnittstelle elmar_request.php listen, die von dem Timeout-Problem nicht betroffen ist.)

Die osCommerce-Funktion get_browser_language() in der Datei includes/classes/language.php liefert auf dem Microsoft Internet Information Server mit ISAPI-PHP immer die Standardsprache Englisch, wodurch deutsche Produkte u. U. nicht gefunden werden. Dies lässt sich reparieren, indem getenv('HTTP_ACCEPT_LANGUAGE') durch $_SERVER['HTTP_ACCEPT_LANGUAGE'] ersetzt wird. (Dies betrifft osCommerce 2.2 Milestone 2.)

Wenn der Server voll ausgelastet ist, können Fehler der folgenden Art auftreten:
mysql_connect(): Too many connections. Unable to connect to database server!
Dieses Problem hat nicht direkt mit diesem Modul zu tun, sondern taucht häufig auf gemeinsam genutzten Servern und/oder bei aktivierten "Persistent Connections" auf (siehe Artikel im deutschen osCommerce-Forum). Abhilfe schafft ein Neustart des Servers oder auch einfach nur warten, bis es wieder geht...

Das Modul benutzt die osCommerce-Einstellung zur Berechnung der Versandkosten und der Mehrwertsteuer. Damit das funktioniert, muss der osCommerce-Shop korrekt konfiguriert sein. Insbesondere betrifft dies die folgenden Angaben:

  • Steuerklassen und -sätze
  • Display Prices with Tax: true für Preise inkl. Mehrwertsteuer (sonst in Produktdateien ohne MwSt.)
  • Enable Flat Shipping: True; Shipping Cost: 5.00 für eine Versandkostenpauschale von bspw. 5 EUR
  • Allow Free Shipping: true; Free Shipping For Orders Over: 50 für Versandkostenfreiheit ab bspw. 50 EUR

Weil auf vielen Webservern PHPs open_basedir gesetzt ist, können die Dateien, die zum Webinterface des Moduls gehören, nicht direkt aufgerufen werden. Stattdessen ist elmar_start.php?file=... zu benutzen, wobei für ... der Name des Skripts einzusetzen ist, z. B. index.php.

Für Kelkoo sollte ein Wert für

define('VERSANDKOSTEN_AB', '');

in der Datei elmar_config.inc.php eingetragen werden, damit das Feld nicht leer bleibt.

Beim Abruf von Produktdateien sendet das Elm@r-Modul TXT- oder CSV-Dateien, für die der Browser in der Regel ein Dialogfenster zum "Speichern unter" öffnet (siehe Bild). Wenn der Internet Explorer die Dateien stattdessen anzeigt, kann man unter "Extras - Internetoptionen - Sicherheit - Stufe anpassen - Verschiedenes" die Option "Dateien basierend auf dem Inhalt und nicht der Dateierweiterung öffnen" deaktivieren (siehe Bild).
Was beim Öffnen von Dateien passieren soll, kann man z. B. im Explorer unter "Extras - Ordneroptionen - Dateitypen" einstellen. Dort sollte die Option "Öffnen nach dem Download bestätigen" aktiviert sein (siehe Bild).

Das Skript elmar_request.php beantwortet Echtzeitsuchanfragen, die hauptsächlich von Nutzern bei Elm@r kommen. Sofern aktiviert, kann man im Menü unter Protokolle -> Echtzeitanfragen sehen, wonach potenzielle Kunden suchen. Ruft man das Skript elmar_request.php einfach so auf, erscheint ein XML-Dokument mit einer Fehlermeldung, weil Suchbegriffe fehlen. Um die Echtzeitsuche zu testen, steht im Webinterface der Menüpunkt Test 2 zur Verfügung. Echtzeitabfragen lassen sich unterbinden, indem der OnlineRequest-Block in der Shopdatei shopinfo.xml entfernt wird.

Falsche Links auf Produktseiten in der Form http://example.com/-p-.html4711 treten auf, wenn das Elm@r-Modul zusammen mit einem Modul zur Suchmaschinenoptimierung von URLs wie Ultimate SEO URLs eingesetzt wird. Abhilfe schafft die Einstellung define('ELMAR_SEO_URLS', true); in der Konfigurationsdatei elmar_config.inc.php.

Schreibrechte erteilen

Das Elm@r-Modul benötigt Schreibrechte für die folgenden Dateien. Schreibrechte können meist mit FTP-Programmen erteilt oder unter Linux bspw. mit dem Befehl chmod 666 [Dateiname] bzw. chmod a+rw [Dateiname] eingestellt werden (siehe elmar/writeaccess.sh).

DateiErläuterung
catalog/shopinfo.xml Die Shopdatei, in welche shopspezifische Daten geschrieben werden. Diese Datei kann auch im Stammverzeichnis des Webservers stehen, sodass sie unter einer URL der Art http://www.example.com/shopinfo.xml erreichbar ist.
catalog/products.csv In die Produktdatei werden Produkt- und Preisinformationen geschrieben, damit diese zum Download bereitstehen. Die Generierung erfolgt automatisch durch elmar_products.php. Außerdem können weitere Produktdateien kelkoo.txt, pangora.txt usw. für Kelkoo, Pangora usw. angelegt werden.
catalog/elmar/config.inc.php Enthält Einstellungen für das Elm@r-Modul; Anpassung mittels elmar/setup.php
catalog/elmar/logs/error.html Protokollierung von Fehlermeldungen.
catalog/elmar/logs/error.log
catalog/elmar/logs/products.html Protokollierung von Produktdateianfragen.
catalog/elmar/logs/products.log
catalog/elmar/logs/request.html Protokollierung von Echtzeitanfragen nach Produkten.
catalog/elmar/logs/request.log

Deinstallation

Die meisten Dateien des Elm@r-Moduls landen im Verzeichnis elmar bzw. dessen Unterverzeichnissen. Des Weiteren werden fünf Dateien, deren Namen jeweils mit elmar beginnen, im catalog-Verzeichnis abgelegt. Außerdem können noch die Dateien shopinfo.xml (Shopdatei), products.csv (Produktdatei) und weitere Produktdateien kelkoo.txt, pangora.txt usw. erzeugt werden.

Im Verzeichnis elmar befinden sich die Dateien uninstall.bat für Windows und uninstall.sh für Unix-Systeme (vor dem Aufruf ggf. Ausführungsrechte setzen: chmod u+x uninstall.sh). Damit lassen sich alle Dateien des Elm@r-Moduls löschen. Weitere Maßnahmen sind zur Deinstallation nicht notwendig, weil das Elm@r-Modul keine Veränderungen an der osCommerce-Installation vornimmt.

Finanzielle Unterstützung

Sie können das Elm@r-Modul kostenlos nutzen. Ich würde mich aber freuen, wenn Sie die Arbeit daran finanziell unterstützen würden. Mit dem folgenden Button gelangen Sie zu einer Seite von PayPal, wo Sie mir auf elektronischem Wege schnell, einfach und sicher Geld überweisen können. PayPal ist ein "Institut für elektronisches Geld" und gehört zu eBay. Falls Sie lieber auf einem anderen Weg bezahlen möchten, nehmen Sie bitte Kontakt mit mir auf. Damit Sie das Geld steuerlich als Betriebsausgabe verbuchen können, leiste ich gerne Support im Zusammenhang mit dem Elm@r-Modul und stelle Ihnen eine Rechnung inkl. MwSt. aus.

PayPal Möchten auch Sie im Rahmen Ihres Online-Shops oder bei eBay-Auktionen Zahlungen über PayPal in Empfang nehmen? Wenn ja, melden Sie sich mit dem folgenden Button an - schnell, einfach und kostenlos!

Interessieren Sie sich für von mir verfasste Bücher? Hier finden Sie meine Bücher bei Amazon.

Support und Copyright

Elm@r-Modul für osCommerce zur Unterstützung des shopinfo.xml-Standards
http://elektronischer-markt.de/nav/osCommerce
Copyright © 2004-2005 Dr. Stefan Kuhlins
(Mit bestem Dank an Max Wenzel, der bei der Entwicklung der Version 1.0 mitgeholfen hat.)

osCommerce: Open Source E-Commerce Solutions
http://www.oscommerce.com/
Copyright © 2002-2004 osCommerce
Released under the GNU General Public License

Für Fragen und Verbesserungsvorschläge zu diesem Modul, wenden Sie sich bitte an: osCommerce@elektronischer-markt.de

Das Elm@r-Modul wird Ihnen von uns kostenlos zur Verfügung gestellt. Wie bei kostenloser Software üblich, erfolgt die Benutzung auf eigene Gefahr. Es ist zwar unwahrscheinlich, dass durch das Modul Schäden entstehen, aber sicherheitshalber distanzieren wir uns von allen eventuellen Schäden, die durch die Benutzung des Moduls entstehen könnten. Wenn Sie damit nicht einverstanden sind, sollen Sie das Modul nicht einsetzen.

Viel Erfolg mit dem Elm@r-Modul für osCommerce!

© 2004-2005   Elm@r   •   Der elektronische Markt   •   http://elektronischer-markt.de/