# Ausgabe von einzelnen Eigenschaften in der Kategorieübersicht

**URL:** <https://forum.shopware.com/t/ausgabe-von-einzelnen-eigenschaften-in-der-kategorieubersicht/63533>\
**Category:** Programmierung\
**Created:** [13. Dezember 2019 um 13:34 UTC](https://forum.shopware.com/t/ausgabe-von-einzelnen-eigenschaften-in-der-kategorieubersicht/63533 "2019-12-13T13:34:23Z")\
**Posts on this page:** 13\
**Page:** 2

<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:** [22. April 2021 um 21:47 UTC](https://forum.shopware.com/t/ausgabe-von-einzelnen-eigenschaften-in-der-kategorieubersicht/63533/21 "2021-04-22T21:47:36Z")

</div>

```
use Shopware\Core\Content\Product\ProductEvents;
use Shopware\Core\Content\Product\SalesChannelProductEntity;
use Shopware\Core\Framework\DataAbstractionLayer\Event\EntityLoadedEvent;
use Shopware\Core\Content\Product\Events\ProductListingCriteriaEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

```

Ich glaube, das sollte ausreichen. Bei mir funktioniert das oben genannte Script tadellos.

---

<div class="post-metadata">

**Author:** ![padaja](https://avatars.discourse-cdn.com/v4/letter/p/9fc348/32.png) [@padaja](https://forum.shopware.com/u/padaja)\
**Post date:** [30. April 2021 um 16:26 UTC](https://forum.shopware.com/t/ausgabe-von-einzelnen-eigenschaften-in-der-kategorieubersicht/63533/22 "2021-04-30T16:26:41Z")

</div>

Hallo, wo habt Ihr denn den ganzen Code eingefügt das der bei euch läuft? Habt Ihr dafür extra ein Plugin erstellt?

---

<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:** [1. Mai 2021 um 19:47 UTC](https://forum.shopware.com/t/ausgabe-von-einzelnen-eigenschaften-in-der-kategorieubersicht/63533/23 "2021-05-01T19:47:53Z")

</div>

Jap musst ein eigenes Plugin erstellen und hochladen.

---

<div class="post-metadata">

**Author:** ![padaja](https://avatars.discourse-cdn.com/v4/letter/p/9fc348/32.png) [@padaja](https://forum.shopware.com/u/padaja)\
**Post date:** [3. Mai 2021 um 14:18 UTC](https://forum.shopware.com/t/ausgabe-von-einzelnen-eigenschaften-in-der-kategorieubersicht/63533/24 "2021-05-03T14:18:08Z")

</div>

Hi Alex, wäre es dir möglich uns ein funktionierendes Plugin hier zur Verfügung zu stellen bzw. nur die Party die essentiell sind? z.B. den kompletten Subscriber? Ich steh ein bisschen auf dem Schlauch und bräuchte Starthilfe 🙂

---

<div class="post-metadata">

**Author:** ![w3digitalbrands](https://avatars.discourse-cdn.com/v4/letter/w/e8c25b/32.png) [@w3digitalbrands](https://forum.shopware.com/u/w3digitalbrands)\
**Post date:** [11. Juni 2021 um 11:49 UTC](https://forum.shopware.com/t/ausgabe-von-einzelnen-eigenschaften-in-der-kategorieubersicht/63533/25 "2021-06-11T11:49:19Z")

</div>

Auf Shopware 6.4 scheint das so nichtmehr zu funktionieren. Das Object `$productEntity` ist zwar gefüllt, die Methode `getProperties()` scheint aber nicht mehr zu existieren. Gibt es hier irgendwelche Updates?

---

<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:** [27. Juni 2021 um 20:06 UTC](https://forum.shopware.com/t/ausgabe-von-einzelnen-eigenschaften-in-der-kategorieubersicht/63533/26 "2021-06-27T20:06:20Z")

</div>

Hey,

vermutlich ist das schon hinfällig oder?

---

<div class="post-metadata">

**Author:** ![SPO](https://avatars.discourse-cdn.com/v4/letter/s/b9e5f3/32.png) [@SPO](https://forum.shopware.com/u/SPO)\
**Post date:** [29. Juni 2021 um 13:08 UTC](https://forum.shopware.com/t/ausgabe-von-einzelnen-eigenschaften-in-der-kategorieubersicht/63533/27 "2021-06-29T13:08:00Z")

</div>

Hey, stecke gerade an der gleichen Stelle fest und bekomme die Fehlermeldung

# Call to a member function groupByPropertyGroups() on null

Bin mit Shopware 6.4.1.1 unterwegs…

Hat da einer eine Lösungshilfe?

---

<div class="post-metadata">

**Author:** ![w3digitalbrands](https://avatars.discourse-cdn.com/v4/letter/w/e8c25b/32.png) [@w3digitalbrands](https://forum.shopware.com/u/w3digitalbrands)\
**Post date:** [29. Juni 2021 um 13:19 UTC](https://forum.shopware.com/t/ausgabe-von-einzelnen-eigenschaften-in-der-kategorieubersicht/63533/28 "2021-06-29T13:19:13Z")

</div>

Leider noch keine Lösung gefunden.

---

<div class="post-metadata">

**Author:** ![KevinK](https://avatars.discourse-cdn.com/v4/letter/k/e9a140/32.png) [@KevinK](https://forum.shopware.com/u/KevinK)\
**Post date:** [10. Juli 2021 um 07:18 UTC](https://forum.shopware.com/t/ausgabe-von-einzelnen-eigenschaften-in-der-kategorieubersicht/63533/29 "2021-07-10T07:18:00Z")

</div>

Hat jemand mittlerweile einen Ansatz gefunden?

---

<div class="post-metadata">

**Author:** ![SPO](https://avatars.discourse-cdn.com/v4/letter/s/b9e5f3/32.png) [@SPO](https://forum.shopware.com/u/SPO)\
**Post date:** [29. Juli 2021 um 13:42 UTC](https://forum.shopware.com/t/ausgabe-von-einzelnen-eigenschaften-in-der-kategorieubersicht/63533/30 "2021-07-29T13:42:12Z")

</div>

Ich frage vorsichtig noch einmal nach, ob es hier nicht irgendeine Lösung mittlerweile gibt. Stecke noch an der gleichen Stelle fest wie vor einen Monat… ☹

---

<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:** [6. August 2021 um 09:10 UTC](https://forum.shopware.com/t/ausgabe-von-einzelnen-eigenschaften-in-der-kategorieubersicht/63533/31 "2021-08-06T09:10:49Z")

</div>

Habe leider aktuell noch SW 6.3., kann euch leider nicht helfen. Ich befürchte leider, dass viele meiner eigenen Plugins unter SW 6.4. auch nicht mehr laufen werden^^

---

<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:** [17. November 2021 um 16:08 UTC](https://forum.shopware.com/t/ausgabe-von-einzelnen-eigenschaften-in-der-kategorieubersicht/63533/32 "2021-11-17T16:08:24Z")

</div>

Also bei mir funktioniert unter 6.4.5.0 das Beispiel per Copy & Past ohne Fehler.

Dein Fehler ist klar… null. Du hast keine Eigenschaften angelegt, deswegen bekommt es keine Eigenschaft geliefert sondern null. Mit null weiter zu arbeiten ist nicht möglich.

---

<div class="post-metadata">

**Author:** ![m.zeis](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/m.zeis/32/17261_2.png) [@m.zeis](https://forum.shopware.com/u/m.zeis)\
**Post date:** [30. September 2022 um 15:33 UTC](https://forum.shopware.com/t/ausgabe-von-einzelnen-eigenschaften-in-der-kategorieubersicht/63533/33 "2022-09-30T15:33:03Z")

</div>

Ich glaube, bei denen von euch, bei denen es nicht klappt, liegt es daran, dass ihr den Code aus einigen Antworten hier zusammen fügen müsst:

- [Ausgabe von einzelnen Eigenschaften in der Kategorieübersicht - #11 von rademakeronline](https://forum.shopware.com/t/ausgabe-von-einzelnen-eigenschaften-in-der-kategorieubersicht/63533/11)
- [Ausgabe von einzelnen Eigenschaften in der Kategorieübersicht - #12 von devnullroot](https://forum.shopware.com/t/ausgabe-von-einzelnen-eigenschaften-in-der-kategorieubersicht/63533/12)

Und dann (für neuere Shopware-Versionen?) noch etwas ergänzen müsst.

Hier eine vollständige Subscriber-Klasse, wie sie für mich unter 6.4.14.0 funktioniert:

```auto
<?php
declare(strict_types=1);

namespace LimeSodaDeinPluginName\Subscriber;

use Shopware\Core\Content\Product\ProductEvents;
use Shopware\Core\Content\Product\Events\ProductListingCriteriaEvent;
use Shopware\Core\Content\Product\SalesChannel\SalesChannelProductEntity;
use Shopware\Core\Framework\Api\Context\SalesChannelApiSource;
use Shopware\Core\Framework\DataAbstractionLayer\Event\EntityLoadedEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

class ProductListingSubscriber implements EventSubscriberInterface
{
   public static function getSubscribedEvents(): array
   {
       return [
           ProductEvents::PRODUCT_LOADED_EVENT => 'onProductsLoaded',
           ProductListingCriteriaEvent::class => 'handleRequest',
       ];
   }

   public function handleRequest(ProductListingCriteriaEvent $event)
   {
       $event->getCriteria()->addAssociation('properties');
       $event->getCriteria()->addAssociation('properties.group');
   }

   public function onProductsLoaded(EntityLoadedEvent $event)
   {
       if (!($event->getContext()->getSource() instanceof SalesChannelApiSource)) {
           return;
       }

       foreach ($event->getEntities() as $productEntity) {
           /** @var SalesChannelProductEntity $productEntity */
           $properties = $productEntity->getProperties();
           if ($properties) {
               $grouped = $properties->groupByPropertyGroups();
               $grouped->sortByPositions();
               $grouped->sortByConfig();
               $productEntity->setSortedProperties($grouped);
           }
       }
   }
}

```

Ein paar Erläuterungen aus dem Thread hier zusammengefasst:

- Wir müssen uns an zwei Events dranhängen: zuerst müssen wir dafür sorgen, dass die Properties in das Produkt geladen werden (passiert in der Methode `handleRequest()`), und dann müssen wir die Properties sortieren und im Produkt ablegen (`onProductsLoaded()`).
- In `handleRequest()` müssen wir, zumindest in aktuelleren SW6-Versionen(?), nicht nur die Properties dazu laden, sondern auch die Property-Gruppen.
- In `onProductsLoaded()` sichern wir ab, falls im Produkt keine Properties vorhanden sind. Außerdem können wir nun die Properties gruppieren, weil wir die `properties.group` auch hinzugefügt haben.

Und mit dem Code kann man nun im Twig-Template die Eigenschaften ausgeben:

```auto
{# @var product \Shopware\Core\Content\Product\SalesChannel\SalesChannelProductEntity #}
{% for group in product.sortedProperties %}
    <p>{{ group.translated.name|e }}:</p>
    {% apply spaceless %}
        {% for option in group.options %}
            {% set i = ( i | default(0) ) + 1 %}
            <p>{% if i > 1 %}, {% endif %}{{ option.translated.name|e }}</p>
        {% endfor %}
    {% endapply %}
{% endfor %}

```

Ich hoffe, das hilft euch etwas weiter. Und vielen Dank an alle, die die Vorarbeit geleistet haben 🙂

[Vorherige Seite](https://forum.shopware.com/t/ausgabe-von-einzelnen-eigenschaften-in-der-kategorieubersicht/63533.md?page=1)
