# Produkt Eigenschaften im Listing / Get Article Properties in Listing

**URL:** <https://forum.shopware.com/t/produkt-eigenschaften-im-listing-get-article-properties-in-listing/66080>\
**Category:** Programmierung\
**Created:** [6. April 2020 um 11:12 UTC](https://forum.shopware.com/t/produkt-eigenschaften-im-listing-get-article-properties-in-listing/66080 "2020-04-06T11:12:00Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![11shop](https://avatars.discourse-cdn.com/v4/letter/1/90ced4/32.png) [@11shop](https://forum.shopware.com/u/11shop)\
**Post date:** [6. April 2020 um 11:12 UTC](https://forum.shopware.com/t/produkt-eigenschaften-im-listing-get-article-properties-in-listing/66080/1 "2020-04-06T11:12:00Z")

</div>

Hallo,&nbsp;

Wie kann ich die Eigenschaften im Listing ausgeben?&nbsp;

Wenn ich {{dump(product)}} mache, habe ich nur&nbsp;propertyIds.&nbsp;

&nbsp;

Mit freundlichen Grüßen

Amin Nayerhabibi

---

<div class="post-metadata">

**Author:** ![uehler](https://avatars.discourse-cdn.com/v4/letter/u/f14d63/32.png) [@uehler](https://forum.shopware.com/u/uehler)\
**Post date:** [8. April 2020 um 08:02 UTC](https://forum.shopware.com/t/produkt-eigenschaften-im-listing-get-article-properties-in-listing/66080/2 "2020-04-08T08:02:48Z")

</div>

Du musst das Criteria-Objekt zum Auslesen der Produkte im Listing erweitern, um die Properties mit auszulesen.

---

<div class="post-metadata">

**Author:** ![janwinter](https://avatars.discourse-cdn.com/v4/letter/j/54ee81/32.png) [@janwinter](https://forum.shopware.com/u/janwinter)\
**Post date:** [10. April 2020 um 08:18 UTC](https://forum.shopware.com/t/produkt-eigenschaften-im-listing-get-article-properties-in-listing/66080/3 "2020-04-10T08:18:18Z")

</div>

> [@uehler schrieb:](https://forum.shopware.com/profile/20140/uehler "uehler")
> 
> Du musst das Criteria-Objekt zum Auslesen der Produkte im Listing erweitern, um die Properties mit auszulesen.

Kannst Du das evtl. ein wenig näher ausführen? Ich würde auch gerne im Listing auf die Properties zugreifen, Deine Antwort hilft mir aber leider nur bedingt weiter.

---

<div class="post-metadata">

**Author:** ![uehler](https://avatars.discourse-cdn.com/v4/letter/u/f14d63/32.png) [@uehler](https://forum.shopware.com/u/uehler)\
**Post date:** [10. April 2020 um 11:38 UTC](https://forum.shopware.com/t/produkt-eigenschaften-im-listing-get-article-properties-in-listing/66080/4 "2020-04-10T11:38:07Z")

</div>

Hier: [Shopware 6: Extending the storefront listing](https://docs.shopware.com/en/shopware-platform-dev-en/how-to/extend-storefront-listing)  
Du erstellst einen Subscriber für ProductListingCriteriaEvent::class, im Callback machst du dann ein $criteria-\>addAssociation(‘property’);

sieht dann ungefähr so aus (ungetestet!)

```
class ExampleListingSubscriber implements EventSubscriberInterface
{
    public static function getSubscribedEvents()
    {
        return [
            ProductListingCriteriaEvent::class => 'handleRequest',
        ];
    }

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

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![11shop](https://avatars.discourse-cdn.com/v4/letter/1/90ced4/32.png) [@11shop](https://forum.shopware.com/u/11shop)\
**Post date:** [4. Mai 2020 um 14:35 UTC](https://forum.shopware.com/t/produkt-eigenschaften-im-listing-get-article-properties-in-listing/66080/5 "2020-05-04T14:35:05Z")

</div>

@uehler‍ Weißt du vielleicht wie man die übersetzte&nbsp;Lables bei Zusatzfelder ausgeben kann, wenn der Zusatzfeld ein Auswahlfeld ist??&nbsp;

ich habe z.B. Zusatzfeld Baujahr und als Option habe ich 2010-2020 und die haben jeweils eine technischer Name und 2 Labels, wenn ich dump mache, bekomme ich nur die technische Name und nicht die Labels.&nbsp;

Danke im Voraus.&nbsp;

---

<div class="post-metadata">

**Author:** ![s\_verweyen](https://avatars.discourse-cdn.com/v4/letter/s/e8c25b/32.png) [@s\_verweyen](https://forum.shopware.com/u/s_verweyen)\
**Post date:** [12. Mai 2020 um 13:18 UTC](https://forum.shopware.com/t/produkt-eigenschaften-im-listing-get-article-properties-in-listing/66080/6 "2020-05-12T13:18:18Z")

</div>

> [@uehler schrieb:](https://forum.shopware.com/profile/20140/uehler "uehler")
> 
> Hier: [https://docs.shopware.com/en/shopware-platform-dev-en/how-to/extend-storefront-listing](https://docs.shopware.com/en/shopware-platform-dev-en/how-to/extend-storefront-listing)  
> Du erstellst einen Subscriber für ProductListingCriteriaEvent::class, im Callback machst du dann ein $criteria-\>addAssociation(‚property‘);
> 
> sieht dann ungefähr so aus (ungetestet!)
> 
> class ExampleListingSubscriber implements EventSubscriberInterface  
> {  
> public static function getSubscribedEvents()  
> {  
> return [  
> ProductListingCriteriaEvent::class =\> ‚handleRequest‘,  
> ];  
> }
> 
> public function handleRequest(ProductListingCriteriaEvent $event)  
> {  
> $event-\>getCriteria()-\>addAssociation(‚property‘);  
> }  
> }

Ich habe das versucht so einzubauen, aber leider kommt im storefront nichts an. Ich habe meine Klasse über services.xml registriert und sie wird auch ausgeführt. Was könnte fehlen?

Edit: Habe ein paar Anpassungen gemacht. Jetzt läuft’s:

&nbsp;

```
class ListingPropertiesSubscriber implements EventSubscriberInterface
{
    public static function getSubscribedEvents()
    {
        return [
            ProductListingCriteriaEvent::class => 'handleListingRequest',
        ];
    }

    public function handleListingRequest(ProductListingCriteriaEvent $event): void
    {
        $event->getCriteria()->addAssociation('properties');
    }
}

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![devnullroot](https://avatars.discourse-cdn.com/v4/letter/d/3bc359/32.png) [@devnullroot](https://forum.shopware.com/u/devnullroot)\
**Post date:** [1. September 2020 um 11:09 UTC](https://forum.shopware.com/t/produkt-eigenschaften-im-listing-get-article-properties-in-listing/66080/7 "2020-09-01T11:09:34Z")

</div>

Moin @s\_verweyen‍,

dank euerer Vorarbeit konnte auch ich die Properties im Listing auslesen und ausgeben, mit

```
$event->getCriteria()->addAssociation('properties.group')

```

ebenfalls die zugehörigen Groups. Danke also schonmal dafür!

Wo ich aber jetzt ein totales Brett vor dem Kopf habe, ist dass ich die propertyGroups natürlich sortiert brauche, das Feld “sortedProperties” des product-Objektes in twig aber “null” ist.

Kann mir vielleicht jemand einen kleinen Schubs in die richtige Richtung geben (ein großer wäre auch ok ;)) ?

Besten Dank und Grüße,  
devnullroot

---

<div class="post-metadata">

**Author:** ![devnullroot](https://avatars.discourse-cdn.com/v4/letter/d/3bc359/32.png) [@devnullroot](https://forum.shopware.com/u/devnullroot)\
**Post date:** [4. September 2020 um 12:07 UTC](https://forum.shopware.com/t/produkt-eigenschaften-im-listing-get-article-properties-in-listing/66080/8 "2020-09-04T12:07:09Z")

</div>

Der Vollständigkeit halber, falls jemand hier landet: Ich habe meine Lösung in diesem Thread geposted:

[https://forum.shopware.com/discussion/64849/ausgabe-von-einzelnen-eigenschaften-in-der-kategorieuebersicht](https://forum.shopware.com/discussion/64849/ausgabe-von-einzelnen-eigenschaften-in-der-kategorieuebersicht)

---

<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 14:03 UTC](https://forum.shopware.com/t/produkt-eigenschaften-im-listing-get-article-properties-in-listing/66080/10 "2021-04-22T14:03:14Z")

</div>

Genial, danke dir!!!  
Leider existiert der Beitrag nicht mehr. Könntest du das vielleicht nochmal posten?  
Würde mich nämlich interessieren 🙂

---

<div class="post-metadata">

**Author:** ![devnullroot](https://avatars.discourse-cdn.com/v4/letter/d/3bc359/32.png) [@devnullroot](https://forum.shopware.com/u/devnullroot)\
**Post date:** [23. April 2021 um 07:33 UTC](https://forum.shopware.com/t/produkt-eigenschaften-im-listing-get-article-properties-in-listing/66080/11 "2021-04-23T07:33:50Z")

</div>

Moinsen @AlexBS ,

wie ich sehe, hast Du den Thread schon gefunden, für alle Anderen:

> [@Ausgabe von einzelnen Eigenschaften in der Kategorieübersicht](https://forum.shopware.com/t/ausgabe-von-einzelnen-eigenschaften-in-der-kategorieubersicht/63533/12):
>
> So, war gar nicht so kompliziert wie ich dachte [Smile] Im Subscriber folgenden Event hinzufügen: ProductEvents::PRODUCT\_LOADED\_EVENT =\> "onProductLoaded" Die Methode sieht dann grob so aus: public function onProductLoaded(EntityLoadedEvent $event): void { if ( !($event-\>getContext()-\>getSource() instanceof \Shopware\Core\Framework\Api\Context\SalesChannelApiSource) ) { return; } foreach ($event-\>getEntities() as $productEntity) { /\*\* @var SalesChannelProductEnti…

Beste Grüße,  
devnullroot

---

<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:** [23. April 2021 um 08:06 UTC](https://forum.shopware.com/t/produkt-eigenschaften-im-listing-get-article-properties-in-listing/66080/12 "2021-04-23T08:06:41Z")

</div>

Wer suchet, der findet 🙂 Danke nochmal, das ist echt hilfreich gewesen.

---

<div class="post-metadata">

**Author:** ![christian.werner](https://avatars.discourse-cdn.com/v4/letter/c/f05b48/32.png) [@christian.werner](https://forum.shopware.com/u/christian.werner)\
**Post date:** [30. Mai 2024 um 17:30 UTC](https://forum.shopware.com/t/produkt-eigenschaften-im-listing-get-article-properties-in-listing/66080/13 "2024-05-30T17:30:40Z")

</div>

Für Shopware 6.6 und angepasstes Event, was Performance schonender ist:  
services.xml

```auto
 <service id="XXXXXXXX\Subscriber\ListingPropertiesSubscriber">
            <tag name="kernel.event_subscriber" priority="5000"/>
        </service>

```

Subscriber:

```auto
namespace XXXXXXXXX\Subscriber;

use Shopware\Core\Content\Product\Events\ProductListingCriteriaEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

class ListingPropertiesSubscriber implements EventSubscriberInterface {

    public static function getSubscribedEvents(): array
    {
        return [
            ProductListingCriteriaEvent::class => ['addPropertiesGroup', 500],
        ];
    }

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

}

```
