Neu JTL Shop5 ... Merkmalwerte mit 0 Treffer ausblenden

wawi-dl

Sehr aktives Mitglied
29. April 2008
6.781
833
Hallo,

wir wollen im JTL Shop 5 komplett mit Merkmalen arbeiten.

Die Merkmalübersicht befindet sich links in der Leiste, wenn ich eine Oberkategorie geöffnet habe, sehen wir alle Merkmale und Merkmalwerte.
Sobald ich nun aber ein Merkmalwert angeklickt habe, möchte ich alle weiteren Merkmalwerte mit "0" Treffer ausblenden.

Wir haben die Option Trefferanzahl bei Merkmalfiltern anzeigen (Einstellung: 1787) aktiviert "Trefferanzahl auch bei möglicher Mehrfachauswahl anzeigen (performancelastig)", was sehr performancelastig sein soll und wir auch bemerkt haben.
Hier konnte ich aber im Template einen "display: none" setzen, dass alle Werte mit 0 verschwinden, klappt sehr gut ... Performance aber bescheiden.


Warum ist denn dies überhaupt so performancelastig??? Wir würden in den sauren Apfel beißen uns sagen, OK wir verzichten auf die Mengenanzahl, leider greift aber dann unsere Anpassung oben nicht mehr.
Wir kann ich also Merkmalwerte filtern, wenn es keine Treffer dazu gibt?

Danke


/snippets/filter/characteristic.tpl (Zeile 31)
{extends file="{$parent_template_path}/snippets/filter/characteristic.tpl"}

