Sie sind hier
E-Book

OXID eShop Kochbuch

AutorJoscha Krug, Roman Zenner
VerlagO'Reilly Verlag
Erscheinungsjahr2014
Seitenanzahl208 Seiten
ISBN9783955610449
FormatePUB/PDF
Kopierschutzkein Kopierschutz/DRM
GerätePC/MAC/eReader/Tablet
Preis27,99 EUR
Sie suchen nach den richtigen Zutaten, um Ihren OXID-Shop auszubauen oder ein konkretes Problem zu lösen? Dann ist dieses Kochbuch genau das Richtige für Sie: Es enthält zahlreiche Rezepte für typische Anwendungsfälle beim Aufbau und bei der Erweiterung Ihres Online-Shops. Konkrete Szenarien aus dem OXID-Entwicklerleben: Dieses OXID-Entwicklerhandbuch bietet geballtes Expertenwissen, das in die Tiefe geht. Zu Themengebieten wie z.B. Templating, Entwicklung von eigenen Modulen sowie Performance und Skalierung enthält das OXID eShop Kochbuch nützliche Rezepte aus der Praxis, die auch einen Blick hinter die Kulissen des Shopsystems erlauben. Das Ziel: Entwicklern bei der täglichen Arbeit mit OXID eShop konkrete Hilfestellung zu geben und dabei die Software-Architektur sowie Best Practices zu vermitteln. Lösungen zu häufig auftretenden Fragestellungen: Die Rezepte sind so aufgebaut, dass ein Problem benannt, die Lösung beschrieben und anschließend diskutiert wird. In den Kapiteln zu Templating und Modulentwicklung wird zunächst das nötige Basiswissen vermittelt. Danach erfahren Sie beispielsweise, wie Sie: eine gefilterte Suche anhand von Produktattributen durchführen oder Lazy Loading für Kategorien aktivieren; Brutto- und Nettopreise gleichzeitig anzeigen; den Check-out-Prozess an die eigenen Vorstellungen anpassen; bei der Anbindung von Drittsystemen einen externen Preis im Shop darstellen; das Frontend-Editing nutzen oder mit der Erweiterung TOXID ein WordPress-Blog an OXID anbinden; das CMS-Modul erweitern und einen Scheduler für automatisierte Aufgaben einsetzen; in der OXID-Community einen Bug-Report einsenden oder eine Usergroup einrichten

Dr. Roman Zenner arbeitet seit 2002 als Autor, Berater und Dozent im Bereich E-Commerce und Online-Marketing. Er veröffentlicht regelmäßig in Fachmagazinen und hat mehrere Bücher zu Onlineshop-Systemen geschrieben. Unter anderem im wasmitweb-Blog (wasmitweb.de/blog) schreibt er über aktuelle Themen des Online-Handels, außerdem nimmt er auf ecomPunk.com innovative Geschäftsmodelle und Strategien unter die Lupe. Als Berater und Interims-Manager unterstützt er mittlere und große Unternehmen bei der Konzeption und der Umsetzung ihrer E-Commerce-Projekte. Joscha Krug ist Gründer und Geschäftsführer der Webagentur marmalade aus Magdeburg. Gemeinsam mit seinem Team realisiert er seit 2009 E-Commerce-Projekte mit OXID eShop. Mit der marmalade GmbH hat er sich als Berater und starker Partner bei der Entwicklung unterschiedlicher Internetpräsentationen einen Namen gemacht. Dabei begleiten er und sein Team die Kunden vom Konzept bis zur Umsetzung, häufig im Bereich des Mobile Commerce oder beim Handling großer Datenmengen. In den letzten Jahren hat Joscha Krug viele freie Community-Projekte mit OXID eShop entwickelt und mitgestaltet. So stammt das populäre Modul TOXID zur Integration von Content aus externen Systemen von ihm. Mit den Download-Produkten ist eine seiner Erweiterungen als eine der ersten Contributions in den Core von OXID eShop aufgenommen worden. Privat trifft man ihn auf zwei Rädern an, meist mit Motor zwischen den Achsen.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe

