Neu Unterschiedliche Sortierung in Kategorien voreinstellen?

rico2605

Aktives Mitglied
8. Juli 2019
7
0
Um es gleich vorweg zu nehmen, ich habe bereits google bemüht und im Forum gesucht. Nix dabei, das mir weiterhilft.

Unser Problem:
Verlagshaus mit eigenen Zeitschriften, die monatlich erscheinen und Bücher die nur einmal erscheinen.

Kategorie Zeitschriften macht es natürlich Sinn, dass diese nach Erscheinungsdatum sortiert sind und das neueste Heft ganz oben.
Bei den Büchern sollte es eine Sortierung als Standard geben, die nach Bestseller oder nach manuelle Sortierung läuft. Wir haben eigene Bücher und Fremdwerke. Natürlich wollen wir eigene Bücher oben haben.

Wie kann ich das bewerkstelligen?
Hat jemand eine Idee?
 

rico2605

Aktives Mitglied
8. Juli 2019
7
0

Danke für den Tipp, leider nicht hilfreich.

Es geht um unterschiedliche Voreinstellung je Kategorie!
In den Einstellungen kann ich eine Sortierart als Standard für das gesamte Shop definieren, die ist wegen den Zeitschriften "Erscheinungsdatum".

Ich will aber je Kategorie ein Sortierart. Bücher = Relevanz oder Sortierung (da greift ja die WAWI Einstellung von 0- 9). Zeitschriften = Erscheinungsdatum

Nehme ich in der Einstellung vom Shop "Sortierung" greift die WAWI Sortierung aus den Stammdaten, soweit ok. Das gilt aber dann auch wieder für alle Kategorien. Und bei einigen 100 Zeitschriften dann manuell in der WAWI zu sortieren ist zu aufwendig.

Gibt es keine Einstellung oder Plugin, wo ich einstellen kann Kategorie 1 = Nach Datum, Kategorie 2 = Nach Bestseller usw.?
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.494
293
Danke für den Tipp, leider nicht hilfreich.

Es geht um unterschiedliche Voreinstellung je Kategorie!
In den Einstellungen kann ich eine Sortierart als Standard für das gesamte Shop definieren, die ist wegen den Zeitschriften "Erscheinungsdatum".

Ich will aber je Kategorie ein Sortierart. Bücher = Relevanz oder Sortierung (da greift ja die WAWI Einstellung von 0- 9). Zeitschriften = Erscheinungsdatum

Nehme ich in der Einstellung vom Shop "Sortierung" greift die WAWI Sortierung aus den Stammdaten, soweit ok. Das gilt aber dann auch wieder für alle Kategorien. Und bei einigen 100 Zeitschriften dann manuell in der WAWI zu sortieren ist zu aufwendig.

Gibt es keine Einstellung oder Plugin, wo ich einstellen kann Kategorie 1 = Nach Datum, Kategorie 2 = Nach Bestseller usw.?
In dem geposteten Link das erste Attribut "artikelsortierung", da bitte mal die Funktionsbeschreibung durchlesen. Danke.
 

pokershop

Gut bekanntes Mitglied
25. Dezember 2007
129
4
Gibt es eine Möglichkeit, dass ich die die Artikel in den Kategorien so ordne:
Kat 1: 1 2 3 4 5
Kat 2: 3 4 1 5 2
Kat 3: 5 4 2 3 1

Ich habe im JTL Shop 4 immer das Plugin Sortable von 360 verwendet, aber das funktioniert dann ja nicht mehr beim Upgrade auf Shop5.

Wie bewerktstellige ich es, dass ich in jeder Kategorie anders sortieren kann?

DAnke,

Josef
 

MaxWe

Sehr aktives Mitglied
6. August 2018
311
42
Hamburg
Gibt es eine Möglichkeit, dass ich die die Artikel in den Kategorien so ordne:
Kat 1: 1 2 3 4 5
Kat 2: 3 4 1 5 2
Kat 3: 5 4 2 3 1

Ich habe im JTL Shop 4 immer das Plugin Sortable von 360 verwendet, aber das funktioniert dann ja nicht mehr beim Upgrade auf Shop5.

Wie bewerktstellige ich es, dass ich in jeder Kategorie anders sortieren kann?

DAnke,

Josef
Wenn ich das richtig verstehe möchtest du die Artikel in jeder Kategorie anders sortieren? Ohne System bzw. Anhalt fällt mir da nur eine gezielte Steuerung für jeden Artikel / für jede Kategorie ein..
Sieht halt ziemlich random aus^^
 

pokershop

Gut bekanntes Mitglied
25. Dezember 2007
129
4
ja aber der artikel ist ja in verschiedenen Kategorien, aber sollte in kategorie 1 auf platz 4 sein und kategorie 2 ganz hinten zb
 