{block name='snippets-filter-characteristic'}
{$is_dropdown = ($Merkmal->cTyp === 'SELECTBOX')}
{$limit = $Einstellungen.template.productlist.filter_max_options}
{$collapseInit = false}
{$showFilterCount = $Einstellungen.navigationsfilter.merkmalfilter_trefferanzahl_anzeigen !== 'N'
&& !($Einstellungen.navigationsfilter.merkmalfilter_trefferanzahl_anzeigen === 'E' && $Merkmal->getData('isMultiSelect'))}
<div class="filter-search-wrapper">
{block name='snippets-filter-characteristic-include-search-in-items'}
{include file='snippets/filter/search_in_items.tpl' itemCount=count($Merkmal->getOptions()) name=$Merkmal->getName()}
{/block}
{if $Merkmal->getData('cTyp') === 'BILD'}
<ul class="nav nav-filter-has-image">
{/if}
{foreach $Merkmal->getOptions() as $attributeValue}
{$attributeImageURL = null}
{if ($Merkmal->getData('cTyp') === 'BILD' || $Merkmal->getData('cTyp') === 'BILD-TEXT')}
{$attributeImageURL = $attributeValue->getImage(\JTL\Media\Image::SIZE_XS)}
{if $attributeImageURL|strpos:$smarty.const.BILD_KEIN_ARTIKELBILD_VORHANDEN !== false
|| $attributeImageURL|strpos:$smarty.const.BILD_KEIN_MERKMALWERTBILD_VORHANDEN !== false}
{$attributeImageURL = null}
{/if}
{/if}
{if $is_dropdown}
{block name='snippets-filter-characteristics-dropdown'}
{dropdownitem
class="{if $attributeValue->isActive()}active{/if} filter-item"
href="{if !empty($attributeValue->getURL())}{$attributeValue->getURL()}{else}#{/if}"
title="{if $Merkmal->getData('cTyp') === 'BILD'}{$attributeValue->getValue()|escape:'html'}{/if}"
style="{if $attributeValue->getCount()==0}display: none;{/if}"
}
<div class="box-link-wrapper">
<i class="far fa-{if $attributeValue->isActive()}check-{/if}square snippets-filter-item-icon-right"></i>
{if !empty($attributeImageURL)}
{image lazy=true webp=true
src=$attributeImageURL
alt=$attributeValue->getValue()|escape:'html'
class="vmiddle"
}
{/if}
<span class="word-break filter-item-value">{$attributeValue->getValue()|escape:'html'}</span>
{if $showFilterCount}
{badge variant="outline-secondary"}{$attributeValue->getCount()}{/badge}
{/if}
</div>
{/dropdownitem}
{/block}
{else}
{if $limit != -1 && $attributeValue@iteration > $limit && !$collapseInit}
{block name='snippets-filter-characteristics-more-top'}
<div class="collapse {if $Merkmal->isActive()} show{/if}" id="box-collps-filter-attribute-{$Merkmal->getValue()}" aria-expanded="false" role="button">
<ul class="nav {if $Merkmal->getData('cTyp') !== 'BILD'}flex-column{/if}">
{$collapseInit = true}
{/block}
{/if}
{block name='snippets-filter-characteristics-nav'}
{if {$Merkmal->getData('cTyp')} === 'TEXT'}
{block name='snippets-filter-characteristics-nav-text'}
{link class="{if $attributeValue->isActive()}active{/if} filter-item"
href="{if !empty($attributeValue->getURL())}{$attributeValue->getURL()}{else}#{/if}"
title="{$attributeValue->getValue()|escape:'html'}"
rel="nofollow"
}
<div class="box-link-wrapper" {if $attributeValue->getCount()==0}style="display: none;"{/if}>
<i class="far fa-{if $attributeValue->isActive()}check-{/if}square snippets-filter-item-icon-right"></i>
{if !empty($attributeImageURL)}
{image lazy=true webp=true
src=$attributeImageURL
alt=$attributeValue->getValue()|escape:'html'
class="vmiddle"
}
{/if}
<span class="word-break filter-item-value">{$attributeValue->getValue()|escape:'html'}</span>
{if $showFilterCount}
{badge variant="outline-secondary"}{$attributeValue->getCount()}{/badge}
{/if}
</div>
{/link}
{/block}
{elseif $Merkmal->getData('cTyp') === 'BILD' && $attributeImageURL !== null}
{block name='snippets-filter-characteristics-nav-image'}
{link href="{if !empty($attributeValue->getURL())}{$attributeValue->getURL()}{else}#{/if}"
title="{if $showFilterCount}{$attributeValue->getValue()|escape:'html'}: {$attributeValue->getCount()}{else}{$attributeValue->getValue()|escape:'html'}{/if}"
data=["toggle"=>"tooltip", "placement"=>"top", "boundary"=>"window"]
class="{if $attributeValue->isActive()}active{/if} filter-item"
rel="nofollow"
}
{image lazy=true webp=true
src=$attributeImageURL
alt=$attributeValue->getValue()|escape:'html'
title="{if $showFilterCount}{$attributeValue->getValue()|escape:'html'}: {$attributeValue->getCount()}{else}{$attributeValue->getValue()|escape:'html'}{/if}"
class="vmiddle filter-img"
}
<span class="d-none filter-item-value">
{$attributeValue->getValue()|escape:'html'}
</span>
{/link}
{/block}
{else}
{block name='snippets-filter-characteristics-nav-else'}
{link href="{if !empty($attributeValue->getURL())}{$attributeValue->getURL()}{else}#{/if}"
title="{if $showFilterCount}{$attributeValue->getValue()|escape:'html'}: {$attributeValue->getCount()}{else}{$attributeValue->getValue()|escape:'html'}{/if}"
class="{if $attributeValue->isActive()}active{/if} filter-item"
rel="nofollow"
}
<div class="box-link-wrapper" {if $attributeValue->getCount()==0}style="display: none;"{/if}>
{if !empty($attributeImageURL)}
{image lazy=true webp=true
src=$attributeImageURL
alt=$attributeValue->getValue()|escape:'html'
title="{if $showFilterCount}{$attributeValue->getValue()|escape:'html'}: {$attributeValue->getCount()}{else}{$attributeValue->getValue()|escape:'html'}{/if}"
class="vmiddle filter-img"
}
{/if}
<span class="word-break filter-item-value">
{$attributeValue->getValue()|escape:'html'}
</span>
{if $showFilterCount}
{badge variant="outline-secondary"}{$attributeValue->getCount()}{/badge}
{/if}
</div>
{/link}
{/block}
{/if}
{/block}
{/if}
{/foreach}
{if !$is_dropdown && $limit != -1 && $Merkmal->getOptions()|count > $limit}
{block name='snippets-filter-characteristics-more-bottom'}
</ul>
</div>
<div class="snippets-filter-show-all">
{button variant="link"
role="button"
data=["toggle"=> "collapse", "target"=>"#box-collps-filter-attribute-{$Merkmal->getValue()}"]}
{lang key='showAll'}
{/button}
</div>
{/block}
{/if}
{if $Merkmal->getData('cTyp') === 'BILD'}
</ul>
{/if}
</div>
{/block}
 

golvreven

Gut bekanntes Mitglied
1. Oktober 2020
284
22
Hallo zusammen,

