Textbausteine: Fehlerbehebung und FAQ
Textbausteine für Shopware - typische Probleme mit Symptom, Prüfung und Lösung: Platzhalter erscheinen im Shop, Änderungen werden nicht sichtbar, HTML fehlt auf Produktkarten, plus bekannte Einschränkungen und FAQ
Textbausteine: Fehlerbehebung und FAQ
Live Demo: Teste dieses und weitere Plugins live — ohne Installation, ohne Risiko: demo.markus-michalski.net
Fehlerbehebung
Symptom: Der Platzhalter {{snippet:...}} erscheint unverändert im Shop.
Prüfen:
- Existiert ein Baustein mit genau diesem Identifier und ist Aktiv eingeschaltet? Unbekannte und inaktive Bausteine werden nicht ersetzt.
- Besteht der Identifier nur aus Buchstaben, Ziffern, Bindestrichen und Unterstrichen? Ein Platzhalter mit anderen Zeichen wird nicht erkannt, siehe Regeln für den Identifier.
- Ist für die Sprache, in der du den Shop aufrufst, ein Inhalt hinterlegt? Fehlt er, bleibt der Platzhalter stehen. Ist der Inhalt dagegen vorhanden, aber leer, verschwindet der Platzhalter und es erscheint nichts.
- Steht der Platzhalter an einer Stelle, an der das Plugin ersetzt, also in der Produktbeschreibung des CMS-Produktlayouts oder auf einer Produktkarte? In CMS-Textelementen, Kategorie-Beschreibungen oder Zusatzfeldern wird nichts ersetzt, siehe Storefront-Integration.
- Wird die Beschreibung über eines der wirksamen Plugin-Templates ausgegeben? Überschreibt dein Theme den Block, muss es den Filter
mmd_snippetsselbst anwenden.
Lösung: Die gefundene Ursache beheben und anschließend bin/console cache:clear ausführen.
Symptom: Ich habe einen Baustein geändert, im Shop steht noch der alte Zustand.
Prüfen: Wurde nur der Inhalt oder der Name geändert, oder wurde Aktiv umgeschaltet? Solche Änderungen lösen keine Cache-Invalidierung aus, siehe Technische Details. Ein deaktivierter Baustein bleibt dadurch weiter sichtbar, ein neu aktivierter erscheint noch nicht.
Lösung: bin/console cache:clear ausführen oder bis zu einer Stunde warten. Wenn du einen HTTP-Cache einsetzt, kann zusätzlich die zwischengespeicherte Produktseite den alten Zustand enthalten, auch diesen Cache musst du dann leeren.
Symptom: Auf der Produktkarte in der Liste fehlt die Formatierung des Bausteins.
Prüfen: Handelt es sich um die Beschreibungs-Vorschau einer Produktkarte?
Lösung: Das ist beabsichtigt. Auf Produktkarten wird die Beschreibung nach der Ersetzung mit striptags auf reinen Text reduziert. In der Produktbeschreibung des Produktlayouts bleibt die Formatierung erhalten.
Symptom: Ein Element oder Attribut aus dem Inhalt fehlt in der Ausgabe.
Prüfen: Enthält der Inhalt Skripte, Ereignis-Attribute oder andere unsichere Bestandteile?
Lösung: Der HTML-Sanitizer von Shopware entfernt solche Bestandteile beim Einsetzen. Verwende stattdessen reguläres HTML.
Symptom: Ein Baustein mit Großbuchstaben im Identifier lässt sich nicht anlegen.
Prüfen: Gibt es schon einen Baustein, der sich nur in der Groß-/Kleinschreibung unterscheidet?
Lösung: Der Identifier ist case-insensitiv eindeutig. Vergib einen anderen Namen.
Symptom: Die Admin-Oberfläche zeigt den Menüpunkt nicht oder verhält sich fehlerhaft.
Prüfen: Wurde nach der Installation der Browser-Cache geleert und das Plugin aktiviert?
Lösung: Browser-Cache leeren, bin/console assets:install und bin/console cache:clear ausführen und die Administration neu laden. Die Browser-Konsole zeigt weitere Fehler.
Bekannte Einschränkungen
- Die Ersetzung läuft nur dort, wo der Filter
mmd_snippetsangewendet wird: in der Produktbeschreibung des CMS-Produktlayouts und auf Produktkarten. Das mitgelieferte Template für die klassische Produktdetailseite ist unter Shopware 6.7 inaktiv. - Bausteine lassen sich nicht verschachteln.
- Die Admin-Oberfläche sperrt den Identifier nach dem Anlegen. Möchtest du ihn ändern, lege einen neuen Baustein an und passe die Platzhalter an. Die Admin-API prüft die Sperre nicht.
- Ein Baustein hat keine Zuordnung zu einem Verkaufskanal oder einem Produkt, er gilt überall, wo der Platzhalter steht.
FAQ
Wird der Inhalt exakt so eingefügt, wie ich ihn eingebe? Nein. Der Inhalt wird mit Shopwares HTML-Sanitizer bereinigt, unsichere Bestandteile werden entfernt.
Wie viele Datenbankabfragen entstehen? Je verschiedenem Identifier einer Beschreibung ein Cache-Abruf, bei einem Fehlzugriff zusätzlich eine Repository-Suche. Danach liegt der Inhalt eine Stunde im Cache.
Kann ich die Funktion mmd_snippet() in Produktbeschreibungen verwenden? Nein. Sie funktioniert nur in Twig-Templates. In gespeicherten Inhalten verwendest du die Platzhalter-Syntax.
Was passiert beim Deinstallieren? Die Tabellen und damit alle Bausteine werden gelöscht, außer du behältst die Nutzerdaten. Siehe Installation.