Shopware Knowledgebase

Dieser Artikel ist noch nicht für Shopware 3.5 geprüft bzw. freigegeben.
Shopware Labs

Der Bereich Shopware Labs ist die Plattform für alle Entwickler. Hier findet man technische Dokumentationen und zahlreiche Tipps und Tricks rund um das Thema Programmieren. In dieser Rubrik stellen außerdem die Entwickler der shopware AG neue und experimentelle Lösungsansätze vor. Neue Funktionen, die in dieser Rubrik bereitgestellt werden, sind teilweise auch für zukünftige Releases geplant. Die Funktionen können dann ohne Programmierkenntnisse zukünftig direkt im Shopware Backend konfiguriert werden oder werden über Plugins bereitgestellt. Informationen über neue, geplante Funktionen finden Sie in unserer Roadmap.

Bitte beachten Sie, dass die hier bereitgestellten Lösungsansätze nicht offiziell supportet werden und nur eingebaut werden sollten, sofern Sie über das entsprechende, technische Wissen verfügen.

Erste Schritte Entwicklung

0 Kommentare

Wichtige Informationen für die Entwicklung von Shopware Anpassungen / Modulen

Quellcode-Freigabe

Als Shopware Business-Partner haben Sie die Möglichkeit nach Unterzeichnung eines Freigabe-Vertrages auf den Quellcode von Shopware zuzugreifen, die genauen Bestimmungen hierzu sind im Vertrag definiert. Sehen Sie hierzu auch

[[Shopware Quellcode]]

Falls Sie kein SBP sind können Sie auf die Dokumentation des Wikis und die Tutorials zurückgreifen und auf dieser Basis eigene Entwicklungen durchführen.

Einbindung von Quellcode

Es ist ausdrücklich nicht erlaubt die Original-Core-Dateien von Shopware zu überschreiben. Dies würde u.a. dazu führen, das Ihre Version nicht mehr kompatibel zu zukünftigen Updates ist.

Die Einbindung von eigenem Quellcode kann über diverse Adapter erfolgen. Somit ist sichergestellt, dass Ihre Erweiterungen auch in zukünftigen Shopware-Versionen funktionieren.

Viewport-Änderungen

Jede Ansicht im Shop stellt einen Viewport da. Ein Viewport ist die Verbindung zwischen dem Shopware Core und den Templates. In den Viewports werden also Core-Funktionen aufgerufen, deren Ergebnisse via Smarty an das Template übergeben werden.

Alle vorhandenen Viewport sind in der Datenbank-Tabelle s_core_viewports definiert. Anpassungen an den Viewports (engine/core/class/viewports) sind unproblematisch, da diese im Normalfall nicht von Aktualisierungen betroffen sind.

Veränderung von Core-Funktionalitäten Storefront / Vererbung

Falls Sie Core-Funktionen anpassen möchten, können Sie eigene Klassen erstellen, die die Eigenschaften und Methoden der Core-Klassen ergeben.

Beispiel: Sie möchten die Funktion sGetArticleByID der Core-Klasse sArticles.php modifizieren. Prüfen Sie ob es bereits eine modifizierte Version der Klasse sArticles gibt, diese liegt im Ordner engine/core/class/inherit und heißt "myArticles.php" Falls die Klasse bereits existiert, können Sie Ihre Änderungen direkt in dieser Datei vornehmen. Falls die Klasse noch nicht existiert, sind die nachfolgenden Schritte erforderlich.

Erstellen Sie die Datei engine/core/class/inherit/myArticles.php mit folgendem Inhalt:

 
<?
include ("$path/sArticles.php");
 
class myArticles extends sArticles
{
	function sGetArticleById()
	{
		$article = parent::sGetArticleById();
		return $article;
	}
 
	function thisOneNotExistsInBaseClass(){
		return;
	}
}
?>
 

Erklärung: Die modifizierte Klasse lädt zunächst die Originalklasse und erstellt eine Instanz. Alle nachfolgenden Funktionsdefinitionen überschreiben die Originalfunktionen, sofern diese in der Basis-Klasse vorhanden sind.

Statt der Original-Funktion sGetArticleById würde in diesem Fall die Version aus der Instanz-Klasse aufgerufen. Mit parent kann man aus einer Methode heraus eine überschriebene Methode der Eltern-Klasse aufrufen. In diesem Fall würde sGetArticleById also das gleiche Ergebnis wie die Original-Core-Funktion zurückgeben.

Damit die modifizierte Klasse in den Core geladen wird, ist noch eine Datenbank-Änderung erforderlich

  • Öffnen Sie die Tabelle s_core_factory
  • Bearbeiten Sie die Zeile der Klasse die Sie modifizieren möchten
  • Ändern Sie inheritname auf den Namen Ihrer modifizierten Klasse (z.B. myArticles)
  • Ändern Sie inheritfile auf den Namen der modifizierten Datei (z.B. myArticles.php)

Hookpoints

An verschiedenen Stellen in der Storefront und im Backend sind Hookpoints platziert. Diese sind in der Datenbank-Tabelle s_core_hookpoints definiert und hier im Wiki dokumentiert. Sie können über Einstellungen > Grundeinstellungen > Hookpoints Code hinterlegen, der an diesen Stellen ausgeführt wird. Dadurch sind keinerlei Datei-Änderungen erforderlich. Die Hookpoint-Methode eignet sich vor allem für kleinere Modifikationen, bsw. modifizierte SQL-Queries etc.

Weitere Informationen zu Hookpoints

Backend-Module

Alle Backend-Module liegen im Ordner /engine/modules. Um bestehende Backend-Module zu verändern ist eine Quellcode-Freigabe erforderlich. Sie können dann einfach eine Kopie des Original-Ordners erstellen und den Aufruf in der s_core_menu ändern. Dann würde statt des Original-Moduls Ihre Kopie aufgerufen. Bei der Entwicklung komplett eigenständiger Module, müssen Sie keine weiteren Dinge beachten.

Artikel-PDF erstellen

Artikel bewerten

Waren diese Informationen hilfreich? Ja Nein


Kommentare:

Artikel kommentieren


Die mit einem * markierten Felder sind Pflichtfelder.

Weitere interessante Artikel:

Bezeichnung:
Rating:
Klicks:
Datum:

Bestell-Nr.: SW1221

Lieferzeit ca. 5 Tage

€ 1,00

Preise inkl. gesetzlicher
MwSt. zzgl. Versandkosten*

€ 1,00

Preise inkl. gesetzlicher
MwSt. + Versandkosten*

Kategorien: