Produkte & Filter live nachladen: Wie blendet man nicht mehr kombinierbare Eigenschaften aus?

Ich bin froh, dass man bei SW jetzt auch die Filter automatisch nachladen kann nach Auswahl.

Allerdings ist es extrem unübersichtlich, wenn man viele Produkteigenschaften in den Filtern hat und die nicht mehr möglichen Eigenschaften dann ausgegraut und disabled trotzdem noch dargestellt werden im Dropdown. Teilweise muss man dann ewig im Dropdown scrollen, um verfügbare Eigenschaften zu finden. Das ist leider praxisfern.

Wo muss ich ansetzen, um im Dropdown nur die in der ausgewählten Kombination möglichen Eigenschaften anzuzeigen? In filter-multi-selection.tpl sehe ich keine Möglichkeit …

Bin dankbar für jeden Hinweis.

Hat wirklich niemand einen Tipp? Einen klitzekleinen?

Schau mal im Plugin Store, da gibt es einige Plugins die das bieten…

Hättest du ein Beispiel? Danke. 

Einfach mal nach „filter“ suchen und die Beschreibungen anschauen (das zweite und dritte bieten das mit den Abhängigkeiten laut Beschreibung)

Danke für deine Antwort. Hast du meine Frage verstanden? Es geht nicht um die Abhängigkeiten, es geht um das Ausblenden der nicht kombinierbaren Eigenschaften. 

Hm scheinbar nicht :slight_smile:

Wo genau liegt der Unterschied zwischen Abhängigkeiten (also Option A kann nicht mehr ausgewählt werden wenn Option B bereits gewählt ist) und “nicht kombinierbaren Eigenschaften” (sprich, Option A kann nicht mit Option B zusammen ausgewählt werden) ?

Ich hänge einen Screenshot an, vielleicht versteht man das dann besser.

In dem Beispielt muss man erst im Dropdown ewig scrollen, bis man wieder eine Eigenschaft findet, die aktiv ist. 
Es ist extrem störend, dass nicht aktive (also nicht kombinierbare) Eigenschaften überhaupt angezeigt werden.

Du kannst von vielen Plugins auch einfach Testversionen ausprobieren und schauen ob sie deine Anforderungen erfüllen. Oder beim Hersteller anfragen…

Hi,

da ich auch gerade dran sitze… Du könntest die jquery.filter-component.js erweitern/überschreiben.

;(function ($, window) {
    'use strict';

    $.overridePlugin('swFilterComponent', {
        
        /**
         * Sets or removes the is--disabled class for the provided element
         * @param $element
         * @param disabled
         */
        setDisabledClass: function($element, disabled) {
            $element.removeClass('is--disabled');
            $element.closest( 'li' ).removeClass('demo--disabled');
            if (disabled) {
                $element.addClass('is--disabled');
                $element.closest( 'li' ).addClass('demo--disabled');
            }
        },
  
    });
})(jQuery, window);

und dann im css/less 

.demo--disabled {
    display: none;
}

Vielleicht hilft das ja noch jemandem weiter.

VG

 

2 „Gefällt mir“

Wieso in aller Welt gibt es dafür keine Einstellung in SW ? Es mach null Sinn den Benutzer durch ellenlange Listen mit ausgegrauten Optionenj scrollen zu lassen - wer hat sich sowas ausgedacht?

Habe eine “jquery.filter-component.js” mit Deinem Snippet in mein Theme unter  “/themes/Frontend/MeinTheme/frontend/_public/src/js/jquery.filter-component.js” abgelegt - wird leider offensichtlich nicht geladen, woarn kann das liegen ? SW5.4

Du musst in der Theme.php angeben, welche js-Dateien vom Theme geladen werden sollen, und zwar dem array $javascript.

https://developers.shopware.com/designers-guide/css-and-js-files-usage/#add-javascript-files

protected $javascript = [
	'src/js/jquery.filter-component.js'
];