Hallo!
Leider habe ich bei einem Kunden (SW 6.3.4.0) das selbe bzw. ein ähnliches Problem.
Im Shop wurde ein „Produktvergleich“-Verkaufskanal angelegt (für Google Shopping Feed). Da die „Live“-Generierung aufgrund der Produktanzahl nicht möglich ist, würde ich den Feed gerne bei Scheduler alle 15 Minuten erzeugen lassen.
Jegliche Versuche, das im Backend so einzurichten, schlagen komplett fehl.
Eine Generierung über die CLI ist ebenfalls nicht möglich.
php bin/console product-export:generate 57999094f5344bb68490ee6ae38c0def
wirft folgenden Fehler:
In SalesChannelContextFactory.php line 479:
Provided language 2fbb5fe2e29a4d70aa5854ce7ce3e20b is not in list of available languages:
Mein Debugging hat ergeben, dass diese SQL-Query https://github.com/shopware/platform/blob/4ad80730910d78b54892fa65deb4c86781abc971/src/Core/System/SalesChannel/Context/SalesChannelContextFactory.php#L327 eine leere Spalte sales_channel_language_ids
zurückgibt, was dann die oben genannte Exception erzeugt.
Es gibt demnach in der Tabelle sales_channel_language
keine Zuordnung des Produktvergleich-Verkaufskanals zur Sprache. Selbst, wenn ich diese manuell hinzufüge, kommt es zu einer weiteren Exception beim Ausführen von product-export:generate
:
In ProductExportGenerateCommand.php line 55:
No matching sales channel found.
Was nach Code-Analyse darauf hin deutet, dass product-export:generate
ausschließlich für Storefront-Verkaufskanäle genutzt werden kann: https://github.com/shopware/platform/blob/4ad80730910d78b54892fa65deb4c86781abc971/src/Core/Content/ProductExport/Command/ProductExportGenerateCommand.php#L54
Aus welchem Grund besteht diese Einschränkung? Ist das „übersehen“ worden (wie so vieles in SW 6) oder Absicht?
Dass man die Generierung nicht manuell per CLI anstoßen kann, wäre ja nicht einmal unbedingt das größte Problem. Es scheint aber so zu sein, dass weder der Scheduler noch die Message Queue (Worker jeweils gestartet per CLI-Cronjob) dafür zuständig wären, die Produktvergleich-Feeds (Exporte) im angegebenen Intervall zu erzeugen. Dies geschieht gefühlt ausschließlich on-the-fly beim Abrufen der XML-Export-URL (was wie gesagt im vorliegenden Anwendungsfall zu langsam ist, da es zu viele Produkte gibt, wir reden hier von mehreren Minuten Laufzeit bzw. überhaupt keinem Abschluss des Requests).
Der Kunde möchte einfach nur einen schnöden Google Shopping Feed einrichten (wenn auch für viele Produkte). Gibt es eine Möglichkeit, wie ich ihm das ermöglichen kann?
Viele Grüße