Rozwiązywanie problemów
„Mój placeholder renderuje się jako {key} na storefroncie”
Dział zatytułowany „„Mój placeholder renderuje się jako {key} na storefroncie””Po kolei:
- Czy zakres jest włączony? Sprawdź Ustawienia → Rozszerzenia → Dynamic Variables. Przełącznik dla używanego zakresu (CMS / Produkt / Kategoria) musi być włączony.
- Czy zmienna jest aktywna? Otwórz stronę szczegółów zmiennej — flaga Aktywna musi być włączona.
- Czy lista zakresów zmiennej dopuszcza ten kontekst? Jeśli zmienna ma ustawione zakresy, bieżący zakres musi być na liście. Pusta lista zakresów = dozwolone wszędzie.
- Czy istnieje wiersz wartości dla bieżącego kanału? Jeśli nie ma wiersza per kanał, musi istnieć globalny wiersz jako fallback.
- Czy język ma tłumaczenie? Puste tłumaczenia wracają do języka domyślnego systemu. Tłumacz jawnie, aby kontrolować wynik.
- Cache. Po edycji zmiennej wyczyść cache HTTP / object.
„Podgląd w edytorze pokazuje zły język”
Dział zatytułowany „„Podgląd w edytorze pokazuje zły język””Podgląd w edytorze respektuje selektor języka admina, nie język storefrontu. Przełącz selektor języka na stronie szczegółów zmiennej, aby sprawdzić inne języki.
„Zmienne wbudowane są puste na konkretnym kanale”
Dział zatytułowany „„Zmienne wbudowane są puste na konkretnym kanale””Wbudowane czytają z Ustawienia → Informacje podstawowe ze standardowym dziedziczeniem Shopware per kanał. Otwórz Informacje podstawowe, przełącz w selektorze na właściwy kanał sprzedaży i uzupełnij brakujące pole.
„CSS / JS się nie ładuje”
Dział zatytułowany „„CSS / JS się nie ładuje””- Zmienna musi faktycznie być wyrenderowana na stronie — jeśli żaden placeholder
{variable}nie zostaje rozwiązany, żaden CSS / JS nie jest wstrzykiwany. - Sprawdź, czy właściwy wiersz wartości ma CSS / JS — wiersze per kanał mają własne CSS / JS, oddzielne od wiersza globalnego.
- Użyj DevTools przeglądarki, aby potwierdzić, że
<style>/<script>faktycznie brakuje, a nie został zablokowany przez CSP.
„Widzę wyrenderowaną zmienną, ale mój JS nie działa”
Dział zatytułowany „„Widzę wyrenderowaną zmienną, ale mój JS nie działa””- Bloki inline
<script>działają, gdy są parsowane. Jeśli Twój skrypt wymaga gotowego DOM, owiń go wdocument.addEventListener('DOMContentLoaded', ...). - Jeśli masz Content Security Policy (CSP) zabraniającą inline skryptów, wstrzyknięcie zostanie zablokowane. Dodaj inline skrypt pluginu do whitelisty lub przenieś JS do bundla theme.
„Brakuje przycisku w edytorze”
Dział zatytułowany „„Brakuje przycisku w edytorze””- Odśwież admina (hard reload).
- Wyczyść cache admina:
bin/console cache:cleari przeładuj. - Przycisk podpina się tylko do instancji
sw-text-editor. Jeśli jesteś w innym komponencie edytora (np. zewnętrznym widżecie rich text), przycisk się nie pojawia.
„Zmienna zagnieżdżona nie rozwija się”
Dział zatytułowany „„Zmienna zagnieżdżona nie rozwija się””Zagnieżdżenie ma jeden poziom. {outer} zawierający {inner} działa. {outer} → {middle} → {inner} nie — {inner} renderuje się dosłownie. Przebuduj zmienną, aby pożądana treść była jeden poziom od zewnętrznego placeholdera.
„Storefront pokazuje dwie różne wartości w tym samym requeście”
Dział zatytułowany „„Storefront pokazuje dwie różne wartości w tym samym requeście””To zwykle oznacza, że część treści została wyrenderowana zanim uruchomił się Dynamic Variables. Na przykład wartość pochodząca z późnej transformacji innego pluginu może wciąż zawierać surowe {...}. Sprawdź priorytety subscriberów pluginu lub kolejność renderowania — patrz Kolejność rozwiązywania.