Generierung eines BMEcat XML Kataloges aus CSV Dateien
BMEcat ist ein XML-Standard für die Übertragung elektronischer Produktkataloge. Mit ihm lassen sich Artikeldaten standardisiert speichern und zwischen verschiedenen System übertragen. Entwickelt wird der Standard seit Ende der 90er Jahre vom Fraunhofer IAO Institut in Stuttgart und der Universität Duisburg-Essen.
In einem aktuellen Projekt sollte basierend auf vorhandenen Artikeldaten aus unterschiedlichen Quellen so ein Katalog im BMEcat - Format erstellt werden. Alle Quellen lagen als CSV - Dateien vor und definieren pro Zeile jeweils einen Artikel und seine Eigenschaften. Die Datensätze werden mit Hilfe der Artikelnummer verknüpft, welche als Primärschlüssel dient.
Für die Umsetzung des Projektes habe ich mich gegen verfügbare Softwarepakete entschieden und ein eigenes Programm in Java entwickelt, welches zuerst die Quellen parst und alle vorhandenen Datensätze in internen Datenstrukturen ablegt. Zusätzlich wird eine hierarchische Kategoriestruktur auf den <CATALOG_GROUP_SYSTEM> - Tag umgesetzt. Aus diesen Daten wird dann ein XML-Baum aufgebaut, welcher der Struktur des BMEcat - Formates entspricht. Dafür verwende ich die bereits vor einiger Zeit vorgestellte Klasse XMLTree, mit der so ein Baum aufgebaut und anschließend ausgegeben werden kann.
Eine Besonderheit stellt die Behandlung der Bilder dar: In den Quelldaten werden diese mit ihren URLs definiert. Im Zielkatalog können aber nur die Dateinamen der Bilder angegeben werden, da beim Upload des Kataloges immer auch das Bildmaterial mit hochgeladen werden muss. Diese Einschränkung ist durch das Zielsystem vorgegeben. Der BMEcat Standard sieht durchaus vor, dass Bilder relativ zu einem Rootverzeichnis angegeben werden. Allerdings kann das Zielsystem die Bilder nicht selbständig herunterladen und erwartet sie stattdessen in einem Verzeichnis auf dem FTP-Server. Deshalb speichere ich beim Verarbeiten der Bilder die URLs in einer Liste zwischen und übergebe diese anschließend an ein Unterprogramm, welches alle Bilder nacheinander herunterlädt und sie in einem Ordner ablegt. Dieser kann dann zusammen mit dem XML-Katalog per FTP übertragen werden.
Die Vorteile einer Eigenentwicklung im Vergleich zu einer fertigen Lösungen waren bei diesem Projekt klar zu erkennen: Ein eigenes Programm bietet volle Flexibilität was das Einbinden bestehender Quelldaten angeht. In der Firma gab es bereits hochwertige Artikeldaten inkl. Kategorieinformationen, welche natürlich weiter verwendet werden sollten. Außerdem konnte nur so die Besonderheit bei den Bildern effizient gelöst werden. Ein fertiges Programm hätte hier viel zu viel manuelle Sortier- und Nacharbeit verlangt, was schlussendlich in Verbindung mit dem Anschaffungspreis deutlich teurer geworden wäre.
Haben auch Sie Interesse an einer individuellen Lösung zur Erstellung eines BMEcat Kataloges basierend auf Ihren Artikeldaten? Kontaktieren Sie mich für eine unverbindliche Anfrage.
Geschrieben am 13.08.2008 von Stefan Schlichthärle | Kommentar hinzufügen | Tags: Projekte XML Java E-Business BMEcat
Google Sitemaps optimal nutzen
Google bietet mit der Sitemaps - Funktion einen interessanten Dienst für Webmaster an. Damit kann eine XML - Datei mit URLs zu allen Seiten der Homepage eingereicht werden, zuzüglich weiterer Beschreibung der Adressen wie Gewichtung und Aktualisierungsrate. Gerade mittlere und große Seiten mit hunderten oder tausenden Unterseiten, welche bisher nur unzureichend im Index der Suchmaschine vertreten sind, sollten diesen Dienst einmal ausprobieren.
Die Registrierung ist einfach und kostenlos: Mit einem vorhandenen Google - Konto kann man sich auf der Startseite des Dienstes einloggen. Dort muss man zuerst für jede Homepage einen Sitemap anlegen und über eine Testdatei bestätigen, dass man Zugriff auf diese Seite hat. Danach kann die Sitemap erstellt werden. Es empfiehlt sich, gleich auf das von Google empfohlene Sitemap - Protokoll zu setzen, da nur es zusätzliche Optionen unterstützt. Genauere Informationen dazu findet man auf den Hilfeseiten.
Damit die Sitemap immer auf dem aktuellsten Stand ist wenn der Google Crawler sie abholt (was einmal am Tag vorkommt), generiere ich z.b. auf kostenlose-referate.de die Datei bei Zugriff jedes mal neu. Dabei leistet ein PHP - Skript gute Dienste. Im Falle von KosRef gibt es zuerst die Kopfinformationen den XML - Datei und die statischen Links per echo aus. Danach generiert es die statischen Links mit Hilfe der Referatetitel und -ids aus der Datenbank. Genau so werden die Links für Blog - Artikel und Studienliteratur erstellt. Dabei ist natürlich wichtig, dass die Links in der Sitemap identisch zu den Links, welche auf der Homepage verwendet werden, sind. Funktionen zur Erstellung statischer HTML - Links also am besten auslagern und gemeinsam benutzen.
Ein paar Tipps zur Generierung der Sitemap:
Die Links dürfen keine Umlaute beinhalten, da diese bei der Valdierung der Datei als Fehler markiert werden.
Die XML - Syntax muss natürlich auch korrekt sein.
Nur die Startseite sollte als priority den Wert 1.0 bekommen. Die priority - Angaben geben nur die Bedeutung der einzelnen Seiten innerhalb der Homepage an.
Wird in der PHP - Datei mit echo ein Datensatz ausgegeben (von <url> bis </url>), empfiehlt es sich, dahinter immer einen Zeilenumbruch zu setzen. Ein Zeilenumbruch innerhalb von echo kommt genau so in die erstellte Datei, was das Handling der Sitemap übersichtlicher macht. Nur so hilft auch die Google - Fehlerdiagnose weiter, da sie Fehler immer mit Zeilennummer angibt. Wer alle Einträge in einer Zeile hat sieht kein Land.
Link zu Google Sitemaps: https://www.google.com/webmasters/sitemaps/login?continue=%2Fwebmasters%2Fsitemaps%2Fsiteoverview&hl=de
Geschrieben am 13.06.2006 von Stefan Schlichthärle | Kommentar hinzufügen | Tags: Google SEO Sitemap XML PHP KosRef
