Zum Inhalt springen

Fehlerbehebung

„Mein Platzhalter rendert als {key} im Storefront”

Abschnitt betitelt „„Mein Platzhalter rendert als {key} im Storefront”“

Der Reihe nach:

  1. Ist der Bereich aktiviert? Prüfen Sie Einstellungen → Erweiterungen → Dynamic Variables. Der Schalter für den verwendeten Bereich (CMS / Produkt / Kategorie) muss an sein.
  2. Ist die Variable aktiv? Öffnen Sie die Variablen-Detailseite — der Aktiv-Schalter muss an sein.
  3. Erlaubt die Bereichsliste der Variable diesen Kontext? Falls die Variable Bereiche gesetzt hat, muss der aktuelle Bereich in der Liste enthalten sein. Eine leere Bereichsliste = überall erlaubt.
  4. Existiert eine Wertzeile für den aktuellen Kanal? Falls keine kanalspezifische Zeile existiert, muss eine globale Zeile als Fallback existieren.
  5. Hat die Sprache eine Übersetzung? Leere Übersetzungen fallen auf die Systemstandardsprache zurück. Explizit übersetzen, um das Ergebnis zu steuern.
  6. Cache. Nach Bearbeitung einer Variable den HTTP- / Objekt-Cache leeren.

„Die Vorschau im Editor zeigt die falsche Sprache”

Abschnitt betitelt „„Die Vorschau im Editor zeigt die falsche Sprache”“

Die Editor-Vorschau respektiert die im Admin gewählte Sprache, nicht die Storefront-Sprache. Wechseln Sie den Sprachselektor auf der Variablen-Detailseite, um andere Sprachen zu prüfen.

„Integrierte Variablen sind auf einem bestimmten Kanal leer”

Abschnitt betitelt „„Integrierte Variablen sind auf einem bestimmten Kanal leer”“

Integrierte Variablen lesen aus Einstellungen → Grundeinstellungen mit der Standard-Vererbung von Shopware pro Kanal. Öffnen Sie Grundeinstellungen, wechseln Sie im Selektor zum betreffenden Verkaufskanal und füllen Sie das fehlende Feld aus.

  • Die Variable muss tatsächlich auf der Seite gerendert werden — wenn kein {variable}-Platzhalter aufgelöst wird, wird auch kein CSS / JS injiziert.
  • Prüfen Sie, dass die richtige Wertzeile das CSS / JS hat — kanalspezifische Zeilen haben eigenes CSS / JS, getrennt von der globalen Zeile.
  • Verwenden Sie die Browser-DevTools, um zu bestätigen, dass <style> / <script> fehlt und nicht nur durch eine CSP blockiert wird.

„Ich sehe die Variable gerendert, aber mein JS läuft nicht”

Abschnitt betitelt „„Ich sehe die Variable gerendert, aber mein JS läuft nicht”“
  • Inline-<script>-Blöcke laufen, wenn sie geparst werden. Falls Ihr Skript auf einen bereiten DOM angewiesen ist, hüllen Sie es in document.addEventListener('DOMContentLoaded', ...).
  • Falls Sie eine Content-Security-Policy (CSP) haben, die Inline-Skripte verbietet, wird die Injektion blockiert. Whitelist das Inline-Skript des Plugins oder verschieben Sie das JS ins Theme-Bundle.
  • Admin neu laden (Hard Reload).
  • Admin-Cache leeren: bin/console cache:clear und neu laden.
  • Die Schaltfläche bindet sich nur an Instanzen von sw-text-editor. Falls Sie sich in einer anderen Editor-Komponente befinden (z. B. einem Rich-Text-Widget eines Drittanbieters), erscheint die Schaltfläche nicht.

„Verschachtelte Variable wird nicht expandiert”

Abschnitt betitelt „„Verschachtelte Variable wird nicht expandiert”“

Verschachtelung ist eine Ebene tief. {outer}, das {inner} enthält, funktioniert. {outer}{middle}{inner} nicht — {inner} rendert wörtlich. Strukturieren Sie die Variable so um, dass der gewünschte Inhalt eine Ebene vom äußeren Platzhalter entfernt ist.

„Storefront zeigt zwei verschiedene Werte im selben Request”

Abschnitt betitelt „„Storefront zeigt zwei verschiedene Werte im selben Request”“

Das bedeutet meist, dass Teile des Inhalts gerendert wurden, bevor Dynamic Variables lief. Zum Beispiel könnte ein Wert, der aus einer späten Transformation eines anderen Plugins kam, noch rohe {...} enthalten. Prüfen Sie die Subscriber-Prioritäten oder die Render-Reihenfolge des Plugins — siehe Auflösungs-Reihenfolge.