XML-Sitemap
Erweiterte XML-Sitemap für Sylius 2: Produkte, Kategorien und statische Seiten mit Hreflang und Produktbildern, pro Channel per Konsolenbefehl oder Admin-Button erzeugt, mit Sitemap-Index und eigenen URL-Providern.
XML-Sitemap
Diese Dokumentation bezieht sich immer auf die aktuellste veröffentlichte Version.
Live Demo: Teste dieses und weitere Plugins live — ohne Installation, ohne Risiko: demo.markus-michalski.net
Überblick
Das Plugin erzeugt für jeden Sylius-Channel eine erweiterte XML-Sitemap: Produkte, Kategorien und frei wählbare statische Seiten, jede Sprache des Channels mit eigener URL und vollständigem Hreflang-Satz (inklusive x-default), dazu die Produktbilder als Image-Sitemap. Die Dateien werden vorab per Konsolenbefehl oder Admin-Button geschrieben und bei einem Aufruf nur noch ausgeliefert.
Ein Crawler-Aufruf läuft nie durch den Katalog: Die Sitemap wird vorab als Datei erzeugt und beim Abruf nur gelesen. Das gilt für Twig-Storefront und Headless-Frontend gleichermaßen.
graph LR
A["Admin-Button Jetzt generieren"] --> C["Generierung"]
B["Befehl mmd:sitemap:generate"] --> C
C --> D["Dateien pro Channel in storage_dir"]
D --> E["Aufruf sitemap-index.xml"]
E --> F["Crawler"]
Dokumentation
| Seite | Inhalt |
|---|---|
| Installation und Betrieb | Installation über Packeton, Bundle und Routen, Setup-Befehl, Update, Cronjob, Deinstallation |
| Konfiguration | Konfigurationsschlüssel, Einstellungen pro Channel im Admin, Praxis-Beispiele |
| Generierung und Auslieferung | Admin-Button, Befehl mmd:sitemap:generate, URLs, Dateiaufteilung, Inhalte der Sitemap |
| Erweiterbarkeit | Eigene URL-Provider, Services austauschen, Kompatibilität |
| Fehlerbehebung und FAQ | Typische Probleme, bekannte Einschränkungen, häufige Fragen |
| Technische Details | Ablauf der Generierung, Plugin-Struktur, Speicherlayout, Datenbanktabelle |
Features
| Feature | Beschreibung |
|---|---|
| Inhaltstypen | Produkte, Kategorien und statische Seiten, jeweils in eigener Datei im Sitemap-Index |
| Hreflang | Jede Sprache des Channels bekommt eine eigene URL mit allen Sprachalternativen und x-default |
| Image-Sitemap | Produktbilder je Produkt-URL; Bilder auf einem CDN behalten ihre eigene URL |
| Mehrere Channels | Eigene Einstellungen und eigene Dateien pro Channel, ausgeliefert auf dem Host des Channels |
| Große Kataloge | Produkte werden in Blöcken gelesen, Dateien ab einer einstellbaren URL-Anzahl und Dateigröße aufgeteilt |
| Admin-Oberfläche | Einstellungen pro Channel, Button „Jetzt generieren“, Anzeige der letzten Generierung |
| Konsolenbefehl | mmd:sitemap:generate für alle oder einen Channel, geeignet für Cronjobs |
| Sperre gegen Doppelläufe | Pro Channel läuft nur eine Generierung gleichzeitig |
| Eigene URLs | Jeder Service mit UrlProviderInterface ergänzt weitere URLs, etwa CMS-Seiten oder Marken |
Anforderungen
| Anforderung | Version | Hinweise |
|---|---|---|
| Sylius | ^2.2 | Die CI führt die Testsuite auf Sylius 2.2 und 2.3 aus |
| PHP | ^8.3 | Mit der Extension xmlwriter |
| Symfony | ^7.4 | Wie von Sylius 2.x vorgegeben |
| Datenbank | MySQL 8 oder MariaDB | Die Migration bricht auf jeder anderen Plattform bewusst ab. Getestet wird gegen MySQL 8.4 |
| Composer-Paket | mmd/sylius-sitemap-plugin |
Bundle-Klasse Mmd\SyliusSitemapPlugin\MmdSyliusSitemapPlugin |
Lizenz
Kommerzielle Lizenz: Eine Lizenz gilt für eine Sylius-Installation (alle Channels sowie deren Entwicklungs- und Staging-Umgebungen). Eine Weitergabe ist nicht erlaubt, Updates sind 12 Monate ab Kauf enthalten.
Support
Bei Fragen zur Lizenz, technischen Fragen oder Fehlern erreichst du mich unter support@markus-michalski.net.