Shopware 6.7.6.2: Mengenfeld zeigt falschen Bestand – „Cache aktualisieren“ ohne Wirkung

Hallo zusammen,

ich habe meinen Shop auf Shopware 6.7.6.2 aktualisiert (von Version 6.6.10.9) und stehe vor einem massiven Problem bei der Bestandsanzeige von Abverkauf-Artikeln.

Die Situation: Ein Artikel ist als „Abverkauf“ markiert, Bestand ist 3 Stück. Ein Kunde kauft 1 Stück, der reale Bestand sinkt korrekt auf 2.

Das Problem: Im Frontend bleibt im Mengenfeld (Dropdown/Zahlenauswahl) weiterhin die 3 anwählbar. Das passiert browserübergreifend und auch im Inkognito-Modus. Erst im Warenkorb erhält der Kunde die Fehlermeldung, dass nur noch 2 Stück verfügbar sind. Das führt zu einer extrem schlechten User Experience.

Das Kuriose: Selbst wenn ich unter Einstellungen > Caches & Indizes manuell auf „Cache aktualisieren“ klicke, ändert sich im Frontend nichts. Die „3“ bleibt im Mengenfeld stehen. Der Klick auf den Button scheint den HTTP-Cache oder die gerenderte Produktseite für das Mengenfeld überhaupt nicht zu tangieren.

Technische Details:

  • Messenger/Worker: Die Tabelle messenger_messages ist leer, alle Hintergrundaufgaben werden sofort abgearbeitet.
  • Shopware.yaml: Hier steht aktuell cache: invalidation: http_cache: []. Mir ist bewusst, dass dies die automatische Invalidierung beeinflusst, aber es erklärt nicht, warum selbst der manuelle Button im Admin keinerlei Auswirkung auf die Bestandsanzeige hat.
  • Texte/Andere Änderungen: Wenn ich Texte ändere und den Cache leere, werden diese übernommen. Nur die verfügbare Menge im Auswahlfeld scheint „festgefroren“.

Hat jemand eine Lösung für dieses Verhalten? Es scheint, als hätte Shopware ab Version 6.7 das Caching des Mengenfeldes so aggressiv entkoppelt, dass man als Händler keine Kontrolle mehr über die Echtzeit-Anzeige hat.

Gibt es eine Konfiguration oder einen Workaround, um das Mengenfeld dazu zu zwingen, den tatsächlichen Lagerbestand (available_stock) anzuzeigen?

Vielen Dank für eure Unterstützung!

Ist die Verzögerung des Caches nicht nur ungefähr 2 Minuten in der Standard-Konfiguration? Ist diese Zeitspanne zu lang? Dann müsstest du entweder schauen, ob man den Cache für teilweise deaktivieren kann (selbst noch nicht mit dem „neuen“ Cache beschäftigt) oder für das Input Field den Max Wert manuell per XHR nachladen.

2 Minuten wäre überhaupt kein Problem - das Problem ist bei mir, dass das Mengen-Eingabefeld auch 3 Stunden später noch 3 Stück anwählbar machte, obwohl „Cache aktualisieren“ bereits gedrückt und Backend-Bestand auf 2 war. Auch Browser-Cache leeren oder anderen Browser verwenden brachte auch nach Stunden noch die falsche Stückzahl im Mengeneingabefeld bei Abverkauf-Artikeln. Das war früher bei 6.6.x.x nicht so.

Ich habe es gerade lokal getestet und der Bestand wurde innerhalb „einer Sekunde“ korrigiert.

SHOPWARE_HTTP_CACHE_ENABLED=1
OpCache
APCu

Moin @Andreas_147 ,

hast du denn mal geprüft, ob es wirklich ein Cache Problem ist oder ein Index Problem? Also hat sich der Wert in der Datenbank selbst korrekt verändert?
Die Message Queue wird nicht über Redis verwaltet? Weil dann wäre die Tabelle messenger_messages ohnehin immer leer, da es dort nicht mehr reingeschrieben wird.

Grüße
Matthias