meine Frage geht auch in die Richtung: Wie kann ich verhindern, dass Nutzer bei der Filterung auf Kombinationen stoßen, zu denen es keine Ergebnisse gibt?

Viele Grüße
g.
 

golvreven

Gut bekanntes Mitglied
1. Oktober 2020
284
22
Hallo Sirko,

das wusste ich nicht. Ist aber auch recht aktuell (07.04.). Als Nutzer ist es sehr frustrierend, wenn ich mich durch die Merkmale klicke und ständig "0 Ergebnisse" angezeigt bekomme. Da breche ich das Ganze nach kurzer Zeit ab und zweifle an der Sinnhaftigkeit der Filterfunktion.

Viele Grüße
g.
 

ple

Sehr aktives Mitglied
20. August 2019
904
189
Mh, also bei mir ist das so, aber ich kann dir nicht genau sagen, ob es am Merkmalplugin liegt oder Kategorieplugin von @zaxxo oder meine Templateänderungen (ist noch nicht optimal, ich weiß) . Oder ich habe dein Problem falsch verstanden.
Hier mal ein Beispiel
https://numiverse.com/Edelmetalle
- Ohne ein Feingewicht auszuwählen stehen somit alle Feingewichte der Artikel zum Filtern zur Verfügung.
- Filtert man jetzt nach Nominal mit 1/4 Dollar, dann kann man unter Feingewicht nur noch die anklicken, die auch gelistet werden,.

Oder hier,
https://numiverse.com/Muenzen_2
Filtert man Nominal mit 1 Dollar, verschwinden alle anderen Filter.

Hier mal die Plugins, die ich im Einsatz habe mit dem Shop 5.3.3
https://www.zaxxo.de/Artikel-aus-Unterkategorien-auch-in-Oberkategorien-anzeigen
https://www.zaxxo.de/Erweiterte-Merkmale
 

golvreven

Gut bekanntes Mitglied
1. Oktober 2020
284
22
Hallo ple,

mir geht es auch um kombiniere Filtermerkmale. In etwa so: Ein Kunde filtert in der Kategorie Schuhe nach Schuhen mit Klettverschluss. Und kann diesen Filter weiterhin mit dem Filter Schnürsenkellängen kombinieren. Was ja keinen Sinn macht, weil 0 Ergebnisse dahinterstehen.

Viele Grüße
g.
 

ple

Sehr aktives Mitglied
20. August 2019
904
189
Wäre doch aktuell bei mir so. Man filtert nach 1/4 Dollar, unter Feingewicht oder Land verschwinden alle anderen Merkmal, die die Artikel halt nicht haben. Wäre ja blöd wenn er Land Kanada auswählen könnte, es aber keine kombination gibt.
Oder ich hab ne Brett vorm Kopf.
 

golvreven

Gut bekanntes Mitglied
1. Oktober 2020
284
22
Bei uns ist es leider nicht so. Die Filtermerkmale, die zu 0 Ergebnissen führen, bleiben auswählbar.
 

kutti

Sehr aktives Mitglied
23. Dezember 2009
514
25
39638 Gardelegen OT-Letzlingen
Firma
Deine-Stickerei.de
Vor nicht all zu langer Zeit wurden die Ergebnisse hinter den einzelnen Merkmalen noch angezeigt. Leider ist das jetzt verschwunden, warum auch immer....
585107268_32300260079618128_1639168088847972895_n.jpg
 

wawi-dl

Sehr aktives Mitglied
29. April 2008
6.781
833
wir haben nur die 2. Option gewählt, wir haben das damals mit Template Snacky integrieren lassen, weil diese Option richtig Power braucht vom Server
 

Mr.Fox

Aktives Mitglied
19. November 2013
74
7
Mir fehlt bei JTL mittlerweile wirklich jedes Verständnis, wie solche grundlegenden Shopfunktionen plötzlich nicht mehr funktionieren können. Jedes andere 0815 System kann das, nur JTL ist der Meinung, diese Funktion rauszuschmeißen und dann einen völlig bekloppten Workaround mit extremer Serverbelastung zu implementieren... Wie blöd ist es für den Kunden, wenn er eine Liste mit 25 Merkmalwerten aufklappt und hinter 24 steht eine "0" und er muss den einen Wert suchen, der funktioniert. Noch viel schlimmer, wenn man die Trefferanzahl ausblendet. Damit sind die Filter absolut unbrauchbar
 
  • Gefällt mir
Reaktionen: kutti

Ähnliche Themen