Hinweis: Dieses Element sowie dieser Artikel sind in Arbeit.
Das ThemeWare® CMS-Element "Individueller Code (HTML/CSS/JS)" ist ein CMS-Element mit welchem du individuellen HTML-, CSS- und JS-Code in deiner Erlebniswelt platzieren kannst.
Da durch individuellen Code potenziell gefährliche Schwachstellen entstehen können, richtet sich dieses Element an erfahrene Anwender bzw. Experten, die sicher im Umgang mit individuellen Programmierungen sind. Bist du nicht absolut sicher, was du tust, nutze den HTML-Editor eines beliebigen Text-Elementes von Shopware 6. Dieser Editor bereinigt deinen individuellen Code automatisch.
Beta: Diese Funktion befindet sich in der Beta-Phase und kann sich mit einem kommenden Release noch ändern. – Wir freuen uns über dein Feedback.
Achtung: Dieses CMS-Element richtet sich an Experten die sicher im Umgang mit individuellem Code sind. Bitte beachte, dass durch individuellen Code potenziell gefährliche Schwachstellen entstehen können!
Wichtig: Dieses Element ist nur in der ThemeWare® Pro Edition verfügbar.
Element konfigurieren
Die ThemeWare® CMS-Element "Individueller Code (HTML/CSS/JS)" kannst du wie folgt konfigurieren:
- Klicke auf den entsprechenden CMS-Block (1) um den Bearbeitungsmodus zu aktivieren
- Fahre mit der Maus über das entsprechende CMS-Element
- Klicke auf das
"Zahnrad"-Icon (2) um das CMS-Element zu konfigurieren - Es öffnet sich das Pop-up "Element-Einstellungen"
- Nehme die gewünschten Änderungen vor
- Speichere deine Änderungen
Du hast das CMS-Element nun konfiguriert.

