30.01.2010
Elmar und Direct URL von Bluegate (Probleme und Tipps)
An dieser Stelle möchte ich kurz 2 Probleme und ihre Lösungen zu Direct URL in Verbindung mit dem elektronischen Markt (Elm@r) loswerden.
Ganz wichtig Sicherung aller angesprochenen Dateien vor beginn der Änderungen anfertigen.
1. Problem
Nachdem ich den Export der products.csv Datei getätigt hatte waren alle Direct URL Links (Deep Links zu den Produkten) nicht mehr aufrufbar. Die Seite blieb einfach leer.
Lösung: den Speicherort der Export Dateien in der elmar_config.inc.php in ein beliebiges Unterverzeichnis ändern. (das angegebene Verzeichnis muss natürlich existieren)
2. Problem
Die Elm@r-Exportdatei products.csv nutzt nicht die durch Direct URL von Bluegate zur Verfügung gestellten SEO (sprechenden, suchmaschienenfreundlichen) URL’s.
Lösung:
- in der Datei elmar_config.inc.php den Eintrag
define(‘ELMAR_SEO_URLS’, false);
auf true setzen
define(‘ELMAR_SEO_URLS’, true); - in der Datei inc/xtc_href_link.inc.php folgende Code suchen
if ($page=='product_info.php' && strpos($parameters,'info=p')!==false && strpos($parameters,'action=')===false) { $realUrl = true; $link = $bluegateSeo->getProductLink($parameters,$connection,$_SESSION['languages_id']); //generate product link }und folgenden Code dahinter einfügen
//Änderung für Elmar begin // ***************************************** // Set product link if page=product_info.php // AND $parameters includes the string "products_id" // AND $parameters doesn't include the string "action=" // ***************************************** if ($page=='product_info.php' && strpos($parameters,'products_id=')!==false && strpos($parameters,'action=')===false) { $realUrl = true; $link = $bluegateSeo->getProductLink($parameters,$connection,$_SESSION['languages_id']); //generate product link } //Änderung für Elmar end - in der Datei inc/bluegate_seo.inc.php folgenden Code suchen
// Extract product id and product name from file parameter foreach($explodedParams as $value) { if (substr($value,0,5) == 'info=') { $xtcProductParameter=substr($value,5,strlen($value)); $productId=substr($xtcProductParameter,1,(strpos($xtcProductParameter,'_')-1)); }und danach folgenden Code eingfügen
//Änderung für Elmar begin if (substr($value,0,12) == 'products_id=') { $productId=substr($value,12,strlen($value)); } //Änderung für Elmar end
Bitte bei Copy und Paste darauf achten das alle zusammen gehörenden Codeteile in einer Zeile stehen. Am besten an dem original Code orientieren.
Getestet mit XT-Commerce 3.04 SP2.1, bis jetzt keine negativen Sachen aufgefallen. Nur mit der products.csv Datei getestet, weitere Produktdateien werden bei mir mit Elmar nicht erstellt.
Für Feedbacks oder eventuelle Probleme kann gerne die Kommentarfunktion genutzt werden.
Hi,
mal eine Frage zu den Änderungen:
Muß die products.csv eigentlich erzeugt werden?
So wie ich sehe werden die Produktlinks doch über die XML Schnittstelle eingelesen, oder?
Z.B. Preisroboter macht das so.
Werden diese Links auch geändert, oder betrifft das nur die optionale products.csv?
Gruß
Udo
@Udo
Hallo, mein Shop ist bei Shopmap24 gelistet und die laden sich die products.csv Datei runter und verarbeiten diese. Und da dort die falschen (alten URL’s ohne SEO) enthalten waren habe ich mich an die Arbeit gemacht zu suchen warum diese dort noch ausgegeben werden. Die restlichen Exportdateien bzw. das Livesearch habe ich noch garnicht betrachtet. Elm@r selbst benutzt meines Wissens auch diese Datei um die Daten im Elektronischen Marktplatz anzuzeigen.
mfg
Ricardo
Hallo,
na ja die erzeugten Dateien sind nur ‘Zusatz’ da Elm@r ja gerade die Echtzeitschnittstelle über XML bietet.
Darin liegt ja der ‘eigentliche Sinn’ von Elm@r.
Und natürlich nutzt auch die Suche/Portal von Elmar diese Schnittstelle.
Ich hab aber überhaupt keine Ahnung, wie das funktioniert bzw. ob auch die Echtzeitschnittstelle dann die SEO URL’s liefert.
Hallo,
die Änderungen scheinen auch bei der Echtzeitanfrage zu greifen. Habe gerade eine Echtzeitanfrage mit meinen eigenen Produkten auf dem elektronischen-marktplatz von elm@r durchgeführt und die URL wurde korrekt dargestellt. Zur Überprüfung der Anfrage habe ich mir das Echtzeitanfragen-Log angeschaut, zusätzlich wird der Preis bei den Echtzeitanfragen mit einem Ausrufezeichen versehen. Du kannst also gerne die beschriebenen Änderungen durchführen und dann sollte sich das Problem erledigt haben. Die Echtzeitschnittstelle gilt aber nur für Elmar, die meisten Preisvergleiche setzen auf die products.csv auch wenn der Shopinfo.xml Standard unterstützt wird.