Live Demo: Teste dieses und weitere Plugins live — ohne Installation, ohne Risiko: demo.markus-michalski.net
Die Karte Manuelle Generierung in der Plugin-Konfiguration spricht zwei Routen der Shopware-Admin-API an. Du kannst sie auch aus eigenen Skripten oder Integrationen aufrufen. Beide Routen erwarten einen gültigen Admin-API-Token (Authorization: Bearer <Token>).
| Methode | Route | Zweck |
|---|---|---|
POST |
/api/_action/mmd-sitemap/generate/{salesChannelId} |
Sitemap des Sales Channels erzeugen |
GET |
/api/_action/mmd-sitemap/stats/{salesChannelId} |
URL-Anzahl je Typ abrufen |
{salesChannelId} ist die ID des Sales Channels als UUID in Hex-Schreibweise. Eine ungültige ID beantwortet die API mit HTTP 400.
Die Routen sind mit den Berechtigungen
mmd_sitemap.generateundmmd_sitemap.statsabgesichert. Das Plugin registriert diese Berechtigungen in der Rollenverwaltung nicht. Zuverlässig nutzbar sind die Routen daher für Administratoren und für Integrationen mit Administrator-Rechten.
curl -X POST "https://dein-shop.de/api/_action/mmd-sitemap/generate/019b7dfcab75700fada02799328e8440" \
-H "Authorization: Bearer <Token>" \
-H "Accept: application/json"
Die Route erzeugt alle aktivierten Typen und löscht vorher die bestehenden sitemap*.xml-Dateien im Zielverzeichnis des Sales Channels. Einen Request-Body braucht sie nicht.
Antwort:
{
"success": true,
"filesWritten": ["sitemap-products.xml", "sitemap-categories.xml", "sitemap.xml"],
"totalUrlCount": 1234,
"duration": 1.82,
"error": ""
}
| Feld | Bedeutung |
|---|---|
success |
true, wenn mindestens eine Datei geschrieben wurde und kein Fehler vorliegt |
filesWritten |
Dateinamen der geschriebenen Dateien, zuletzt der Index sitemap.xml |
totalUrlCount |
Anzahl der URLs in allen Typ-Dateien |
duration |
Dauer in Sekunden |
error |
Fehlermeldung, sonst leer |
Tritt ein Fehler auf, antwortet die Route mit HTTP 500 und der allgemeinen Meldung Sitemap generation failed. Check logs for details.; Details stehen im Shopware-Log.
curl "https://dein-shop.de/api/_action/mmd-sitemap/stats/019b7dfcab75700fada02799328e8440" \
-H "Authorization: Bearer <Token>"
Antwort:
{
"counts": {"products": 1000, "categories": 40, "cms": 8},
"total": 1048
}
counts enthält je aktiviertem Typ einen Schlüssel (products, categories, cms, manufacturers). Es sind Näherungswerte, siehe Generierung und Console Command. Bei einem Fehler antwortet die Route mit HTTP 500 und leeren counts.