ThemeWare® CMS-Element "Individueller Code (HTML/CSS/JS)" konfigurieren
Konfiguration
Die Konfiguration vom CMS-Element "Individueller Code" ist recht selbsterklärend. Es gibt keine Pflichtfelder.
HTML
Im Tab "HTML" hinterlegst du deinen individuellen HTML-Code.
Individueller HTML-Code
Im Abschnitt "Individueller HTML-Code" kannst du den gewünschten HTML-Code hinterlegen.
Twig-Unterstützung
Mit dem Schalter "Twig-Variablen erlauben" kannst du die Unterstützung für Twig-Variablen aktivieren. Dadurch lassen sich Twig-Variablen (z. B.
{{ page.product.name }}oder{{ category.name }}) direkt in deinem HTML-Code verwenden.Die verwendeten Variablen werden auf Produktseiten, Kategorieseiten und Landingpages automatisch aufgelöst und durch die entsprechenden Inhalte ersetzt.
Achtung: Potenziell gefährlicher Code wird nicht bereinigt und automatisch aus dem Editor entfernt!
CSS
Im Tab "CSS" kannst du deinen individuellen CSS-Code hinterlegen. Dein CSS-Code wird automatisch mit einem style-Tag umschlossen eingefügt.
Du kannst du deinen CSS-Code natürlich auch über das Feld "Individueller HTML-Code" integrieren, das Feld "Individueller CSS-Code" dient hauptsächlich der besseren Übersicht.
Individueller CSS-Code
Im Abschnitt "Individueller CSS-Code" kannst du den gewünschten CSS-Code hinterlegen.
JavaScript
Im Tab "JavaScript" kannst du deinen individuellen JavaScript-Code hinterlegen. Der JS-Code wird automatisch mit einem script-Tag umschlossen eingefügt.
Du kannst du deinen JS-Code natürlich auch über das Feld "Individueller HTML-Code" integrieren, das Feld "Individueller JavaScript-Code" dient hauptsächlich der besseren Übersicht.
Individueller JavaScript-Code
Im Abschnitt "Individueller JavaScript-Code" kannst du den gewünschten JavaScript-Code hinterlegen.
Erweitert
Du kannst zwar jedes HTML-Element unserer CMS-Elemente über passende CSS-Klassen selektieren, falls du eigene CSS-Klassen nutzen möchtest, kannst du diese im Tab "Erweitert" einfügen.
Vollständige Twig-Unterstützung
Die vollständige Twig-Unterstützung ermöglicht den Zugriff auf den kompletten Twig-Kontext (Variablen, Tags, Filter, Funktionen). Diese Funktion richtet sich ausschließlich an erfahrene Entwickler und Agenturen. Fehlerhafter Twig-Code kann zu Seitenfehlern führen.
Mit dem Schalter "Vollständiges Twig erlauben" wird dein HTML-Code als Twig-Template gerendert. Den Schalter können nur Benutzer mit der passenden Berechtigung nutzen (siehe Twig verwenden).
Hinweis: Diese Konfiguration ist derzeit noch nicht verfügbar und wird mit einem kommenden Release freigeschaltet.
Twig verwenden
Hinweis: Der Schalter "Vollständiges Twig erlauben" ist derzeit noch nicht verfügbar und wird mit einem kommenden Release freigeschaltet. Die Berechtigung dafür kannst du deinen Rollen bereits jetzt geben.
Ist "Vollständiges Twig erlauben" aktiv, wird dein HTML-Code in der Storefront als Twig-Template gerendert. Du kannst dann z. B. Textbausteine, Bedingungen und Schleifen verwenden.
<h2>{{ product.translated.name }}</h2>
<a href="{{ path('frontend.home.page') }}">{{ 'general.homeLink'|trans }}</a>
Berechtigung
Twig wird auf dem Server ausgeführt und hat Zugriff auf den kompletten Kontext der Seite. Deshalb braucht es eine eigene Berechtigung. Administratoren haben sie immer, allen anderen Benutzern gibst du sie über ihre Rolle:
- Öffne in der Administration Einstellungen > Benutzer & Rechte
- Öffne die gewünschte Rolle
- Aktiviere im Abschnitt "Zusätzliche Berechtigungen" unter "ThemeWare" die Berechtigung "Twig im Element "Individueller Code" verwenden"
- Speichere die Rolle
Ohne diese Berechtigung gilt:
- Der Schalter "Vollständiges Twig erlauben" ist gesperrt.
- Ist Twig in einem Element bereits aktiv, ist der HTML-Code schreibgeschützt. Oben in den Element-Einstellungen erscheint ein Hinweis.
- CSS, JavaScript und die übrigen Einstellungen des Elements kannst du weiterhin bearbeiten.
Die Berechtigung wird beim Speichern auf dem Server geprüft, auch bei Änderungen über die API und bei Layout-Anpassungen in Kategorien, Produkten und Landingpages.
Variablen
Die Seite, auf der das Element ausgegeben wird, steht dir als Variable zur Verfügung:
| Seite | Variable |
|---|---|
| Produktseite | product |
| Kategorieseite | category |
| Landingpage | landingPage |
Nutze für übersetzbare Felder translated, z. B. {{ product.translated.name }}. So erhältst du den Wert in der Sprache der Storefront.
Der Schalter "Twig-Variablen erlauben" hat bei aktivem "Vollständiges Twig erlauben" keine Wirkung und ist dann gesperrt. Die Variablen stehen automatisch zur Verfügung.
Ausgabe
Wie in jedem Twig-Template werden Ausgaben automatisch maskiert. Felder, die HTML enthalten (z. B. die Produktbeschreibung), gibst du mit |raw aus:
{{ product.translated.description|raw }}
Inhalte aus der Datenbank, z. B. ein Produktname mit {{ ... }}, werden dabei nie als Twig ausgeführt.
Speichern
Dein Twig-Code wird beim Speichern geprüft. Enthält er einen Syntaxfehler oder eine unbekannte Funktion, erscheint eine Fehlermeldung mit der betroffenen Zeile und die Änderung wird nicht gespeichert.
Hinweis: Im "Debug-Modus" der Plugin-Konfiguration wird der Twig-Code wie der CSS- und JavaScript-Code in der Storefront nicht ausgegeben. So kannst du eigenen Code bei Problemen schnell abschalten.
Achtung: Shopware speichert Seiten im HTTP-Cache. Ausgenommen sind standardmäßig angemeldete Kunden und Kunden mit gefülltem Warenkorb. Prüfe kundenbezogene Ausgaben (z. B. den Namen des Kunden) deshalb sorgfältig, damit sie nicht für andere Besucher im Cache landen.