# Twig Loop Listing?

**URL:** <https://forum.shopware.com/t/twig-loop-listing/86966>\
**Category:** Programmierung\
**Created:** [19. April 2021 um 22:41 UTC](https://forum.shopware.com/t/twig-loop-listing/86966 "2021-04-19T22:41:19Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![CodingCarla](https://avatars.discourse-cdn.com/v4/letter/c/9dc877/32.png) [@CodingCarla](https://forum.shopware.com/u/CodingCarla)\
**Post date:** [19. April 2021 um 22:41 UTC](https://forum.shopware.com/t/twig-loop-listing/86966/1 "2021-04-19T22:41:19Z")

</div>

Kann mir jemand sagen, wie ich in einer Schleife oder einem Loop zwei vorhandene Werte einer Variable im Listing summieren und ausgeben kann?

{{ product.availableStock }} gibt logischerweise nur einen Wert aus.

---

<div class="post-metadata">

**Author:** ![AlexBS](https://avatars.discourse-cdn.com/v4/letter/a/ed655f/32.png) [@AlexBS](https://forum.shopware.com/u/AlexBS)\
**Post date:** [20. April 2021 um 06:19 UTC](https://forum.shopware.com/t/twig-loop-listing/86966/2 "2021-04-20T06:19:56Z")

</div>

```
{% set sumStock %}

{% for stock in product.availableStock %}
    {% set sumStock = sumStock + stock %}
{% endfor %}

<p>Der gesamte Warenbestand dieses Produktes ist {{ sumStock }}.</p>

```

So müsstest du das eigentlich lösen können. Es kommt hier natürlich drauf an, ob diese Werte so einfach addierbar sind. Wenn es Zahlen sind, sollte das gehen.

Lass mich wissen, ob das geklappt hat.

Lg

---

<div class="post-metadata">

**Author:** ![CodingCarla](https://avatars.discourse-cdn.com/v4/letter/c/9dc877/32.png) [@CodingCarla](https://forum.shopware.com/u/CodingCarla)\
**Post date:** [20. April 2021 um 09:12 UTC](https://forum.shopware.com/t/twig-loop-listing/86966/3 "2021-04-20T09:12:58Z")

</div>

Erstmal danke für deine Antwort. Funktioniert jedoch leider nicht.

Das ist die Zeile mit dem {% set sumStock %}  
Nehme ich die Zeile raus, ist sumStock = 0.

---

<div class="post-metadata">

**Author:** ![AlexBS](https://avatars.discourse-cdn.com/v4/letter/a/ed655f/32.png) [@AlexBS](https://forum.shopware.com/u/AlexBS)\
**Post date:** [20. April 2021 um 10:34 UTC](https://forum.shopware.com/t/twig-loop-listing/86966/4 "2021-04-20T10:34:21Z")

</div>

Ahh, mein Fehler!

{% set sumStock = sumStock + stock %} muss es natürlich heißen!

---

<div class="post-metadata">

**Author:** ![CodingCarla](https://avatars.discourse-cdn.com/v4/letter/c/9dc877/32.png) [@CodingCarla](https://forum.shopware.com/u/CodingCarla)\
**Post date:** [20. April 2021 um 10:56 UTC](https://forum.shopware.com/t/twig-loop-listing/86966/5 "2021-04-20T10:56:48Z")

</div>

Das hatte ich bereits geändert, weil es mir aufgefallen war.

Das Problem scheint die erste Zeile zu sein.

---

<div class="post-metadata">

**Author:** ![AlexBS](https://avatars.discourse-cdn.com/v4/letter/a/ed655f/32.png) [@AlexBS](https://forum.shopware.com/u/AlexBS)\
**Post date:** [20. April 2021 um 11:21 UTC](https://forum.shopware.com/t/twig-loop-listing/86966/6 "2021-04-20T11:21:42Z")

</div>

Probier mal  
{% set sumStock = 0 %}

---

<div class="post-metadata">

**Author:** ![AlexBS](https://avatars.discourse-cdn.com/v4/letter/a/ed655f/32.png) [@AlexBS](https://forum.shopware.com/u/AlexBS)\
**Post date:** [20. April 2021 um 11:45 UTC](https://forum.shopware.com/t/twig-loop-listing/86966/8 "2021-04-20T11:45:41Z")

</div>

Auf welcher Seite wird das denn genau aufgerufen?  
Es könnte sein, dass product nicht definiert ist. Manchmal muss man es über page.product machen. Du kannst abfragen, ob product nicht definiert ist, aber page.product definiert ist und dann die variable page überschreiben mit page.product.

```
{% set sumStock = 0 %}

{% if (not product is defined) and (page.product is defined) %}
      {% set product = page.product %} 
{% endif %}

{% for stock in product.availableStock %}
    {% set sumStock = sumStock + stock %}
{% endfor %}

<p>Der gesamte Warenbestand dieses Produktes ist {{ sumStock }}.</p>

```

Probier das mal.

---

<div class="post-metadata">

**Author:** ![CodingCarla](https://avatars.discourse-cdn.com/v4/letter/c/9dc877/32.png) [@CodingCarla](https://forum.shopware.com/u/CodingCarla)\
**Post date:** [20. April 2021 um 11:56 UTC](https://forum.shopware.com/t/twig-loop-listing/86966/9 "2021-04-20T11:56:09Z")

</div>

Im Produkt-Listing.

![image](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/9/912935c1bf002fbbc75714414495ba839cb45873.png)

{{ product.availableStock }} gibt die 300 auch im Frontend aus. Ich habe aber ja eine zweite Variable availableStock mit einem weiteren Wert, die dann natürlich nicht berücksichtig wird.

---

<div class="post-metadata">

**Author:** ![AlexBS](https://avatars.discourse-cdn.com/v4/letter/a/ed655f/32.png) [@AlexBS](https://forum.shopware.com/u/AlexBS)\
**Post date:** [20. April 2021 um 12:27 UTC](https://forum.shopware.com/t/twig-loop-listing/86966/10 "2021-04-20T12:27:43Z")

</div>

Ich habe mir mal das product gedumped. product-\>availableStock bezieht sich immer nur auf die aktuell dargestellte Produktvariation. Deshalb hast du dort immer nur einen Wert, nämlich den aktuellen Stock der gewählten Variation.

Wie man durch einen Art überordneten Container looped (oder ob es sowas überhaupt gibt), kann ich dir leider nicht sagen ☹