Kapitel 2. Entwicklung und Deployment


Nachdem Sie sich im ersten Kapitel mit Frontend-Anpassungen beschäftigt haben, geht es ab diesem Kapitel um die Modulentwicklung. Im ersten Rezept lernen Sie die wichtigsten Eigenschaften des OXID-Frameworks kennen, anschließend führen wir Sie Schritt für Schritt näher an das Thema Modulentwicklung heran. Sie erfahren, wie man Module installiert und wie diese aufgebaut sind. Außerdem lernen Sie durch weitere Rezepte die verschiedenen Aspekte der OXID-Modulentwicklung kennen und erstellen in diesem Zusammenhang sinnvolle Zusatzfunktionalitäten wie das Leeren des Caches auf Knopfdruck und die formatierte Darstellung von Readme-Dateien im Backend.

Wenn Sie sich in Projektarbeiten befinden, werden Sie schnell feststellen, dass das eigentliche Programmieren nur die eine Seite der Medaille ist. Gerade wenn die Anforderungen komplex sind und das Team größer wird, gilt es, seine Arbeit so zu strukturieren und zu organisieren, dass möglichst wenig Reibungsverluste entstehen. Dreh- und Angelpunkt eines solchen strukturierten Arbeitsprozesses ist das Deployment, d. h. die geplante Bereitstellung der Modifikationen auf dem gewünschten Server. In diesem Zusammenhang zeigen wir Ihnen, wie Sie eine strukturierte Entwicklungsumgebung aufbauen und mit git Ihr Deployment organisieren. Abschließend behandelt das letzte Rezept dieses Kapitels die Frage, wie Sie den OXID eShop mittels regelmäßiger Updates auf dem neuesten Stand halten und was es dabei zu beachten gilt.

2.1 Den Grundaufbau des OXID-Frameworks kennenlernen


Strukturell ist das Framework intern nach dem bekannten Entwurfsmuster Model-View-Controller (MVC) aufgebaut. Die Verzeichnisstruktur lautet die folgt:

/application/admin/

Darin ist die Weiterleitung zum Backend des OXID eShop enthalten.

/application/components/

Das OXID-Framework sieht Klassen vor, die nach dem sogenannten Decorator-Entwurfsmuster aufgebaut sind. An dieser Stelle sind sie zu finden.

/application/controllers/

Die Controller der Applikation sind hier zu finden.

/application/models/

Alles was zum Thema Datenschicht – gemäß MVC-Modell – zu finden ist, ist in diesem Verzeichnis gekapselt.

/application/translations/

Übersetzungsdateien werden – unterteilt in die jeweiligen Sprachverzeichnisse – hier hinterlegt.

/application/views/

An dieser Stelle wird die View-Schicht in Form der Themes abgelegt (siehe Kapitel 1).

/bin/

OXID erlaubt es, gewisse wiederkehrende Aufgaben oder Preisänderungen (siehe Kapitel 3) zeitgesteuert über Cron-Jobs zu automatisieren. Bislang wird ein Cron-Job mitgeliefert. Diesen finden Sie hier.

/core/

Im Verzeichnis /core/ finden Sie alle Klassen, die zur grundsätzlichen Funktionalität des OXID-Frameworks benötigt werden.

/export/

Der OXID eShop kann out-of-the-box verschiedene Exporte anstoßen, beispielsweise von Kunden- und Bestelldaten. Das Exportverzeichnis ist der Ort auf dem Server, in den diese Dateien standardmäßig geschrieben werden.

/log/

In dieses Verzeichnis werden die Logdateien geschrieben, die die Applikation produziert. Es ist die erste Anlaufstelle, sollten Sie Probleme mit Ihrem System haben.

/modules/

