Shopware Templating: 3 Fettnäpfchen die du vermeiden solltest

Du bist Betreiber eines Shopware-Shops? Du hast deinen Shop fertig konfiguriert, hast alle Kundengruppen erstellt, Versandkosten und Zahlungsarten eingerichtet und auch ja drauf geachtet alles DSGVO-konform zu halten?

Sehr gut!

Doch irgendwie fehlt noch etwas. Das Standard-Template von Shopware ist zwar keineswegs unansehnlich, doch du hättest es trotzdem gerne etwas individueller. Natürlich gibt es im Shopware-Store eine Vielzahl von Templates, die dir zur Auswahl stehen. Fühlst du dich der Aufgabe gewachsen, kannst du aber auch dein eigenes Shopware-Theme schreiben, das exakt an deine Anforderungen angepasst ist.

Solltest du beschließen dein eigenes Theme zu schreiben, gibt es einige Fettnäpfchen, die du vermeiden solltest.

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–>Chaches/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, kanns 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

Alexander Goll
Alexander Goll

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Zur Werkzeugleiste springen