# Dringend: Wie kann man dynamische Daten im twig Template vom Cache ausnehmen lassen?

**URL:** <https://forum.shopware.com/t/dringend-wie-kann-man-dynamische-daten-im-twig-template-vom-cache-ausnehmen-lassen/67428>\
**Category:** Programmierung\
**Created:** [4. Juni 2020 um 15:04 UTC](https://forum.shopware.com/t/dringend-wie-kann-man-dynamische-daten-im-twig-template-vom-cache-ausnehmen-lassen/67428 "2020-06-04T15:04:18Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![opalion](https://avatars.discourse-cdn.com/v4/letter/o/a587f6/32.png) [@opalion](https://forum.shopware.com/u/opalion)\
**Post date:** [4. Juni 2020 um 15:04 UTC](https://forum.shopware.com/t/dringend-wie-kann-man-dynamische-daten-im-twig-template-vom-cache-ausnehmen-lassen/67428/1 "2020-06-04T15:04:18Z")

</div>

Wir möchte dynamische Daten in der Produktdetailansicht ausgeben lassen, die aus einer eigenen DB-Tabelle kommen. Leider werden diese dynamischen Daten beim ersten Aufruf der Produktdetailansicht für ein bestimmtes Produkt im Production-Modus gecacht und diese ändern sich dann nie mehr.

Wie kann Teile im twig-Template vom Cache ausnehmen lassen?

Danke für jede Hilfe zu dem Thema.

---

<div class="post-metadata">

**Author:** ![Moritz\_Naczenski](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/moritz_naczenski/32/7792_2.png) [@Moritz\_Naczenski](https://forum.shopware.com/u/Moritz_Naczenski)\
**Post date:** [4. Juni 2020 um 15:18 UTC](https://forum.shopware.com/t/dringend-wie-kann-man-dynamische-daten-im-twig-template-vom-cache-ausnehmen-lassen/67428/2 "2020-06-04T15:18:51Z")

</div>

Das einfachste wäre deine Inhalte per Javescript zu laden und rein zu rendern. Das ist der übliche Weg für dynamische Inhalte.

---

<div class="post-metadata">

**Author:** ![opalion](https://avatars.discourse-cdn.com/v4/letter/o/a587f6/32.png) [@opalion](https://forum.shopware.com/u/opalion)\
**Post date:** [4. Juni 2020 um 15:24 UTC](https://forum.shopware.com/t/dringend-wie-kann-man-dynamische-daten-im-twig-template-vom-cache-ausnehmen-lassen/67428/3 "2020-06-04T15:24:23Z")

</div>

Danke. Ich analysiere gerade, wie Shopware das so macht, bspw. beim Warenkorb-Icon rechts oben, wo sich ja der Betrag ändern muss oder auch unter Mein Konto bei den Adressen. Aber lt. den twig-Templates hätte ich da kein Javascript vermutet. Wird da nicht der Betrag auch schon serverseitig generiert.

 ![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/6/661e28de6af40dacd720c8277dfa4dfa7d0c0b10.png)

Wobei dann wieder wundern würde, das es nicht gecacht wird. Die Umstellung auf Javascript und Ajax ist an der Stelle etwas aufwendig. Ich dachte, man kann im twig vielleicht bestimmte Teile einfach ausnehmen oder im Controller. Gäbe es neben Javascript noch Alternativen?

&nbsp;

---

<div class="post-metadata">

**Author:** ![opalion](https://avatars.discourse-cdn.com/v4/letter/o/a587f6/32.png) [@opalion](https://forum.shopware.com/u/opalion)\
**Post date:** [4. Juni 2020 um 15:38 UTC](https://forum.shopware.com/t/dringend-wie-kann-man-dynamische-daten-im-twig-template-vom-cache-ausnehmen-lassen/67428/4 "2020-06-04T15:38:16Z")

</div>

Ok. An der Stelle ist es mit JavaScript gelöst. Serverseitig steht 0,00 neben dem Cart-Symbol und dann wird per JavaScript der richtige Betrag eingesetzt. Aber bei Mein Konto -\> Adressen ist es nicht so, da stehen die Daten gleich in der HTML-Ausgabe und werden serverseitig ausgegeben. Da wäre es interessant zu wissen, wie das dort funktioniert.

---

<div class="post-metadata">

**Author:** ![EikeBrandtWarneke](https://avatars.discourse-cdn.com/v4/letter/e/cdc98d/32.png) [@EikeBrandtWarneke](https://forum.shopware.com/u/EikeBrandtWarneke)\
**Post date:** [4. Juni 2020 um 15:47 UTC](https://forum.shopware.com/t/dringend-wie-kann-man-dynamische-daten-im-twig-template-vom-cache-ausnehmen-lassen/67428/5 "2020-06-04T15:47:22Z")

</div>

Im Account und Warenkorb Bereich ist der HTTP cache nicht aktiv.

Viele Grüße

---

<div class="post-metadata">

**Author:** ![opalion](https://avatars.discourse-cdn.com/v4/letter/o/a587f6/32.png) [@opalion](https://forum.shopware.com/u/opalion)\
**Post date:** [4. Juni 2020 um 17:17 UTC](https://forum.shopware.com/t/dringend-wie-kann-man-dynamische-daten-im-twig-template-vom-cache-ausnehmen-lassen/67428/6 "2020-06-04T17:17:26Z")

</div>

Ok. Wie kann man den HTTP Cache abschalten? Wäre jetzt für die Produktdetailansicht natürlich nicht empfehlenswert vermutlich, aber ev. eine Alternative.

Kann man nicht bestimmte Teile einer Seite aus dem Cache ausnehmen? Ich hätte hier nur das gefunden:

> **[Working with Edge Side Includes (Symfony Docs)](https://symfony.com/doc/current/http_cache/esi.html#http-cache-fragments)**
>
> Working with Edge Side Includes: Gateway caches are a great way to make your website perform better. But they have one limitation: they can only cache whole pages. If your pages contain dynamic sectio...

&nbsp;

---

<div class="post-metadata">

**Author:** ![Moorleiche](https://avatars.discourse-cdn.com/v4/letter/m/6f9a4e/32.png) [@Moorleiche](https://forum.shopware.com/u/Moorleiche)\
**Post date:** [4. Juni 2020 um 23:21 UTC](https://forum.shopware.com/t/dringend-wie-kann-man-dynamische-daten-im-twig-template-vom-cache-ausnehmen-lassen/67428/7 "2020-06-04T23:21:20Z")

</div>

Ich finde es eh nicht sauber wie Shopware es gelöst hat die Inhalte dynamisch nachzuladen.

1. Nachgeladene Inhalte mit z.B. einem Popup Link funktionieren einfach nicht.

2. Man könnte für die Snippets ein globales Data-Attribut setzen, welches kein&nbsp;zusätzliches&nbsp;JS erfordert:

&nbsp;

---

<div class="post-metadata">

**Author:** ![Moorleiche](https://avatars.discourse-cdn.com/v4/letter/m/6f9a4e/32.png) [@Moorleiche](https://forum.shopware.com/u/Moorleiche)\
**Post date:** [4. Juni 2020 um 23:29 UTC](https://forum.shopware.com/t/dringend-wie-kann-man-dynamische-daten-im-twig-template-vom-cache-ausnehmen-lassen/67428/8 "2020-06-04T23:29:19Z")

</div>

> [@opalion schrieb:](https://forum.shopware.com/profile/32689/opalion "opalion")
> 
> Ok. Wie kann man den HTTP Cache abschalten? Wäre jetzt für die Produktdetailansicht natürlich nicht empfehlenswert vermutlich, aber ev. eine Alternative.
> 
> Kann man nicht bestimmte Teile einer Seite aus dem Cache ausnehmen? Ich hätte hier nur das gefunden:
> 
> [https://symfony.com/doc/current/http\_cache/esi.html#http-cache-fragments](https://symfony.com/doc/current/http_cache/esi.html#http-cache-fragments)
> 
> &nbsp;

In Twig lassen sich nicht Teile einzeln vom Cache ausschließen. Es gibt aber wohl eine Extension, kann man ja mal testen ob die kompatibel zu Shopware 6 ist.

[https://github.com/ttempleton/craft-nocache](https://github.com/ttempleton/craft-nocache)

&nbsp;

---

<div class="post-metadata">

**Author:** ![Mike\_W](https://avatars.discourse-cdn.com/v4/letter/m/a87d85/32.png) [@Mike\_W](https://forum.shopware.com/u/Mike_W)\
**Post date:** [2. Januar 2023 um 09:00 UTC](https://forum.shopware.com/t/dringend-wie-kann-man-dynamische-daten-im-twig-template-vom-cache-ausnehmen-lassen/67428/9 "2023-01-02T09:00:15Z")

</div>

> [@Moritz\_Naczenski](#):
>
> Das einfachste wäre deine Inhalte per Javescript zu laden und rein zu rendern. Das ist der übliche Weg für dynamische Inhalte.

Hey @Moorleiche, Frohes Neues!  
Hast du hier schon heraus gefunden ob man in Twig einzelne Teile vom Cache ausschließen kann?

LG  
Mike

---

<div class="post-metadata">

**Author:** ![patricks1](https://avatars.discourse-cdn.com/v4/letter/p/43a26b/32.png) [@patricks1](https://forum.shopware.com/u/patricks1)\
**Post date:** [28. Mai 2024 um 08:59 UTC](https://forum.shopware.com/t/dringend-wie-kann-man-dynamische-daten-im-twig-template-vom-cache-ausnehmen-lassen/67428/10 "2024-05-28T08:59:59Z")

</div>

Hallo zusammen,

ich muss das Thema nochmal hervorkramen. Gibt es dazu schon was Neues?  
Gerade bei der Verfügbarkeitsanzeige auf der Produktdetailseite ist das echt blöd. Wenn ein Kunde den letzten verfügbaren Artikel bestell, der Artikel aber noch 2 Stunden als verfügbar angezeigt wird und der nächste Kunde in dem Glauben bestellt, dass der Artikel sofort verfügbar ist.

VG  
Patrick

---

<div class="post-metadata">

**Author:** ![Moorleiche](https://avatars.discourse-cdn.com/v4/letter/m/6f9a4e/32.png) [@Moorleiche](https://forum.shopware.com/u/Moorleiche)\
**Post date:** [28. Mai 2024 um 09:01 UTC](https://forum.shopware.com/t/dringend-wie-kann-man-dynamische-daten-im-twig-template-vom-cache-ausnehmen-lassen/67428/11 "2024-05-28T09:01:55Z")

</div>

Ist das denn der Fall? Bei einer Bestellung wird der Lagerbestand neu berechnet und der Cache des Produktes invalidiert.

---

<div class="post-metadata">

**Author:** ![patricks1](https://avatars.discourse-cdn.com/v4/letter/p/43a26b/32.png) [@patricks1](https://forum.shopware.com/u/patricks1)\
**Post date:** [28. Mai 2024 um 09:05 UTC](https://forum.shopware.com/t/dringend-wie-kann-man-dynamische-daten-im-twig-template-vom-cache-ausnehmen-lassen/67428/12 "2024-05-28T09:05:25Z")

</div>

Ich meine nicht den Lagerbestand sondern den verfügbaren Bestand. Der Lagerbestand wird ja erst nach Versand angepasst.  
In unserem Fall ist es so, dass ein Kunde bestellt d.h. der Lagerbestand des Artikels ist 1 und der verfügbare Bestand 0. Im Frontend wird dem Kunden aber angezeigt, dass der Artikel verfügbar ist.  
Wenn man den Cache löscht wird den Kunden angezeigt, dass der Artikel aktuell nicht mehr verfügbar ist bzw. mit Wiederauffüllzeit, wann er wieder versandfertig ist.

---

<div class="post-metadata">

**Author:** ![Moorleiche](https://avatars.discourse-cdn.com/v4/letter/m/6f9a4e/32.png) [@Moorleiche](https://forum.shopware.com/u/Moorleiche)\
**Post date:** [28. Mai 2024 um 09:10 UTC](https://forum.shopware.com/t/dringend-wie-kann-man-dynamische-daten-im-twig-template-vom-cache-ausnehmen-lassen/67428/13 "2024-05-28T09:10:10Z")

</div>

Mit Lagerbestand meine ich auch den verfügbaren Bestand. Bei einer offenen Bestellung wird der Bestand reserviert, der verfügbare Bestand zählt an dieser stelle runter. Spätestens im Warenkorb werden die Bestände Live abgerufen (ohne Cache), ist der verfügbare Bestand kleiner, dann wird der Warenkorb entsprechend angepasst. Ich vermute also, dass hier evtl ein Drittanbieter Plugin im Spiel ist. Es müsste lediglich nur der Cache invalidiert werden. Alternativ kannst du auch das Event `ProductIndexerEvent` mit den IDs der Produkte auslösen.

---

<div class="post-metadata">

**Author:** ![patricks1](https://avatars.discourse-cdn.com/v4/letter/p/43a26b/32.png) [@patricks1](https://forum.shopware.com/u/patricks1)\
**Post date:** [28. Mai 2024 um 09:31 UTC](https://forum.shopware.com/t/dringend-wie-kann-man-dynamische-daten-im-twig-template-vom-cache-ausnehmen-lassen/67428/14 "2024-05-28T09:31:14Z")

</div>

> [@Moorleiche](#):
>
> Spätestens im Warenkorb werden die Bestände Live abgerufen (ohne Cache), ist der verfügbare Bestand kleiner, dann wird der Warenkorb entsprechend angepasst. Ich vermute also, dass hier evtl ein Drittanbieter Plugin im Spiel ist. Es müsste lediglich nur der Cache invalidiert werden. Alternativ kannst du auch das Event `ProductIndexerEvent` mit den IDs der Produkte auslösen.

Danke für den Hinweis. Da hast du natürlich recht, das hatte ich nicht bedacht. Ich werde das mal prüfen.  
Danke schon mal!

---

<div class="post-metadata">

**Author:** ![shopware9](https://avatars.discourse-cdn.com/v4/letter/s/7bcc69/32.png) [@shopware9](https://forum.shopware.com/u/shopware9)\
**Post date:** [30. Mai 2024 um 06:52 UTC](https://forum.shopware.com/t/dringend-wie-kann-man-dynamische-daten-im-twig-template-vom-cache-ausnehmen-lassen/67428/15 "2024-05-30T06:52:34Z")

</div>

Welche Shopware-Version nutzt du? Ich glaube ab Shopware 6.5.5.0 wurde die Möglichkeit eingebaut, dass man auf die Logik vom Lagermanagement von Shopware 6.6.x umstellen kann, bei der es keinen Unterschied mehr zwischen Lagermenge und verfügbarem Bestand gibt - die Reservierungs-Logik entfällt also, so dass im Grunde bei der Bestands-Anzeige immer der korrekte Wert greifen müsste: [Stock Configuration | Shopware Documentation](https://developer.shopware.com/docs/v6.5/guides/hosting/configurations/shopware/stock.html)

Wichtig bei der Umstellung in Shopware 6.5.x ist, dass man das SQL-Update ausführt (siehe [shopware/UPGRADE-6.5.md at trunk · shopware/shopware · GitHub](https://github.com/shopware/shopware/blob/trunk/UPGRADE-6.5.md#6550)):

`UPDATE product SET stock = available_stock WHERE stock != available_stock`

Falls du eine Anbindung an eine Wawi hast, solltest du das aber gut durchtesten! (Solltest du aber ja sowieso in jedem Fall 😉 )