Dieses Verzeichnis wird Ihnen im Verlauf der Lektüre dieses Buchs noch öfter begegnen. Wie der Name schon ahnen lässt, werden hier individuelle OXID-Module abgelegt.

/out/

Dieses Verzeichnis enthält die Dateien, die von außen – d. h. vom Browser – lesbar sind, und übernimmt damit die Rolle des /public/-Verzeichnisses etwa beim Zend Framework. Im OXID eShop sind hier Teile der Themes untergebracht, wie Stylesheets, Bilder und JS-Bibliotheken.

/setup/

Die Dateien des Installationsprozesses sind hier untergebracht. Aus Sicherheitsgründen wird das Verzeichnis nach erfolgreicher Installation automatisch geleert.

/tmp/

Hierbei handelt es sich um das Cacheverzeichnis der Applikation, in das beispielsweise kompilierte Smarty-Dateien gelegt werden.

2.2 Ein Modul installieren


Problem


Sie möchten ein vorhandenes Modul in OXID installieren.

Lösung


Nutzen Sie das hier gezeigte Procedere, um Ihre Installation des OXID eShop durch neue Module zu erweitern.

Grundsätzlich lässt sich die Installation in drei Teile einteilen:

  1. Die Programmdateien mittels FTP auf den Server übertragen (häufig liegen diese Dateien separat in einem Verzeichnis /copy_this).

  2. Gegebenenfalls einiger SQL-Statements ausführen.

  3. Das Modul im Backend unter Module aktivieren.

  4. Das Modul testen.

Diskussion


Es gibt verschiedene Möglichkeiten, wie man an ein externes Modul gelangen und die Grundfunktionalität des OXID-Systems erweitern kann. Auf der OXID-eigenen eXchange-Plattform[1] findet man diese Module wie auch auf GitHub[2] oder im Shop eines Modulentwicklers.

Das Grundprinzip der Modulinstallation kann man als »historisch gewachsen« bezeichnen: Die Dateien, die man für die Installation eines Moduls in den Shop kopieren muss, werden in einem Verzeichnis mit der Benennung /copy_this mitgeliefert. Wie der Name schon sagt, werden die Inhalte dabei eins zu eins in die Verzeichnisstruktur des Shops kopiert. Das gleiche Prinzip finden Sie auch beim Update des Systems wieder (siehe „2.8 OXID eShop durch Updates auf dem neuesten Stand halten“).

Klassischerweise werden bei OXID-Modulen .sql-Dateien mitgeliefert, und Sie müssen die Datenbankoperationen manuell ausführen. Dies können Sie entweder direkt in einer Oberfläche wie phpMyAdmin tun, alternativ jedoch auch im Backend unter Service ? Tools. Dort finden Sie auch den Button Views jetzt updaten (siehe Abbildung 2.1).

Abbildung 2.1 Views updaten

Im Gegensatz zu vielen anderen Anwendungen normalisiert OXID mehrsprachige Daten nicht über mehrere Tabellen, sondern legt die Spalte mit der zusätzlichen Sprach-ID direkt in derselben Tabelle an. So wird zum Beispiel aus OXTITLE für die Sprache mit der ID 1 OXTITLE_1. Dies spart aufwendige JOINS und macht das System performanter. Glücklicherweise muss man sich um die Auswahl der richtigen Felder nicht kümmern – dies übernimmt das Framework für uns. Wir müssen nur bei Datenstrukturänderungen die Views aktualisieren und die Tabelle über getViewName('WUNSCHTABELLE') ermitteln.

2.3 Den Cache gezielt leeren


Problem


Sie möchten schnell und einfach den OXID-Cache aus dem Backend heraus leeren können.

Lösung


Erstellen Sie ein Modul, mit dem sich im Backend auf Knopfdruck die diversen Caches leeren lassen.

