Ich kämpfe ein wenig mit dem HTTPCache von Shopware. Ich habe ein Plugin welches spezielle Informationen auf der Artikeldetailseite ausliefert (die gecached ist) Diese Information ist nur für ganz bestimmte, eingeloggte Kunden und für diese auch noch individuell. Wie bringe ich nun Shopware dazu, für diese Kunden die Seite nicht zu cachen? Ich hab es mit den action-widgets probiert (ESI) was auch funktioniert, sprich ich bekomme die gecachte Detailseite und Live-Daten in dem Widget. Ich muss aber leider auch Informationen aus der Gecachten Detailseite entfernen bzw. ändern. Und da ist nun das Problem (Shopware 5.4.6)
Guck mal, wie Shopware das im Plugin UserPrice macht:
https://github.com/shopwareLabs/SwagUserPrice/blob/master/Subscriber/CacheKeyExtender.php#L43
Danke @sonic, das habe ich mir bereits angeschaut. Aber so wie ich das verstehe wird einfach ein zweiter Detail-Cache angelgt für eine Bestimmte CustomerPriceGroup. Wenn nun aber jeder Kunde einen unterschiedlichen Preis hätte, hätte man ja für jeden Kunden eine gecachte Version der Detailseite für jedes Produkt.
Habe ich das richtig verstanden?
Wenn ja, dann kann ich das leider nicht so umsetzen Ich müsste für 70% der Kunden die normale, gecachte Details ausliefern und für 30% der Kunden eine (Kunden-)Individuelle Detailseite wo die Daten erst zur Laufzeit bereitstehen und sich für jeden Kunden unterscheiden. Dabei müssen nicht nur neue Informationen dazu (Dafür gibt’s js ESI) sondern auch bestehende Informationen bzw. das Layout der Detailseite geändert werden.
Zur Zeit habe ich ein ESI/Action-Tag auf der Seite platziert. Dabei triggert das platzieren dieses Elements ein jQuery Plugin welches die Detailseite nachträglich anpasst. Besser als Nichts.