Hledání v autodílech je jiné než hledání v obyčejném eshopu. Uživatel nehledá podle názvu produktu — zadá kód dílu, model auta nebo prostě „brzdy na Fabii 2015”. Výsledky musí být přesné a zároveň prolezlé, protože jeden díl může mít deset variant podle výrobce.
A až donedávna to vypadalo tak, že vyhledávání a katalog byly dvě oddělené zkušenosti: každá s vlastním UI, vlastním řazením a vlastními filtry. Nebo bez nich.
Filtry na obou místech, jedna komponenta
Teď mají výsledky vyhledávání stejnou lištu filtrů jako katalog vozidel. Stejné komponenty, stejná logika. Můžeš filtrovat podle značky (Bosch, TRW, Febi…), přepnout jen na skladem položky a řadit podle ceny — od nejlevnějších nebo nejdražších.
Všechno jede přes URL parametry. Když najdeš sadu filtrů, která ti sedí, prostě zkopíruješ odkaz a pošleš ho kolegovi. Žádný „nastav si to stejně” — odkaz otevře přesně ta samá data.
/search?q=brzdy+Fabia&brand= Bosch&inStock=1&sort=price_asc
Co se muselo stát, aby to fungovalo
Klíčové rozhodnutí: nepsat novou filter komponentu. V katalogu už jsme měli ProductFilters — ten dostal novou schopnost řadit podle ceny, a na stránce vyhledávání jsme ho zapojili s prázdnými skupinami vozidel (ty v kontextu vyhledávání nedávají smysl).
Řazení cen funguje ve dvou režimech:
- Přihlášený uživatel — bere vlastní smluvní cenu
- Nepřihlášený — maloobchodní ceník
Položky s cenou „na dotaz” jsou vždy na konci seznamu, ať už řadíš jakkoli. Protože kdo potřebuje u řazení hledat, jestli ta cena je nebo není.
Vedlejší efekty
Cestou jsme opravili pár věcí, které by samy o sobě nestačily na článek, ale dohromady dělají vyhledávání použitelné:
- Duplicitní vyhledávací pole — stránka výsledků měla vlastní search box kromě toho v hlavičce. Oba dělaly totéž, ale nebylo jasné, který výsledky řídí. Ten v results panelu zmizel.
- Nativní select → Combobox — rozbalovací seznam pro řazení byl OS-nativní