# Sortierung im Listing mit Varianten

**URL:** <https://forum.shopware.com/t/sortierung-im-listing-mit-varianten/86597>\
**Category:** Shopware 6 (German)\
**Created:** [31. März 2021 um 08:03 UTC](https://forum.shopware.com/t/sortierung-im-listing-mit-varianten/86597 "2021-03-31T08:03:38Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![mbdus](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/mbdus/32/12997_2.png) [@mbdus](https://forum.shopware.com/u/mbdus)\
**Post date:** [31. März 2021 um 08:03 UTC](https://forum.shopware.com/t/sortierung-im-listing-mit-varianten/86597/1 "2021-03-31T08:03:38Z")

</div>

Hallo zusammen,

Ich habe eine Frage zur Sortierung im Listing:  
Varianten werden nicht zwischen den Hauptprodukten sortiert. Warum? Die Hauptprodukte werden richtig sortiert. Sobald ein Variantenprodukt dazu kommt, funktioniert es nicht mehr.  
Das sind meine Code-Ausschnitte:  
class ProductExtension extends EntityExtension  
{  
public function extendFields(FieldCollection $collection): void  
{  
$collection-\>add(  
(new SortOneToMany(  
‚mbdusSort‘,  
ProductCategoriesSortDefinition::class,  
‚product\_id‘,  
‚id‘  
))-\>addFlags(new Extension())  
);  
}

```
public function getDefinitionClass(): string
{
    return ProductDefinition::class;
}

```

}

class ProductCategoriesSortDefinition extends EntityDefinition  
{

```
public function getEntityName(): string
{
    return 'mbdus_productcategoriessort';
}

protected function defineFields(): FieldCollection
{
    return new FieldCollection([
        (new IdField('id', 'id'))->addFlags(new Required(), new PrimaryKey()),
        (new FkField('product_id', 'productId', ProductDefinition::class))->addFlags(new Required()),
        (new FkField('category_id', 'categoryId', CategoryDefinition::class))->addFlags(new Required()),
        (new IntField('sort', 'sort'))->addFlags(new Required()),
        (new ManyToOneAssociationField('product', 'product_id', ProductDefinition::class, 'id')),
        (new ManyToOneAssociationField('category', 'category_id', CategoryDefinition::class, 'id')),
    ]);
}

```

}

public static function getSubscribedEvents()  
{  
return [  
ProductListingCriteriaEvent::class =\> ‚addCriteria‘  
];  
}

$productListingCriteriaEvent-\>getCriteria()-\>resetSorting();  
$productListingCriteriaEvent-\>getCriteria()-\>addSorting(new FieldSorting(‚mbdusSort.sort‘, FieldSorting::ASCENDING));

Was kann ich machen, um Varianten, die in der Datenbank mit der parent\_id stehen, auch mit zu berücksichtigen?

---

<div class="post-metadata">

**Author:** ![mbdus](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/mbdus/32/12997_2.png) [@mbdus](https://forum.shopware.com/u/mbdus)\
**Post date:** [1. April 2021 um 09:01 UTC](https://forum.shopware.com/t/sortierung-im-listing-mit-varianten/86597/2 "2021-04-01T09:01:30Z")

</div>

Ich versuche nochmal es anders zu formulieren.

Ich möchte ein Produkt erweitern und in der Kategorie darauf zugreifen. Wenn es sich jedoch um einen Variantenartikel handelt, wird evtl. eine andere product\_id verwendet als im Adminbereich festgelegt und gespeichert. D.h. ich müsste entweder das Produkt auch mit der parent\_id erweitern, dann weiß ich aber trotzdem nicht welche Variante ausgespielt wird, oder ich treffe im Adminbereich schon die richtige Variante, obwohl ich nur den Stammartikel auswähle. Ich hoffe, mich etwas verständlicher ausgedrückt zu haben. Wie kann ich einen Artikel erweitern, wenn in der Kategorie die Variante angezeigt wird? Die Variante hat eine andere product\_id als der Stammartikel.  
Grüße  
Mathias

---

<div class="post-metadata">

**Author:** ![mbdus](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/mbdus/32/12997_2.png) [@mbdus](https://forum.shopware.com/u/mbdus)\
**Post date:** [9. April 2021 um 07:43 UTC](https://forum.shopware.com/t/sortierung-im-listing-mit-varianten/86597/3 "2021-04-09T07:43:52Z")

</div>

Ich trage jetzt auch die Varianten in die eigene Tabelle ein. D.h. ich habe eine 1:1 Beziehung zur „product“-Tabelle. Es geht aber bestimmt auch anders bzw. besser. Über einen Denkanstoß wäre ich dankbar.  
Grüße
