Magento - Das Handbuch für Entwickler (eBook) - Roman Zenner, Vinai Kopp, Claus Nortmann, Sebastian Heuer
Fotogalerie Fotogalerie Fotogalerie Fotogalerie Fotogalerie
Fotogalerie Fotogalerie

Roman Zenner, Vinai Kopp, Claus Nortmann, Sebastian Heuer 

Magento - Das Handbuch für Entwickler (eBook)

Programmierung, Anpassung & Integration

eBook
 
Format: OL
versandkostenfrei
innerhalb Deutschlands
36 ebmiles sammeln
Statt EUR 44,90*
EUR 36,00
Sofort per Download lieferbar
Alle Preise inkl. MwSt.
*Preis der gedruckten Ausgabe
-20 %
Bewerten Empfehlen Merken Auf Lieblingsliste


Magento - Das Handbuch für Entwickler (eBook)

Magento ist ein mächtiges E-Commerce-System, das sich dank des modularen Aufbaus sehr flexibel gestalten und erweitern lässt. Ziel dieses Buches ist es, die wesentlichen Bestandteile des Systems zu beleuchten und ihr Zusammenspiel im praktischen Einsatz zu zeigen. Es richtet sich an erfahrene Entwickler, die bereits Online-Shops mit Magento umgesetzt haben und nun tiefer in die Materie einsteigen wollen.
Die Magento-Architektur
In diesem Buch wird die bisher weitgehend undokumentierte Architektur von Magento erstmals systematisch erläutert. Die Autoren werfen dabei einen detaillierten Blick unter die Haube des E-Commerce-Systems und erklären, welche (Programmier-)Konzepte Magento zugrunde liegen. Mit diesem Wissen im Hinterkopf können Sie später selbst souveräner mit dem System umgehen, vor allem, wenn es um die Entwicklung eigener Extensions geht.
Rezepte aus der Praxis
Nachdem die technischen Grundlagen von Magento beleuchtet wurden, geht es um die praktische Arbeit mit dem Shopsystem. In bewährter Kochbuch-Manier widmet sich das Buch den zentralen Themen und Herausforderungen, denen Sie als Entwickler immer wieder begegnen. So wird der Umgang mit Produkten und Kategorien, Angeboten und Bestellungen sowie Bezahlung und Versand anhand typischer Szenarien erklärt. Darüber hinaus erfahren Sie Wissenswertes über die Systemintegration in Dritt- oder ERP-Systeme und beschäftigen sich damit, wie Sie eine gute Performance und Skalierbarkeit des Shops gewährleisten.
Wissen aus erster Hand
Das Buch wurde von sechs erfahrenen »Magentoianern« verfasst, die diese Software schon in zahlreichen Projekten eingesetzt haben und somit Magento kennen wie ihre eigene Westentasche. Sie bringen umfassende Erfahrungen im Enterprise-Segment mit und waren mit ihrem Team bereits weltweit an großen Magento-Projekten beteiligt.
Code zum Download
Der im Buch beschriebene Code steht Ihnen zum Download zur Verfügung. So können Sie die im Rezeptteil des Buches erarbeiteten Extensions problemlos an Ihre eigenen Bedürfnisse anpassen und in der Praxis nutzen.



Produktinformation

  • Deutsch
  • ISBN-13: 9783897219298
  • ISBN-10: 389721928X
  • Best.Nr.: 31336225
