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.
vorheriger Artikel: Shop für Ernährung von aktiven Menschen
nächster Artikel: Ankündigung Whippet Coursingranglisten 2009
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.
Perfekt.
Also ich weiss wohl das Twenga, Shopwahl und z.B. Preisroboter die Shopinfo.xml nutzen, aber ich habe schon länger keine products.csv auf dem Server liegen. Funktioniert hat es trotzdem. Die products.csv wird aber nicht automatisch neu erzeugt, oder?
Wie ich in meinem Logfile sehen kann, kommt Elm@r selbst zu definierten Zeiten (glaube das steht in einer der Config-Dateien oder wo du dich bei Elm@r angemeldet hast) und ruft ein script auf, welches die Products.csv neu schreibt.
Also die Products.csv (die ich irgendwann vor Monaten mal erzeugt hatte) hat sich nie von alleine geändert. Schau doch mal nach welches Datum die Datei hat.
Hier ein Zitat aus dem Elmar Forum :
>> … gehe ich recht in der Annahme das die products.csv bei aufruf von elmar_products.php automatisch generiert wird ? …
… Wenn die products.csv automatisch beim Aufruf des Skripts elmar_products.php erstellt werden soll, muss man unter “Einstellungen” den Punkt “Produktdatei speichern” aktivieren. <<
Also diese Option gibt es so bei mir so nicht. Ich kann nur einen Haken bei 'Erzeugen' machen und die Datei wird dann auf dem Server erzeugt. Die Option wird aber nicht gespeichert, so dass ich noch keinen Weg gefunden hab die Datei über einen Cronjob erzeugen zu lassen.
Es sei denn, die Datei muß nicht auf dem Server liegen?
Ich weiss nicht wie die Portale arbeiten, aber vielleicht erzeugen die
die Products.csv durch Aufrufen der elmar_products.php und downloaden direkt die temporär erzeugte Datei?
Die Datei auf dem Server wird definitiv nicht automatisch neu geschrieben.
Hallo Udo,
wenn du die Seite elmar_start.php unterhalb deiner Domain aufrufst, dich mit dem Passwort was du vergeben hast anmeldest und dann auf Einstellungen gehst sollte der erste Eintrag dieser sein und dort steht auch die Erklärung zum Updateintervall:
Produktdatei speichern
Bitte stellen Sie ein, ob beim Abrufen von Produktdaten über die URL http://domain/elmar_products.php automatisch die Produktdatei Speicherort/products.csv erzeugt werden soll. Dies ist insbesondere dann sinnvoll, wenn der Server nicht der Schnellste ist, die Produktdaten sehr häufig abgerufen werden oder der Shop sehr viele Produkte führt. Anfragen an die URL werden dann gemäß UPDATEINTERVAL-Einstellung für 43200 Sekunden (12,0 Stunden) effizient durch Weiterleitung auf die generierte Produktdatei beantwortet. Danach erfolgt automatisch eine Aktualisierung der Produktdatei beim Abruf. Solange alle Preisvergleichsdienste die obige URL benutzen, brauchen Sie sich also nicht mehr um die Aktualisierung der Produktdatei zu kümmern!
Der Updateintervall kann in der Datei elmar_config.inc.php unter Updateinterval eingestellt werden.
Öhhh … ich stehe gerade etwas auf dem Schlauch, weil es bei mir keinen Punkt ‘Einstellungen’ gibt. Ich nutze die Version 3.60 (steht ganz unten).
Am linken Rand habe ich: Übersicht, Shopdatei, Registrierung, Testen 1, Testen 2, Produktdateien, Update, Feedback und System.
Hat sich erledigt.
Wer lesen kann ist klar im Vorteil.
Eine Elmar Datei hatte keinen Schreibzugriff, deshalb wurden gewisse Optionen nicht eingeblendet.
Jetz funktioniert alles.
Besten Dank.
Hallo
und vielen dank für die Info und Arbeit welche dahinter stecken muss.
Bei Direkt URl V3 scheind es zu reichen wenn bei der, Elmar Datein, das Seo auf True gesetzt wird. In meinen Fall das KREUZ # entfernt wird.
Danke für den Hinweis, wenn mich nicht alles täuscht setze ich noch die V2 ein. Allen mit der Direkt URL V3 wird dein Posting bestimmt helfen.
Offiziell gibt es kein Direct URL v2 oder v3.
Direct URL ist von Bluegate und die aktuelle Version ist 1.06.
Leider gibt es kein besseres URL Modul, was zusätzlich auch noch die Hersteller ID vernünftig auflöst.