Sortierung im Listing

Hallo, ich habde die Sortierung im Listing auf die Artikelbezeichnung im Backend geändert. Nun ist es so, dass im Frontend trotzdem im Standard “Erscheinungsdatum” steht. Hat es schon jemand hinbekommen unter 4.3.2 diese Anzeige im Template zu ändern? Geändert bekomme ich die Bezeichnung, aber dann ist Erscheinungsdatum = Artikelbezeichnung und umgekehrt: listing_actions.tpl: [code]

{s name=‘ListingLabelSortDashone’}Sortierung{/s}
{if $sSort eq 1} {s name=‘ListingSortRelease’}{/s} {/if} {if $sSort eq 2} {s name=‘ListingSortRating’}{/s} {/if} {if $sSort eq 3} {s name=‘ListingSortPriceLowest’}{/s} {/if} {if $sSort eq 4} {s name=‘ListingSortPriceHighest’}{/s} {/if} {if $sSort eq 5} {s name=‘ListingSortName’}{/s} {/if}

  • {s namespace=“frontend/listing/listing_actions” name=‘ListingSortRelease’}{/s}
  • {s namespace=“frontend/listing/listing_actions” name=‘ListingSortRating’}{/s}
  • {s namespace=“frontend/listing/listing_actions” name=‘ListingSortPriceLowest’}{/s}
  • {s namespace=“frontend/listing/listing_actions” name=‘ListingSortPriceHighest’}{/s}
  • {s namespace=“frontend/listing/listing_actions” name=‘ListingSortName’}{/s}

[/code] Geändert in: [code]{s name=‘ListingLabelSortDashone’}Sortierung{/s}
{if $sSort eq 5} {s name=‘ListingSortRelease’}{/s} {/if} {if $sSort eq 2} {s name=‘ListingSortRating’}{/s} {/if} {if $sSort eq 3} {s name=‘ListingSortPriceLowest’}{/s} {/if} {if $sSort eq 4} {s name=‘ListingSortPriceHighest’}{/s} {/if} {if $sSort eq 1} {s name=‘ListingSortName’}{/s} {/if}

  • {s namespace=“frontend/listing/listing_actions” name=‘ListingSortRelease’}{/s}
  • {s namespace=“frontend/listing/listing_actions” name=‘ListingSortRating’}{/s}
  • {s namespace=“frontend/listing/listing_actions” name=‘ListingSortPriceLowest’}{/s}
  • {s namespace=“frontend/listing/listing_actions” name=‘ListingSortPriceHighest’}{/s}
  • {s namespace=“frontend/listing/listing_actions” name=‘ListingSortName’}{/s}

[/code] Wenn ich also 1 durch 5 tausche, 5 durch 1 und unten das Gleiche, funktioniert zwar die Anzeige, aber wie gesagt, die Funktionen sind vertauscht. Ich steige da absolut nicht durch, wie dieser Code zu verstehen ist. Jemand eine Idee??? Viele Grüße!

Jede Sortierung hat eine Zahl (1-5) und die passende Bezeichnung{s name=…} dazu. Wenn du nur die Zahl änderst und die Bezeichnung nicht, dann stimmt das natürlich nicht mehr überein. Wenn dann müsstest du ganze Zeilen vertauschen und nicht nur eine Zahl.

Hallo, verstehe ich nicht. Ich habe doch die ganzen Zeilen vertauscht. Wenn ich bei 1 und 5 den Namen ändere, funktioniert das auch nicht. Ich verstehe nicht wie das funktionieren soll.

Hallo, kann mir hier denn niemand helfen!?:wtf:

brettvormkopp hat dir die Lösung bereits gesagt! Jede Sortierung hat eine Id mit einem dazugehörigen Namen. Es reicht nicht nur die Id oder den Namen der ausgegeben wird zu tauschen, sondern die gesamten Zeilen müssen umsortiert werden.

Hey, gibt es für das Listing auch eine Möglichkeit die Produkte einfach zufällig anzuordnen?

@shopper Nein; nicht ohne Plug-In.

1 „Gefällt mir“

@eierund schrieb:

ich habde die Sortierung im Listing auf die Artikelbezeichnung im Backend geändert.
Nun ist es so, dass im Frontend trotzdem im Standard „Erscheinungsdatum“ steht.

Das ist in der Tat ein Problem bei Shopware. Es gibt aber ein günstiges Plugin (http://store.shopware.com/mkx2855569985429/standard-sortierung-fuer-kategorielisten.html) das dieses Problem einfach behebt. 

Hi,

es muss nicht immer unbedingt ein Plugin sein, was evtl. dann wieder an anderer Stelle Probleme bereitet. Es geht auch mit einem Artikel-Attribut. So kann man die Artikel nach belieben sortieren. Diese Zeile hier ändern:

/htdocs/engine/Shopware/Bundle/SearchBundleDBAL/SortingHandler/ProductNameSortingHandler.php

ersetze:

$query->addOrderBy(‘product.name’, $sorting->getDirection())
->addOrderBy(‘product.id’, $sorting->getDirection());

durch:

$query->addOrderBy(‘productAttribute.attr6’, $sorting->getDirection())

   ->addOrderBy(‘product.id’, $sorting->getDirection());