Produktanzahl einer Kategorie erhalten

Hallo,

ich suche den smartesten und vor allem performantesten Weg, die Anzahl an Produkten aus einer bestimmten Kategorie zu erhalten.

Meine Idee war folgende: Eine Twig Extension, der ich die CategoryId (oder das ganze Entity) übergebe. Das Criteria Objekt noch mit addAssociation(‚products‘) erweitern und damit das ProductRepository durchsuchen. Leider hat mein CategoryEntity aus dem Ergebnis unter „products“ eine leere ProductCollection.

Es ist anscheinend nicht vorgesehen, eine Kategorie so einfach um seine Produkte zu erweitern, obwohl das Attribut ja bereits in der Entity Klasse existiert.

Wie komme ich am sinnvollsten an die Anzahl der Produkte einer bestimmten Kategorie? Macht das überhaupt Sinn, weil es eh der totale Performancekiller ist?

Lg Alex

Ich Speicher das per Cronjob in customFields.

Live würde ich das nicht abfragen, da es eine unnötige Datenbankabfrage über alle Einträge ist.

Falls Cronjob nicht ausreicht kannst auch bei Änderung des Bestands die customFields selektiv aktualisieren.

Alles klar, das dachte ich mir bereits. Man sieht in einigen großen Onlineshops auf der Listing Seite oft die Gesamtproduktanzahl der Kategorie neben dem Kategorienamen stehen. Das wär ein nettes Extra, aber du hasst natürlich recht. Live ist das keine gute Idee.

Ich weiß nicht ob das zielführend für deine Anforderung ist, aber man kann im Storefront auf der product listing Seite einer Kategorie die Gesamtanzahl der Produkte in dieser Kategorie mit {{ searchResult.total }} ausgeben.

Leider ist an der Stelle wo ich die Anzahl ausgeben möchte, das searchResult noch nicht gesetzt. Aber guter Ansatz, danke!

Ich habe fast genau das selbe Problem:
Ich brauche für ein Plugin die Anzahl der gefundenen Produkte innerhalb einer Kategorie!
Also, wenn die Kategorie direkt aufgerufenwird, wäre z.B. $productCount = 45; sind Filter gesetzt hieße das meinetwegen, $productCount = 13.

Zu diesem Zeitpunkt sollten in criteria die searchResults bereits feststehen (tun sie z.B. in der listing.html.twig).

Heißt das, es gibt kein Event, von dem aus man auf die bestehenden Suchergebnisse zugreifen kann, um ‚searchResult.total‘ auszulesen?