Toxid für Oxid: Praktisches Content-Management-System für Online-Shops
![Toxid für Oxid: Praktisches Content-Management-System für Online-Shops Toxid für Oxid: Praktisches Content-Management-System für Online-Shops](https://images.t3n.de/magazin/wp-content/uploads/2013/03/Oxid-Toxid-Logo1.jpg?class=hero)
Bei vielen Online-Shops trifft man auf ähnliche Voraussetzungen: ein solider Shop, gutes Design, Anbindung an die Warenwirtschaft – kurz: Der Betreiber hat die wichtigsten Hausaufgaben erledigt. Dennoch kommen die Verkäufe oftmals nicht so richtig in Schwung. Manche Shops habe bereits einen weiteren Schritt gemacht und zusätzliche Informationen eingebunden. Aber auch das führt nicht zwangsläufig zum Erfolg, wenn der Shop nach außen zwei vollkommen getrennte Systeme betreibt: ein CMS zur Präsentation der Corporate-Site und ein Shopsystem für den Onlinevertrieb der Produkte.
![Mit Toxid finden Oxid eShops Anbindung an CMS wie TYPO3 und WordPress. Mit Toxid finden Oxid eShops Anbindung an CMS wie TYPO3 und WordPress.](https://images.t3n.de/magazin/wp-content/uploads/1970/01/dms_8b5369ffc1fd88c3b4bd40b01946ffa6-596x453.jpg?class=content)
Das Image, das man auf der Hauptseite aufbaut, sucht der Kunde dann im Shop vergebens. Umgekehrt verschwindet der Warenkorb beim Wechsel auf die Corporate-Website oder das Layout wechselt gar komplett – weg ist der Kunde.
Wie man an diesen zwei kurzen Beispielen erkennt, gibt es die unterschiedlichsten Ausprägungen von Content, den man im Shop benötigt. Wird der Inhalt umfangreicher und komplexer, kommt man an einem richtigen Content-Management-System nicht vorbei. Mit Toxid können Betreiber eines Oxid eShop unterschiedliche CMS einbinden.
WAS IST TOXID?
Warum nicht einfach ein CMS-Modul für Oxid entwickeln? Wäre nicht auch der Einsatz einer Shop-Extension für das CMS eine Option? Betrachtet man beispielsweise die beiden Systeme TYPO3 und Oxid eShop, wird schnell ersichtlich, dass eine kaum zu bewältigende Entwicklungsleistung aufzubringen und zudem die Komplexität des Systems zu erhöhen wäre, wenn man den gewünschten Part als Modul beziehungsweise Extension entwickelt.
Setzen Shopbetreiber hingegen eine Schnittstelle ein, so erreichen sie zwar den kompletten Funktionsumfang, haben technisch aber immer noch zwei getrennt laufende Systeme, die sie auch getrennt warten, erweitern und bei Lastspitzen auch skalieren können.
Ursprünglich, der Name verrät es noch, hatten die Entwickler Toxid als Modul zur Verknüpfung von TYPO3 und Oxid eShop geplant. Dank der offenen Architektur ist das Toxid-cURL-Modul inzwischen allerdings mit vielen anderen CMS wie Drupal, WordPress oder Contao im Einsatz.
TOXID IM EINSATZ
Im Grunde gibt es zwei Ansätze zur Integration derartiger Systeme. Zum einen kann man über eine Single-Sign-On-Lösung Shop und Content-Management-System parallel betreiben und lediglich die Informationen im Hintergrund austauschen, die man zur Darstellung benötigt. Zum anderen besteht die Möglichkeit, ein System als Master zu betreiben, das sich um Session-Handling und Interaktion mit dem Benutzer kümmert und das andere System als Erweiterung einbindet.
Diesen zweiten Weg geht Toxid cURL. Dabei fungiert Oxid eShop als das ausliefernde System, mit dem der Benutzer interagiert. Das CMS hingegen stellt die Inhalte fertig gerendert bereit. Alle so generierten Blöcke werden hierbei in einer XML-Struktur erwartet, mittels cURL geladen und schließlich in Oxid eingebunden. Vor der Ausgabe werden die Blöcke noch durch Smarty, die Templating-Engine bei Oxid, gerendert. So lassen sich zum Beispiel Produkte als Content-Element einbinden, deren Konfigurationen der Shop dann dynamisch laden kann.
![Der Online-Shop Stempelmeer setzt auf Oxid eShop und TYPO3. Der Online-Shop Stempelmeer setzt auf Oxid eShop und TYPO3.](https://images.t3n.de/magazin/wp-content/uploads/1970/01/dms_2de4f2685595ff7b272ce0d3ae72967a-596x444.jpg?class=content)
INSTALLATION UND SETUP
Um Inhalte mit Toxid cURL in Oxid eShop verfügbar zu machen, installiert man zuerst das Modul. Dieses steht unter MIT-Lizenz auf GitHub [1] zum Download bereit. Die MIT-Lizenz erlaubt den Einsatz mit allen Editionen von Oxid eShop und quasi beliebigen CMS, die eine Struktur wie im Beispiel ausgeben können:
<?xml version="1.0"?> <toxid> <navigation>...</navigation> <content>...</content> </toxid>
Listing 1
Nach dem Upload der Dateien ist es nötig, den Toxid-Autoloader zu registrieren. Dieser dient dazu, auch in älteren Oxid-Versionen sämtliche Dateien des Moduls zentral abzulegen. Dazu muss man die Datei modules/functions.php um die folgende Zeile ergänzen:
require_once('toxid_curl/toxid_curl_autoloader.php');
Listing 2
Anschließend registriert man Toxid regulär als Modul (Mit der aktuellen Version 4.6 hat Oxid das Modul-Handling übrigens
vereinfacht, sodass es genügt, das Modul nach dem Upload unter
„Erweiterungen>Module“ zu aktivieren):
oxseodecoder => toxid_curl/core/toxid_curl_oxseodecoder oxviewconfig => toxid_curl/core/toxid_curl_oxviewconfig
Listing 3
Nun gilt es, das CMS für die richtige Ausgabe zu konfigurieren. Exemplarisch sei hier TYPO3 herausgegriffen.
Toxid cURL funktioniert am besten mit sprechenden URLs, das CMS sollte entsprechend konfiguriert sein. Da statt einer kompletten Seite lediglich Content-Blöcke zur Ausgabe benötigt werden, sieht das TYPO3-Template schematisch wie folgt aus:
lib.nav = HMENU lib.nav.wrap = <navigation><![CDATA[|]]></navigation> lib.nav { ... } lib.content = COA lib.content.wrap = <content><![CDATA[|]]></content> lib.content.10 < styles.content.get page = PAGE page.typeNum = 1 page.config { disableAllHeaderCode = 1 } page.10 < lib.nav page.20 < lib.content page.wrap = <?xml version="1.0" encoding="utf-8"?>
Listing 4
Nachdem das Modul installiert ist und das CMS den Content korrekt ausliefert, muss man die Ausgabe konfigurieren. In der aktuellen Version wird Toxid noch über die zentrale Konfigurationsdatei von Oxid gesteuert, ein Backend hierfür ist bereits in Planung.
Zur Identifikation der CMS-Seiten innerhalb von Oxid dient ein Teil des Pfades aus der URL. Dieser kann je nach Shop variieren und sollte treffend gewählt werden. Hinterlegt ist der Pfad für jede Sprache in der Variable „aToxidCurlSeoSnippet“. Der Key gibt dabei die SprachID aus Oxid an.
$this->aToxidCurlSeoSnippets = array( '0' => 'toxid-curl', '1' => 'toxid-curl-en', );
Listing 5
Der Pfad zum Aufruf des CMS wird im Array „aToxidCurlSource“ definiert:
$this->aToxidCurlSource = array( '0' => 'http://yourcmspage.com/', '1' => 'http://yourcmspage.com/en/', );
Listing 6
Wer möchte, kann die XML-Ausgabe auf einen anderen PageType legen oder für WordPress ein alternatives Template einsetzen. Den zusätzlichen Parameter definiert man in diesem Falle in „aToxidCurlUrlParam“:
$this->aToxidCurlUrlParam = array( '0' => '?type=1', '1' => '?type=1', );
Listing 7
Jetzt lässt sich auch auf die neuen CMS-Inhalte einfach per Smarty im Template zugreifen:
[{assign var='toxid' value=$oViewConf->getToxid()}] [{ $toxid->getCmsSnippet(content) }]
Listing 8
AUSBLICK
Seit der ersten Version wird kontinuierlich an Toxid cURL gearbeitet. So ist es zum Beispiel inzwischen möglich, mehrsprachige Inhalte zu verknüpfen, übergreifend zu suchen und Produkte als Content-Elemente anzulegen. Auch externe Agenturen haben erste Verbesserungen und Anpassungen an neue Versionen von Oxid eShop eingebracht. Mittlerweile gibt es darüber hinaus diverse Codebeispiele zur Integration weiterer Content-Management-Systeme. Diese werden auf der Seite zum Projekt gesammelt und veröffentlicht [2].
Die nächsten Schritte zur Weiterentwicklung sind geplant:
- verbessertes Handling für Meta-Daten
- Konfiguration des Moduls über das Backend
- Readymade-Templates zur vereinfachten Integration
- Extension für TYPO3, um Produkte noch einfacher im Content platzieren zu können
FAZIT
Toxid cURL bietet eine einfache und dennoch leistungsfähige Basis für die Integration von Content-Seiten in Oxid eShop via unterschiedlicher Content-Management-Systeme.
Darauf aufbauend ist es möglich, weitere Inhalte und Informationen im Shop zu verknüpfen. So lassen sich beispielsweise kontextabhängig Slider befüllen [3] oder zentral gepflegte Produktinformationen mit mehreren Artikeln verknüpfen. Ebenfalls auf Toxid cURL aufbauend ist ein Landingpage-Modul entstanden. Dieses Modul erlaubt es, Seiten mit viel Content für einzelne Produkte und Produktgruppen aufzubauen, um so Werbeaktionen zu unterstützen.
Toxid ist keine Out-of-the-Box-Lösung, vielmehr ist es als Basis für eigene Entwicklungen anzusehen, mit der sich auf das Unternehmen zugeschnittene Lösungen realisieren lassen und Content-Management-System und E-Commerce-Software zu einer Einheit verschmelzen.
Hallo Joscha,
schöner Artikel. Wie schätzt du die „Mehrlast“ ein, die OXID zu verwalten hat, wenn ich den Shop als führendes System für die Content-Inhalte nutze?
Ab einer gewissen Userzahl wird es doch sicherlich recht dünn ohne vernünftiges Caching.
Gruß
Roman
Hallo Roman,
nun, OXID wird ja eben nicht zum führenden System für die Inhalte, sondern das übernimmt das CMS im Hintergrund. Diese werden ja nur durch OXID durchgeschleust und gegebenenfalls angereichert.
Bei entsprechender Last, da hast du natürlich vollkommen recht, sollte man entsprechend cachen – mit oder ohne TOXID. Das nimmt sich also nichts.
Gruß Joscha