Shopware Templating: 3 Fettnäpfchen die du vermeiden solltest

Inhaltsverzeichnis

Das Standard-Template von Shopware ist zwar durchaus ansprechend, doch wünschen Sie sich möglicherweise ein individuelleres Erscheinungsbild. Im Shopware-Store steht Ihnen hierfür eine große Auswahl an Templates zur Verfügung. Wenn Sie sich dieser Aufgabe gewachsen fühlen, können Sie alternativ auch ein eigenes Shopware-Theme entwickeln, das exakt auf Ihre Anforderungen zugeschnitten ist.

Wenn Sie sich für die Entwicklung eines eigenen Themes entscheiden, gibt es jedoch einige typische Stolperfallen, die Sie vermeiden sollten.

Vererbung in Smarty nicht einhalten

Dabei ist der Fehler nicht immer auf den ersten Blick bemerkbar, sondern u.a. erst, wenn Plugins die vorher funktioniert haben, plötzlich nicht mehr funktionieren, oder sogar Fehlermeldungen produzieren. Am besten veranschaulichen lässt sich das ganze durch ein kurzes Beispiel:

Dazu schauen wir zunächst im Verzeichnis „Bare“ in welcher TPL-Datei die Suchleiste im Template verbaut wird. Hier ist es die Datei „index/shop-navigation.tpl“ und die Suche wird im Block „frontend_index_search“ eingebunden. Um diese jetzt aus dem Template zu entfernen erzeugen wir in unserem eigenen Theme im Verzeichnis „index“ ebenfalls die Datei „shop-navigation.tpl“. In dieser Datei legen wir auch den Block „frontend_index_search“ an, lassen diesen jedoch leer. Damit hätten wir die Suchleiste bereits aus dem Header entfernt. Schauen wir nun aber ins Frontend, sehen wir, dass nicht nur die Suchleiste weg ist, sondern auch der Merkzettel und der Warenkorb.

Denn wir müssen in unserer „shop-navigation.tpl“ noch deklarieren, dass der restliche Teil dieser Datei, von der ursprünglichen Datei im Verzeichnis „Bare“ geerbt werden soll. Dazu muss unsere Datei nur mit dem Extends-Befehl ergänzt werden. Die fertige „shop-navigation.tpl“ sieht dann folgendermaßen aus:

{extends file=’parent:frontend/index/shop-navigation.tpl‘} {*Search form*} {block name=’frontend_index_search‘} {/block}

Damit werden alle Blöcke, die nicht explizit überschrieben oder erweitert werden, von der ursprünglichen Template-Datei im „Bare“ Verzeichnis geerbt. So verhinderst du, dass Blöcke an die sich ein Plugin hängen möchte, in deinem Template nicht zur Verfügung stehen.

Unnötiges Überschreiben von Blöcken

Es ist nicht immer nötig ungewünschte Funktionen über das Template zu entfernen. Oftmals bietet Shopware die Option, bestimmte Features über das Backend zu deaktivieren. In manchen Fällen sind diese Optionen jedoch so gut versteckt, dass man tatsächlich erst durch einen Blick in die Template-Dateien überhaupt erst realisiert, dass sich besagtes Feature auch deaktivieren lässt.

Ein gutes Beispiel hierfür ist der Topseller-Slider auf Kategorieseiten. Nachdem wir in den Grundeinstellungen keine Möglichkeit gefunden haben, diesen aus dem Frontend zu entfernen, wollten wir ihn analog zur Suchleiste über das Template entfernen.

Dabei ist uns aufgefallen, dass die Topseller nur ausgespielt werden, wenn zwei Bedingungen erfüllt sind.

  • die Kategorie darf keine Einkaufswelt sein
  • Topseller müssen in einer Konfiguration aktiviert worden sein

Nach weiterem Suchen, haben wir diese Konfiguration auch gefunden. Versteckt unter „Einstellungen–>Caches/Performance–>Einstellungen–>Topseller“

Zwar würdest du auch zum gewünschten Ergebnis kommen, wenn du den Topseller-Block im Template leerst, jedoch lassen sich die Topseller dann nicht mehr über das Backend ein- und ausblenden und es findet eine Loskopplung von Konfiguration und Template statt.

Nicht-Benutzung von Textbausteinen

Hast du von Anfang an vor, deinen Shop nur einsprachig zu nutzen, wird dieser Punkt für dich relativ uninteressant sein. Sollte aber irgendwann der Wunsch aufkommen, auch internationale Kunden anzusprechen, kannst du dir viel Ärger ersparen, wenn du in deinem Theme gleich richtig mit Textbausteinen arbeitest. Wie der Name schon sagt, handelt es sich hier um Bausteine, die du in deinem Template deklarieren kannst und die über das Backend gepflegt werden können. Das Praktische daran ist, dass du Textbausteine für jede Lokalisierung deines Shops und auch für jeden Subshop separat befüllen kannst.

So kannst du das gleiche Theme für alle deine Shops verwenden und nur die jeweiligen Textbausteine abändern, um es für die gewünschte Lokalisierung anzupassen. Diese Textbausteine werden bereits im Standard-Theme von Shopware verwendet. Schauen wir uns z.B. die Datei „index/footer.tpl“ an, können wir sehen wie Textbausteine angelegt werden:

Hier wird der Copyright Text durch das Smarty-Tag {s} mit dem Namen „IndexCopyright“ erzeugt.

Möchtest du in deinem eigenen Theme einen Textbaustein erzeugen, kannst du das einfach nach diesem Schema machen.

In der Textbaustein-Verwaltung im Backend kannst du dir anschauen, womit dieser Textbaustein befüllt wurde. Du erreichst diese unter: „Einstellungen–>Textbausteine“

Hier kannst du den Inhalt des Textbausteins für jeden deiner Shops separat bearbeiten. Als Faustregel solltest du dir merken: Jeder Inhalt der von dir un-dynamisch im Template verbaut werden soll, sollte als Textbaustein gepflegt werden.

Das waren einige Fettnäpfchen, in die du bei der Erstellung deines Templates nicht treten solltest.

Bist du dir trotzdem etwas unsicher, lass dir doch einfach ganz unverbindlich ein Angebot für dein individuelles Template von uns erstellen.

Jetzt Unterstützung sichern!
Wir beraten individuell und unverbindlich
Artikel teilen
Inhaltsverzeichnis

Ähnliche Beiträge