Roman Zenner arbeitet seit 2004 als freiberuflicher Berater, Programmierer und Autor und konzentriert sich dabei vor allem auf die Themen E-Commerce und Onlinemarketing. Auf www.romanzenner.com bloggt er regelmäßig über aktuelle Neuigkeiten in diesem Bereich und hat in diesem Zusammenhang die Entwicklung von Magento seit Sommer 2007 regelmäßig mitverfolgt.
Während eines Studentenaustauschs mit der University of Western Australia in Perth im Jahr 2000 begann er, eine Informationsseite für diesen Austausch zu erstellen, und kam so zum ersten Mal mit der technischen Seite des Internets in Berührung. Die Faszination für dieses Medium hat ihn seit diesem Zeitpunkt nicht mehr losgelassen. So kam es auch, dass er sich in seiner Promotion in Anglistischer Literaturwissenschaft mit der sogenannten Hyperfiction im Internet auseinandergesetzt hat; dies ist eine Form von Literatur, die man nicht wie üblich linear von vorne nach hinten liest, vielmehr erschließt man sich diese mittels Verlinkungen selbst und bahnt sich dadurch einen eigenen Weg durch das Werk.
In den seltenen Momenten, in denen er nicht online ist, widmet er sich seiner E-Gitarre und kann ab und an joggend oder Fahrrad fahrend rund um Aachen gesichtet werden. Am besten erreicht man ihn per E-Mail unter rom

Leseprobe zu "Magento - Das Handbuch für Entwickler (eBook)"

"KAPITEL 8 Performance und Skalierbarkeit (S. 191-192)

8.0 Einführung


Kurze Ladezeiten werden als wichtiges Qualitätsmerkmal von Websites gesehen. So haben Benutzerexperimente bei Amazon und Google gezeigt, dass schon Verzögerungen im Bereich von 100 Millisekunden von Benutzern negativ wahrgenommen werden und so zu einem geringeren Umsatz führen (wenn Sie mehr darüber erfahren möchten, finden Sie unter http://glinden.blogspot.com/2006/11/marissa-mayer-at-web-20.html ausführlichere Informationen).

Es lohnt sich also eigentlich bei jedem Projekt, etwas Zeit in die Verbesserung der Performance zu investieren. Führende Magento-Shops schaffen einen kompletten Seitenaufbau in 1,5 bis 2 Sekunden. In diesem Kapitel werden Sie Rezepte kennenlernen, die Ihnen eine ähnliche Performance ermöglichen. In engem Zusammenhang mit der Performance steht die Skalierbarkeit – ein Shop ist performant, wenn er bei nur einem Zugriff schnell reagiert; er ist skalierbar, wenn diese Eigenschaft auch bei vielen gleichzeitigen Anfragen erhalten bleibt. Wie wir zeigen werden, lässt sich mit Magento ein höchst performanter Shop aufbauen, der Ladezeiten unter einer Sekunde bietet.

Die Skalierbarkeit lässt sich ebenfalls sehr weit steigern. Hinter beidem steckt ein einfaches Konzept: die gezielte Verwendung von Caching, also dem Zwischenspeichern von Inhalten zur wiederholten Ausgabe. In diesem Kapitel gehen wir zunächst auf etwas Hintergrundwissen ein. Die Performance von Webapplikationen im Allgemeinen ist schwer zu verstehen und hängt von vielen Faktoren ab. Überraschend ist, dass die Ausführungszeit der Applikation – die Zeit, in der Magento auf dem Server ausgeführt wird – in der Regel weniger als die Hälfte der gesamten Ladezeit des Benutzers ausmacht; die übrige Zeit wird benötigt, um statische Dateien zu laden, JavaScript zu interpretieren und die Seite zu rendern. Wie wir sehen werden, kann man durch vergleichsweise einfache Eingriffe hier viele easy wins erreichen.

Danach stellen wir Ihnen einige – ebenfalls kostenlose – Tools vor, mit deren Hilfe Sie die Skalierbarkeit und Performance eines Magento-Shops analysieren und so gezielte Verbesserungen vornehmen können. Mit Fiddler steht Ihnen ein sehr komfortables Tool zur Verfügung, das als Proxy zwischen Browser und Server verwendet wird. So kann exakt gemessen werden, welche Komponenten wann und mit welchem Zeitaufwand geladen werden. Magento hilft bei der Optimierung mit einem Code-Profiler, der die Ausführungszeiten von einzelnen Codeblöcken anzeigt, und einem Datenbank-Profiler, der die gleiche Information für Datenbankabfragen liefert.

Caching ist die wirkungsvollste Strategie, um die Performance von Magento zu verbessern. Gleichzeitig erhöht Caching die Skalierbarkeit, da pro Benutzer weniger Requests anfallen, seltener Datenbankabfragen gemacht usw. Magento selbst hat eine sehr effektive Caching-Infrastruktur, die unter anderem Ergebnisse von Datenbankabfragen und Blöcke speichern kann. Durch eine gute Verwendung von Block-Caching wird die Ausführungszeit von Magento oft mehr als halbiert, wenn ein Cache-Treffer vorliegt. Whole Page Caching geht noch einen Schritt weiter und liefert direkt eine ganze vorgespeicherte Seite zurück. "

Inhaltsangabe

Inhalt ... 5
Einführung ... 9
Das Testsystem installieren ... 14
Die Entwicklungsumgebung einrichten ... 15
Eine Versionskontrolle nutzen ... 15
Magento Contributor Agreement ... 17
Magento Community Documentation ... 17
Magento Community Edition Roadmap ... 18
Literatur ... 19
Weblinks ... 19
Kapitel 1: Der erste Eindruck ... 21
Das Zend Framework ... 22
Granularer Aufbau durch Module ... 24
Die Modul-Programmlogik ... 25
Die Modul-Gestaltung ... 26
Die Verzeichnisstruktur von Magento ... 26
/app/code/ ... 28
/app/design/ ... 29
Das MVC-Pattern ... 31
M wie Model ... 31
V wie View ... 32
C wie Controller ... 33
Requestzyklus ... 35
Zusammenfassung ... 36
Kapitel 2: Eigene Extensions entwickeln ... 37
Eine Extension konfigurieren ... 38
Globale Konfiguration ... 39
Frontend-bezogene Konfiguration ... 40
Eine Extension in Magento aktivieren ... 43
Die Verzeichnisstruktur einer Extension ... 45
Praxisbeispiel 1: HelloWorld ... 46
Eine Extension anlegen und konfigurieren ... 47
Einen neuen Controller definieren ... 47
Layout ... 48
Template ... 49
Magento richtig erweitern ... 49
Rewrites ... 50
Event-Observer ... 53
Replacements ... 54
Praxisbeispiel 2: Eine Bestellbenachrichtigung per E-Mail verschicken ... 54
Die Extension konfigurieren ... 54
Den Observer anlegen ... 55
Eigene Backend-Konfigurationsoptionen ... 56
Installations- und Update-Skripte ... 59
Praxisbeispiel 3: Die Category-Entität erweitern ... 60
Eine Setup-Ressource in die config.xml eintragen ... 60
Ein Installationsskript anlegen ... 61
Zusammenfassung ... 63
Kapitel 3: Models und Resource-Models ... 65
Entity-Attribute-Value (EAV) ... 66
Entitäten ... 66
Attribute, Attributsets und Attributtypen ... 66
Attributwerte ... 67
Datenbankstruktur ... 69
EAV-Tabellen ... 71
Tabellensets ... 74
Models ... 75
Abstrakte Model-Klassen und Vererbung ... 75
Der Ursprung des Magento-Model-Objekts ... 76
Die Modulfabrik von Magento ... 78
Der PHP include_path ... 78
Collections ... 79
Events ... 82
Resource-Model ... 82
Persistenz ... 83
Praxisbeispiel: Eine Extension zur Verwaltung von Rezepten ... 83
Router und Controller einrichten ... 84
Datenbanktabellen über ein Installationsskript erstellen ... 85
Das Model erstellen und einbinden ... 86
Das Resource-Model erstellen und einbinden ... 87
Das Model instantiieren ... 88
Collection-Klasse zum Auslesen der Rezeptdaten ... 89
Zusammenfassung ... 90
Kapitel 4: Das Magento-Frontend ... 93
Themes und Packages ... 94
CSS/JavaScript ... 96
Seiten aufbauen mit Blöcken ... 97
Inhaltsblöcke vs. Strukturblöcke ... 98
Blockklassen ... 100
Blöcke mit Templates formatieren ... 101
Blöcke und Templates ... 102
Einen neuen Block erzeugen ... 103
Blockanweisungen ... 103
Mit Layouts arbeiten ... 105
Update-Handles ... 111
Actions ... 113
Custom Layout Updates ... 115
Praxisbeispiel: Verschiedene Layout-Updates ... 116
Mini-Warenkorb verschieben ... 117
Blöcke entfernen ... 118
Blöcken weitere Informationen hinzufügen ... 119
Ändern der Blockklasse ... 120
Eigene Templates verwenden ... 121
Core-Templates durch eigene ersetzen ... 121
JavaScript und AJAX ... 122
AJAX-Controller ... 125
JS-Proxy ... 125
JavaScript debuggen mit Firebug ... 126
Zusammenfassung ... 128
7;Kapitel 5:
Produkte und Kategorien;129
5.1 Eine vertikale Tree-Navigation erstellen ... 130
Problem ... 130
Lösung ... 130
Diskussion ... 131
5.2 Eine Standardansicht pro Kategorie setzen ... 133
Problem ... 133
Lösung ... 133
Diskussion ... 134
5.3 Produkte per AJAX einer Vergleichsliste hinzufügen ... 137
Problem ... 137
Lösung ... 137
Diskussion ... 137
5.4 Kundenpreise anlegen ... 143
Problem ... 143
Lösung ... 143
Diskussion ... 143
5.5 Ein Produkt mit einem Frontend-Widget darstellen ... 150
Problem ... 150
Lösung ... 150
Diskussion ... 150
Kapitel 6: Angebote und Bestellungen ... 157
6.0 Einführung ... 157
6.1 Bestelldaten anreichern ... 157
Problem ... 157
Lösung ... 157
Diskussion ... 157
6.2 Einen zusätzlichen Status für Bestellungen hinzufügen ... 159
Problem ... 159
Lösung ... 159
Diskussion ... 159
Siehe auch ... 164
6.3 Einen produktspezifischen Versandaufpreis festlegen ... 164
Problem ... 164
Lösung ... 164
Diskussion ... 164
Siehe auch ... 176
6.4 Das Admin-Panel um eigene Konfigurationsmöglichkeiten erweitern ... 176
Problem ... 176
Lösung ... 176
Diskussion ... 177
6.5 Nutzerrechte für neue Extensions anlegen ... 181
Problem ... 181
Lösung ... 181
Diskussion ... 181
6.6 Gratisartikel in den Warenkorb legen ... 183
Problem ... 183
Lösung ... 183
Diskussion ... 183
Siehe auch ... 186
6.7 Ein Bestellkommentarfeld einfügen ... 186
Problem ... 186
Lösung ... 186
Diskussion ... 186
Siehe auch ... 190
9;Kapitel 7:
Systemintegration;191
7.0 Einführung ... 191
Austausch von Daten zwischen zwei Systemen ... 191
7.1 Produktbestände mit Drittsystemen synchronisieren ... 192
Problem ... 192
Lösung ... 192
Diskussion ... 192
7.2 Aufträge an ERP-Systeme exportieren ... 193
Problem ... 193
Lösung ... 193
Diskussion ... 193
Siehe auch ... 196
7.3 Highslide für Bilder und sonstige Medien nutzen ... 196
Problem ... 196
Lösung ... 197
Diskussion ... 197
7.4 Ein Importer-Modul erstellen ... 198
Problem ... 198
Lösung ... 198
Diskussion ... 198
7.5 Den Produktimport über ein Shell-Skript starten ... 205
Problem ... 205
Lösung ... 205
Diskussion ... 205
7.6 Bilder Produkten hinzufügen und löschen ... 206
Problem ... 206
Lösung ... 206
Diskussion ... 206
Siehe auch ... 207
7.7 Eine Liste von Bestellungen via SOAP auslesen ... 208
Problem ... 208
Lösung ... 208
Diskussion ... 208
Siehe auch ... 210
10;Kapitel 8:
Performance und Skalierbarkeit;211
8.0 Einführung ... 211
Performance von Magento ... 212
Caching ... 213
8.1 Die Systemperformance mit Fiddler analysieren ... 214
Problem ... 214
Lösung ... 214
Diskussion ... 214
8.2 Einfache Lasttests mit ab2 ... 216
Problem ... 216
Lösung ... 216
Diskussion ... 216
8.3 Mit Code-Profiling die Performance einzelner Funktionen messen ... 217
Problem ... 217
Lösung ... 217
Diskussion ... 217
8.4 Clientseitiges Caching für statische Daten optimieren ... 218
Problem ... 218
Lösung ... 219
Diskussion ... 219
8.5 Statische Daten mit dem Reverse-Proxy-Verfahren ausliefern ... 219
Problem ... 219
Lösung ... 220
Diskussion ... 220
8.6 Statische Daten durch Pipelining schneller ausliefern ... 222
Problem ... 222
Lösung ... 222
Diskussion ... 222
8.7 APC als Magento-Cache-Backend verwenden ... 223
Problem ... 223
Lösung ... 223
Diskussion ... 224
8.8 Eine Memcached-Caching-Infrastruktur in Magento integrieren ... 224
Problem ... 224
Lösung ... 224
Diskussion ... 224
Siehe auch ... 225
8.9 Seitenteile mithilfe von Block-Caching zwischenspeichern ... 225
Problem ... 225
Lösung ... 225
Diskussion ... 226
8.10 Ganzseitiges Caching mit nginx und Memcached ... 228
Problem ... 228
Lösung ... 228
Diskussion ... 228
Kapitel 9:Deployment ... 235
9.0 Einführung ... 235
Problem ... 239
Lösung ... 239
Diskussion ... 239
12;Kapitel 10:
Bezahlung und Versand;243
10.0 Einführung ... 243
10.1 Tabellarische Versandkosten um eigene Regeln erweitern ... 243
Problem ... 243
Lösung ... 243
Diskussion ... 243
10.2 Ein Dummy-Versandmodul erstellen ... 251
Problem ... 251
Lösung ... 251
Diskussion ... 251
Siehe auch ... 256
10.3 Ein neues Bezahlmodul erstellen ... 256
Problem ... 256
Diskussion ... 256
Siehe auch ... 257
13;Kapitel 11:
Das Admin-Panel erweitern;259
11.0 Einführung ... 259
11.1 Eine Lieferanten-Entity erstellen ... 259
Problem ... 259
Lösung ... 260
Diskussion ... 260
11.2 Eine Datentabelle über ein eigenes Admin-Grid bearbeiten ... 262
Problem ... 262
Lösung ... 262
Diskussion ... 262
11.3 Ein neues Admin-Grid aufbauen und gestalten ... 264
Problem ... 264
Lösung ... 264
Diskussion ... 264
11.4 Einen speziellen Renderer für ein Grid einbinden ... 268
Problem ... 268
Lösung ... 269
Diskussion ... 269
11.5 Einen neuen Eintrag in der Navigation des Admin-Panels anlegen ... 270
Problem ... 270
Lösung ... 270
Diskussion ... 270
11.6 Ein neues Produktattribut über ein Update-Skript anlegen ... 273
Problem ... 273
Lösung ... 273
Diskussion ... 273
11.7 Ein neues E-Mail-Template im Admin-Panel erstellen und pflegen ... 275
Problem ... 275
Lösung ... 275
Diskussion ... 275
11.8 Einen Cronjob in eine Extension integrieren ... 278
Problem ... 278
Lösung ... 278
Diskussion ... 278
Siehe auch ... 281
Anhang ... 283
Liste der Attributeigenschaften ... 283
Die Magento-Payment-API ... 287
Order-State und -Status ... 287
Payment-Method-Modelle ... 288
Anzeige der Zahlart als Option beim Checkout ... 289
Methoden und Eigenschaften der Magento-Payment-API ... 289
Payment-Model-Eigenschaften ... 290
Payment-Model-Methoden ... 291
Ablauf von Zahlungsvorgängen im Onepage-Checkout ... 294
Index ... 303