Um nicht jedes Mal alle Berechnungen neu durchführen zu müssen und um aufwendige oder häufige Datenabfragen zu umgehen, cacht OXID einige dieser Daten. Diese Daten werden im Verzeichnis /tmp/ abgelegt. Durch dieses Caching des OXID-Frameworks wird das Entwickeln erschwert, weil statt der dynamisch erzeugten die bereits vorberechneten Inhalte verwendet werden. Zwar kann man den Cache via FTP löschen, indem man das /tmp/-Verzeichnis leert, dieser Schritt kostet jedoch oft mehr Zeit als nötig. Zudem sollen beim Ausrollen von Änderungen im Produktivsystem ja nicht alle Daten gelöscht werden.

Um ein Modul zu erstellen, das die Caches gezielt leert, benötigen wir eine Eingabemöglichkeit im Backend, einen Controller, der die gewünschte Aktion aufnimmt und weiterverarbeitet, und schließlich eine Klasse, die die interne Logik enthält.

Kümmern wir uns erst mal um das Backend. In unserer metadata.php definieren wir zunächst, dass wir eine weitere Eingabemöglichkeit benötigen. Wir haben uns in diesem Beispiel für den Header entschieden, um dort unser Cache-Interface unterzubringen. Da OXID dort von Haus aus keinen erweiterbaren Block zur Verfügung stellt, hilft nur ein komplettes Ersetzen der Template-Datei:

'templates' => array( 'ocb_header.tpl' => 'ocb_cleartmp/views/admin/ocb_header.tpl' )

Wir gestalten das Interface so, dass ein Drop-down-Menü erscheint, über das man die verschiedenen Caching-Bereiche ansteuern kann. Wird ein Punkt ausgewählt,...

Blick ins Buch

Weitere E-Books zum Thema: e-Business - e-Commerce

Texten für das Web

E-Book Texten für das Web
Erfolgreich werben, erfolgreich verkaufen Format: PDF

Dieses Buch bietet das nötige Handwerkszeug, um die Qualität der eigenen Web-Texte zu verbessern bzw. eingekaufte Texte sicherer beurteilen zu können. Es liefert klare Kriterien für die Textanalyse,…

Texten für das Web

E-Book Texten für das Web
Erfolgreich werben, erfolgreich verkaufen Format: PDF

Dieses Buch bietet das nötige Handwerkszeug, um die Qualität der eigenen Web-Texte zu verbessern bzw. eingekaufte Texte sicherer beurteilen zu können. Es liefert klare Kriterien für die Textanalyse,…

Texten für das Web

E-Book Texten für das Web
Erfolgreich werben, erfolgreich verkaufen Format: PDF

Dieses Buch bietet das nötige Handwerkszeug, um die Qualität der eigenen Web-Texte zu verbessern bzw. eingekaufte Texte sicherer beurteilen zu können. Es liefert klare Kriterien für die Textanalyse,…

Weitere Zeitschriften

arznei-telegramm

arznei-telegramm

Das arznei-telegramm® informiert bereits im 53. Jahrgang Ärzte, Apotheker und andere Heilberufe über Nutzen und Risiken von Arzneimitteln. Das arznei-telegramm®  ist neutral und ...

Card-Forum

Card-Forum

Card-Forum ist das marktführende Magazin im Themenbereich der kartengestützten Systeme für Zahlung und Identifikation, Telekommunikation und Kundenbindung sowie der damit verwandten und ...

DSD Der Sicherheitsdienst

DSD Der Sicherheitsdienst

Der "DSD – Der Sicherheitsdienst" ist das Magazin der Sicherheitswirtschaft. Es erscheint viermal jährlich und mit einer Auflage von 11.000 Exemplaren. Der DSD informiert über aktuelle Themen ...

EineWelt

EineWelt

Lebendige Reportagen, spannende Interviews, interessante Meldungen, informative Hintergrundberichte. Lesen Sie in der Zeitschrift „EineWelt“, was Menschen in Mission und Kirche bewegt Man kann ...