Widget vs. Page-Builder-Content-Type: wann was einsetzen
Widget vs. Page-Builder-Content-Type: wann was einsetzen
~6 Min. Lesezeit Zuletzt aktualisiert am 9. August 2026
Block 7 hat zwei echte, redaktionell nutzbare Bausteine gebaut: ein Widget mit live-aktuellen Kundendaten (Kapitel 55-57) und einen Page-Builder-Content-Type mit eingefrorenem, redaktionellem Inhalt (Kapitel 58-60). Dieses Kapitel macht die Abwägung explizit.
Gegenüberstellung
- Datenaktualität: Widget - live, bei jedem Request neu (Kapitel 56). Content Type - zum Speicherzeitpunkt eingefroren (Kapitel 58).
- Zielgruppe im Admin: Widget - Entwickler-definiertes Parameter-Formular, eingefügt per "Insert Widget"-Button oder Widget Instance (Kapitel 57). Content Type - volles Drag-and-drop mit sofortiger WYSIWYG-Live-Vorschau (Kapitel 60).
- Code-Aufwand: Widget - eine Block-Klasse, eine widget.xml, ein Template (Kapitel 56/57). Content Type - eine Block-Klasse, eine content_type.xml, ein Admin-Formular, eine Knockout-Vorschau-Komponente, zwei Templates (Kapitel 59/60) - spürbar mehr.
- Caching: Widget - Vorsicht bei Full-Page-Cache auf öffentlichen, cachebaren Seiten (Kapitel 56). Content Type - in der Regel unkritisch, da das HTML bereits beim Speichern eingefroren wurde, bevor der Full-Page-Cache überhaupt greift.
- Einsatzort: Widget - überall mit WYSIWYG-Editor, inklusive Transaktions-E-Mails bei
is_email_compatible="true"(Kapitel 55). Content Type - ausschließlich innerhalb einer Page-Builder-Bühne (CMS-Seiten/-Blöcke mit aktiviertem Page Builder).
Die dritte Option: ein Widget in Page Builder einbetten
Kapitel 58 hat bereits erwähnt, dass Core-Content-Types wie der eingebettete CMS-Block oder die Produkt-Kachel genau diese Spannung selbst auflösen, indem ihr Master-Format nur eine {{widget}}-Platzhalter-Direktive ist. Nichts hindert eine Redakteurin daran, denselben Trick manuell zu nutzen: Page Builders eigener, eingebauter "Widget"-Content-Type erlaubt es, das PointsBalanceWidget aus Kapitel 56 direkt per Drag-and-drop auf eine Page-Builder-Seite zu ziehen - Drag-and-drop-Platzierung UND live-aktuelle Kundendaten gleichzeitig, ganz ohne eine einzige neue Codezeile. Der eigene "Punkte-Banner"-Content-Type aus Kapitel 59 hat diesen Trick bewusst NICHT genutzt (siehe dessen Warnhinweis) - beide Bausteine bleiben dadurch konzeptionell sauber getrennt und jeder ehrlich zu den eigenen Grenzen.
Empfehlung für dieses Modul
- "Meine Punkte" (persönlicher Kontostand) → das Widget aus Kapitel 56, entweder auf der ohnehin nicht-cachebaren Kontoseite (Kapitel 52, unkritisch) oder - mit dem Full-Page-Cache-Vorbehalt aus Kapitel 56 im Kopf - über Page Builders eingebauten Widget-Content-Type auf einer sonst öffentlichen Landingpage.
- Werbebotschaften über das Programm selbst ("Sammle Punkte bei jedem Einkauf!") → der eigene Punkte-Banner-Content-Type aus Kapitel 59, frei durch Redakteurinnen auf jeder Landingpage platzierbar, günstig zu cachen, ohne Rücksicht auf Session-Zustand.
Tipp: Damit ist Block 7 abgeschlossen: ein Widget mit vollständiger Logik-Wiederverwendung aus Block 6 (Kapitel 55-57), ein eigener, ehrlich statisch gehaltener Page-Builder-Content-Type (Kapitel 58-60) und diese explizite Entscheidungshilfe. Block 8 wendet sich als Nächstes eigenen Zahlungs- und Versandarten zu - und trifft dort auf denselben Musterfall aus Kapitel 47/56/59: eine vom jeweiligen Checkout-Core-Modul vorgegebene Basisklasse, die auch dort keine Ausrede für duplizierte Geschäftslogik ist.