# Parameter page bei Search Criteria automatisch ermitteln?

**URL:** <https://forum.shopware.com/t/parameter-page-bei-search-criteria-automatisch-ermitteln/108880>\
**Category:** Shopware 6 (German)\
**Created:** [13. April 2026 um 11:25 UTC](https://forum.shopware.com/t/parameter-page-bei-search-criteria-automatisch-ermitteln/108880 "2026-04-13T11:25:04Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [13. April 2026 um 11:25 UTC](https://forum.shopware.com/t/parameter-page-bei-search-criteria-automatisch-ermitteln/108880/1 "2026-04-13T11:25:04Z")

</div>

In einem API-Test mit ‚/api/search/product‘ lasse ich per Filter mir alle Produkte (die ein bestimmtes Merkmal haben) im Shop ausgeben. Da hier jedoch das Limit auf 500 begrenzt ist, arbeite ich zusätzlich mit dem Parameter ‚page‘.

Siehe dazu:

> **[page & limit ​ - Search Criteria | Shopware Documentation](https://developer.shopware.com/docs/guides/development/integrations-api/search-criteria.html#page-limit)**
>
> Generally, we refer to the endpoints that use the POST method and receive the criteria as a JSON object as search criteria. It takes the same arguments as a DAL criteria. Some endpoints require additional parameters beyond those specified here....

Diesen Parameter ‚page‘ kann ich händisch setzen, wenn ich natürlich im Vorfeld weis wie viele Produkte es im Shop betrifft. Wenn ich aber den Parameter ‚page‘ dynamisch setzen will/muss brauch ich eine Angabe über die Gesamtanzahl der Produkte. Über welchen API-Call kann ich denn das ermitteln?

---

<div class="post-metadata">

**Author:** ![web-grips](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/web-grips/32/22792_2.png) [@web-grips](https://forum.shopware.com/u/web-grips)\
**Post date:** [13. April 2026 um 11:37 UTC](https://forum.shopware.com/t/parameter-page-bei-search-criteria-automatisch-ermitteln/108880/2 "2026-04-13T11:37:34Z")

</div>

Mach doch eine Loop über Pages bis keine Daten mehr im result sind (-\>total).

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [13. April 2026 um 11:37 UTC](https://forum.shopware.com/t/parameter-page-bei-search-criteria-automatisch-ermitteln/108880/3 "2026-04-13T11:37:39Z")

</div>

> **[total-count-mode ​ - Search Criteria | Shopware Documentation](https://developer.shopware.com/docs/guides/development/integrations-api/search-criteria.html#total-count-mode)**
>
> Generally, we refer to the endpoints that use the POST method and receive the criteria as a JSON object as search criteria. It takes the same arguments as a DAL criteria. Some endpoints require additional parameters beyond those specified here....

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [13. April 2026 um 11:40 UTC](https://forum.shopware.com/t/parameter-page-bei-search-criteria-automatisch-ermitteln/108880/4 "2026-04-13T11:40:55Z")

</div>

Oh man ich bin blind, die Antwort mit ‚total-count-mode‘ steht genau oben drüber …

Wenn man aber mit ‚page‘ und ‚limit‘ arbeiten möchte, braucht man dennoch die Gesamtanzahl. Klar würde ein Loop gehen bis nichts mehr kommt, aber unschöne Variante.

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [23. April 2026 um 06:28 UTC](https://forum.shopware.com/t/parameter-page-bei-search-criteria-automatisch-ermitteln/108880/5 "2026-04-23T06:28:35Z")

</div>

Ich musste hier die Lösung mit ‚total-count-mode‘ wieder zurücknehmen. In einem Test mit dem Parameter ‚total-count-mode‘ und den Werten 0, 1 und 2 werden dennoch immer nur 500 Einträge angezeigt. Das ist aber nicht das Ziel. Ziel war es, dass ALLE Einträge zurück geben werden sollen. Dann wird wohl der Weg über Loop laufen müssen ☹

---

<div class="post-metadata">

**Author:** ![matthiasewald](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/matthiasewald/32/21341_2.png) [@matthiasewald](https://forum.shopware.com/u/matthiasewald)\
**Post date:** [23. April 2026 um 06:54 UTC](https://forum.shopware.com/t/parameter-page-bei-search-criteria-automatisch-ermitteln/108880/6 "2026-04-23T06:54:15Z")

</div>

Moin @R4M,

der Parameter total-count-mode verändert auch nicht den response an sich, sondern gibt nur ein paar mehr Informationen aus.  
Warum ist eine Loop eine unschöne Variante? Das baue ich eigentlich immer so, wenn ich etwas abarbeiten will bis zum Ende 🙂  
Ich würde bei total-count-mode den Wert 2 setzen. Damit sparst du dir die leere Abfrage zum Schluss da der Wert nur zurückgibt, ob es noch eine nächste Seite gibt.

Grüße  
Matthias

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [23. April 2026 um 06:57 UTC](https://forum.shopware.com/t/parameter-page-bei-search-criteria-automatisch-ermitteln/108880/7 "2026-04-23T06:57:04Z")

</div>

> [@matthiasewald](#):
>
> Warum ist eine Loop eine unschöne Variante?

Ich versuche das immer irgendwie zu vermeiden. Ein Fehler und der Loop läuft unendlich. Mittels ‚page‘ und ‚limit‘ taste ich mich nun durch die Datensätze 🙂

---

<div class="post-metadata">

**Author:** ![matthiasewald](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/matthiasewald/32/21341_2.png) [@matthiasewald](https://forum.shopware.com/u/matthiasewald)\
**Post date:** [23. April 2026 um 07:01 UTC](https://forum.shopware.com/t/parameter-page-bei-search-criteria-automatisch-ermitteln/108880/8 "2026-04-23T07:01:30Z")

</div>

Moin,

wenn du es in einer mehr oder weniger kontrollierbaren loop bauen willst, kannst du einen initialen Abruf machen mit total-count-mode = 1 und dann eine for anstatt einer foreach.  
Der Modus ist allerdings wie die Doku sagt recht rechenlastig. Sollte dann auch nur für den ersten Aufruf genutzt werden, dann hast du ja das limit was du loopen musst und somit eine Begrenzung.  
Ich selber würde immer die foreach nehmen und die Abbruchbedingung halt sehr genau prüfen. Aber das ist denke ich Geschmackssache 🙂

Grüße  
Matthias

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [23. April 2026 um 07:08 UTC](https://forum.shopware.com/t/parameter-page-bei-search-criteria-automatisch-ermitteln/108880/9 "2026-04-23T07:08:30Z")

</div>

Im Moment arbeite ich mit ‚while‘ und lass das solange durchlaufen bis das Resulat keine Ergebnisse mehr liefert.

---

<div class="post-metadata">

**Author:** ![matthiasewald](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/matthiasewald/32/21341_2.png) [@matthiasewald](https://forum.shopware.com/u/matthiasewald)\
**Post date:** [23. April 2026 um 07:13 UTC](https://forum.shopware.com/t/parameter-page-bei-search-criteria-automatisch-ermitteln/108880/10 "2026-04-23T07:13:15Z")

</div>

Ja while meinte ich auch. keine Ahnung wie ich auf foreach gekommen bin 😃

Die kannst du dann soweit ich die Doku verstehe mit dem Modus 2 durchlaufen lassen und dann hast du eine Abbruchbedingung ohne, dass du unbedingt auf Ergebnisse prüfen müsstest.

---

<div class="post-metadata">

**Author:** ![system](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/3X/2/9/29c7587ba660f00e4995d1743162782e5d6d8653.svg) [@system](https://forum.shopware.com/u/system)\
**Post date:** [23. Mai 2026 um 07:14 UTC](https://forum.shopware.com/t/parameter-page-bei-search-criteria-automatisch-ermitteln/108880/11 "2026-05-23T07:14:10Z")

</div>

Dieses Thema wurde automatisch 30 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.