MaxWe

Sehr aktives Mitglied
6. August 2018
311
42
Hamburg
Erster schneller Gedanke wäre ein Funktionsattribut im Artikel + Funktion im eigenen Template + Templateanpassung:
Attributname: kat_sortierung, Wert: {Kategoriename1}={Sortiernr}|{Kategoriename2}={Sortiernr}|{Kategoriename3}={Sortiernr}|...

Funktion in functions.php
PHP:
$smarty->register_function("sortByAttr", "sortByAttr");

function sortByAttr($params, &$smarty){
    //Sammel nötige Parameter
    $articles = isset($params['articles']) ? $params['articles'] : null;
    $catname = isset($params['catname']) ? $params['catname'] : null;
    //Wenn ein Parameter fehlt, dann gib direkt null zurück
    if(!$articles || !$catname){
        $smarty->assign($params['return'],null);
        return false;
    }

    //Initiiere leere Arrays zum Sortieren
    $sorted = array();
    $unsorted = array();
    //Iteriere über Artikel und fange das sortieren an.
    foreach($articles as $article){
        //Prüfe ob Attribut zum Sortieren in Artikel vorhanden
        $sortattr = (isset($article->FunktionsAttribute["kat_sortierung"]) && $article->FunktionsAttribute["kat_sortierung"] != '' ? $article->FunktionsAttribute["kat_sortierung"] : null);
        //Ja, prüfe zusätzlich ob aktueller übergebener Kategoriename im Attribut vorhanden ist.
        if($sortattr && strpos($sortattr,$catname)){
            //Ja, hole passenden Wert aus Attribut
            $sortattr = explode('|',$sortattr);
            $catmatch = array_filter($sortattr, function($var) use ($catname) { return (strpos($var,$catname) ? true : false); });
            $catmatch = explode('=',$catmatch);
            //Prüfe ob passender Wert nicht leer ist
            if($catmatch[1] != ''){
                //Ja, sortier Artikel in passendes Array ein
                $sorted[$catmatch[1]] = $article;
            }else{
                //Nein, Artikel in unsortiertes Array
                $unsorted[] = $article;
            }
        }else{
            //Nein, Artikel in unsortiertes Array
            $unsorted[] = $article;
        }
    }

    //Gib zusammengefügte Arrays zurück
    $smarty->assign($params['return'],array_merge($sorted,$unsorted));
}

Templateanpassung im Ordner productlist, index.tpl
Ggf. in eigenes Template einpassen
Code:
{* Erweiterung des Evo-Templates /productlist/index.tpl *}
{extends file="../../Evo/productlist/index.tpl"}

{block name="productlist-results"}
{sortByAttr articles=$Suchergebnisse->Artikel->elemente catname=$AktuelleKategorie->cName return=sortedArticles}
<div class="row {if $style !== 'list'}row-eq-height row-eq-img-height{/if} {$style}" id="product-list" itemprop="mainEntity" itemscope itemtype="http://schema.org/ItemList">
{foreach name=artikel from=$sortedArticles item=Artikel}
<div class="product-wrapper {$grid}" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<meta itemprop="position" content="{$smarty.foreach.artikel.iteration}">
{if $style === 'list'}
{include file='productlist/item_list.tpl' tplscope=$style}
{else}
{include file='productlist/item_box.tpl' tplscope=$style class='thumbnail'}
{/if}
</div>
{/foreach}
</div>
{/block}

Keine Garantie, habs nicht getestet.. Nur fix geschrieben, kanns aber morgen mal testen :)
 

pokershop

Gut bekanntes Mitglied
25. Dezember 2007
129
4
Gibt es dazu schon eine Lösung? Die Funktion ist doch so wichtig und das Problem sollten ja mehrere haben. Der Grund, dass ich noch nicht auf JTL5 umgestiegen bin ist dieser uns bald muss ich aber diesen Schritt gehen, aber ohne in jeder Kategorie anders zu sortieren graust mir davor. Gibt es schon eine Lösung?
 

pokershop

Gut bekanntes Mitglied
25. Dezember 2007
129
4
weiß man schon ob das Sortable Tool von solution360 auch bei Shop 5 funktioniert oder ob es schon eine andere Lösung gibt?
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.252
1.977
Berlin
Ja klar, einfach auf die Seite gehen und das Plugin herunterladen.
Alles andere erklärt sich dann fast von selbst, im Zweifelsfall dann immer melden und ich erkläre es per Teamviewer.

Irgendwann wird es dafür auch eine ausführliche Doku geben wie bei fast allen meinen Plugins aber hier ist wirklich kaum etwas zu tun.
 

Ähnliche Themen