Google hat mich grad angeschrieben, dass etwas mit meiner Sitemap nicht stimmt - und hat recht:
Die sitemap wird zwar erzeugt, aber ist leer. Das Ganze dürfte seit meinem Upgrade von 6.3.x auf 6.4.1.0 passiert sein. Die Sitemap aus dem Backup vor dem Upgrade hat noch Einträge. Beim Generieren kommt folgendes:
bin/console sitemap:generate -vvv
10:49:53 INFO [app] cache-hit: context-factory-706edab409aa400e9f76e95471bdc8ed
Generating sitemaps for sales channel 706edab409aa400e9f76e95471bdc8ed (meinedomain.de) with and language 2fbb5fe2e29a4d70aa5854ce7ce3e20b...
10:49:53 WARNING [php] Warning: file_get_contents(/tmp/706edab409aa400e9f76e95471bdc8ed-sitemap-meinedomain-de-1.xml.gz): failed to open stream: No such file or directory
[
"exception" => ErrorException {
#message: "Warning: file_get_contents(/tmp/706edab409aa400e9f76e95471bdc8ed-sitemap-meinedomain-de-1.xml.gz): failed to open stream: No such file or directory"
#code: 0
#file: "/html/shopware/vendor/shopware/core/Content/Sitemap/Service/SitemapHandle.php"
#line: 87
#severity: E_WARNING
trace: {
/html/shopware/vendor/shopware/core/Content/Sitemap/Service/SitemapHandle.php:87 { …}
/html/shopware/vendor/shopware/core/Content/Sitemap/Service/SitemapExporter.php:162 { …}
/html/shopware/vendor/shopware/core/Content/Sitemap/Service/SitemapExporter.php:76 { …}
/html/shopware/vendor/shopware/core/Content/Sitemap/Commands/SitemapGenerateCommand.php:116 { …}
/html/shopware/vendor/shopware/core/Content/Sitemap/Commands/SitemapGenerateCommand.php:102 { …}
/html/shopware/vendor/symfony/console/Command/Command.php:256 { …}
/html/shopware/vendor/symfony/console/Application.php:989 { …}
/html/shopware/vendor/symfony/framework-bundle/Console/Application.php:96 { …}
/html/shopware/vendor/symfony/console/Application.php:290 { …}
/html/shopware/vendor/symfony/framework-bundle/Console/Application.php:82 { …}
/html/shopware/vendor/symfony/console/Application.php:166 { …}
/html/shopware/bin/console:70 {
› $application = new Application($kernel->getKernel());
› $application->run($input);
›
}
}
}
]
done!
Gabs hier Änderungen? /tmp/ wurde von mir nicht verändert, sollte beschreibbar sein.
ok, das scheint ein Bug zu sein:
die finish() Funktion in vendor/shopware/core/Content/Sitemap/Service/SitemapHandle.php wird zweimal hintereinander aufgerufen. Beim 2ten Mal sind aber die Dateien aus /tmp/ bereits gelöscht, somit werden die neuen Sitemap Dateien mit leeren Content geschrieben.
Als dirty workaround habe ich nun einfach das @unlink($tmpFile); rausgenommen. Ist zwar nicht schön, aber da sich die salesChannels und die Sprachen nicht dauernd ändern dürften, bleibt hat ne Datei in /tmp/ liegen. Gibt schlimmeres.
Außerdem liefert die Funktion $this->filesystem->has($this->tmpFiles[0]) auch nix zurück. Egal ob die Datei existiert oder nicht. Hab’s aber nicht ausgiebig getestet.
Wenn das jemand auch so sieht wie ich, könnte man ja einen Bug melden.
Hallo und danke für den Hinweis bzw. den Workarround - doch leider habe ich den nicht zum Laufen gebracht.
…aber es müsste ja auch hoffentlich so sein, dass Shopware das Problem (welche mehrere Leute betreffen dürfte?!) in der nächsten Runde fixed und die Sitemap wieder funktioniert - vielleicht kann das jemand von Shopware bestätigen?!
leider hat die neue Version auch nicht den Fix gebracht - meine Sitemap ist immer noch leer!
Wenn ich den Workarround von @alex999 nutze, dann wird sie zwar befüllt - Google Console lehnt sie aber ab und sag „Die Sitemap ist fehlerhaft komprimiert. Bitte komprimiere die Datei nochmals und reiche sie ein zweites Mal ein.“
Kann jemand helfen? Geht die Sitemap bei Euch auch nicht oder ist das nur ein Problem bei mir? …wobei das System neu aufgesetzt war und auch sonst nichts geändert wurde.
Hallo, ich habe dasselbe Problem.
Shop Version 6.4.1.0.
Im Test-Shop habe ich 2 Verkaufskanäle. In einem wurde die Domain geändert, in dem anderen nicht. Wenn ich nun versuche eine Sitemap über CLI zu erstellen, funktioniert es nur für den Verkaufskanal ohne Domain Änderung. Der Andere bekommt eine leere Sitemap. Selbiges passiert beim Erzeugen über den Browser, im Modus Live.
Im produktiv Shop gibt es nur ein Verkaufskanal, bei dem die Domain geändert wurde. Dort wird aktuell nur eine leere Sitemap erzeugt, mit der obigen Fehlermeldung.
Kann das Problem etwas mit einer Domain Änderung zu tun haben, oder ist das Zufall?
Wäre es nicht auch möglich den zweiten Aufruf der finish() Funktion zu unterbinden, um das Problem zu beheben?
Aktuell wäre der Workaround alle weitere Domains aus dem Verkaufskanal herauszulöschen, damit nur noch eine Domain pro Sprache vorhanden ist. Dann musst du intern mit dem Hoster eine Weiterleitung auf die verbliebende Domäne machen (bspw. die mit https://www.domainname.de).
Ich werde das das Issue Ticket aber intern nochmal versuchen zu adressieren.
Was ist unter dem zweiten Punkt zu verstehen? Wo wähle ich den Verkaufskanal für die Sitemap aus?
Ich habe 3 Verkaufskanäle, die jeder ihren eigene sitemap bekommen sollen.
Dann lass Punkt 2 weg - das wäre im Falles eines Channels interessant.
Im Bereich Einstellung → Sitemap Dort kann man die Generierung und auch den Channel auswählen.
Versuch über die CLI direkt die Eitemap zu erstellen. Wie in Punkt 3 beschrieben.