Přeskočit na hlavní obsah

Instalace UpSearch Plugin

Tato příručka vás provede instalací a konfigurací UpSearch Plugin na vašem webu.

Požadavky

  • Přístupový token k projektu v API UpSearch (apiToken)
  • Stránka pro zobrazení výsledků vyhledávání

Vložení našeptávače

Našeptávač se do stránky vkládá následujícím snippetem:

<!DOCTYPE html>
<html lang="cs">
<head>
<!-- ... -->
<link href="https://cdn.upsearch.cz/projects/PROJEKT/upsearch.css" rel="stylesheet" />
</head>
<body>
<!-- ... -->
<div id="suggestElement"></div>

<script src="https://cdn.upsearch.cz/projects/PROJEKT/upSearchSuggest.js"></script>
<script>
window.upSearchSuggest('#suggestElement', {
resultsPageUrlPath: '/vysledky-vyhledavani',
apiToken: 'VAS_API_TOKEN',
});
</script>
</body>
</html>
Důležité

HTML element pro vložení našeptávače musí existovat v čase spuštění scriptu. Optimální umístění scriptu je těsně před uzavírací značku </body>.

Asynchronní inicializace

Pokud potřebujete script spustit asynchronně:

<script>
document.addEventListener('DOMContentLoaded', function() {
window.upSearchSuggest('#suggestElement', {
resultsPageUrlPath: '/vysledky-vyhledavani',
apiToken: 'VAS_API_TOKEN',
});
});
</script>

Vložení stránky s výsledky

Na stránku s výsledky vložte komponentu upSearchResults:

<!DOCTYPE html>
<html lang="cs">
<head>
<!-- ... -->
<link href="https://cdn.upsearch.cz/projects/PROJEKT/upsearch.css" rel="stylesheet" />
</head>
<body>
<div id="resultsElement"></div>

<script src="https://cdn.upsearch.cz/projects/PROJEKT/upSearchResults.js"></script>
<script>
window.upSearchResults('#resultsElement', {
apiToken: 'VAS_API_TOKEN',
});
</script>
</body>
</html>

Konfigurace

Základní parametry

ParametrTypPovinnýPopis
apiTokenstringPřístupový token k projektu v API UpSearch
resultsPageUrlPathstring✅*URL cesta ke stránce s výsledky (* povinné pro suggest)
env'production' | 'test'Prostředí API (výchozí: 'production')
status'published' | 'draft'Načíst publikovanou nebo draft konfiguraci z Designeru
cssUrlstringURL vlastního CSS souboru

Ceníky a měna

ParametrTypVýchozíPopis
currencyCodestring''ISO kód měny (např. 'CZK', 'EUR')
priceListsstring''Kódy ceníků oddělené čárkou
whiteListGroupstring''Kód skupiny pro whitelist

Zobrazení produktů

ParametrTypVýchozíPopis
showBadgesbooleantrueZobrazit štítky produktů
showOldPricebooleantrueZobrazit původní cenu
showDiscountInPercentbooleantrueZobrazit slevu v procentech
showStockInfobooleantrueZobrazit informaci o dostupnosti
showBranchStockInfobooleantrueZobrazit dostupnost na pobočkách
showBrandNamebooleanfalseZobrazit název značky
showInlineFeaturesbooleanfalseZobrazit vlastnosti produktu inline
showCustomProperty1booleanfalseZobrazit custom_property_1
showCustomProperty2booleanfalseZobrazit custom_property_2
highlightSearchPhrasebooleantrueZvýraznit hledanou frázi ve výsledcích

Košík a wishlist

ParametrTypVýchozíPopis
showAddToCartbooleanfalseZobrazit tlačítko "Přidat do košíku"
addToCartstring-Název globální funkce pro přidání do košíku
showWishListButtonbooleanfalseZobrazit tlačítko wishlistu
wishListsstring''ID produktů ve wishlistu (oddělené čárkou)
handleWishListstring-Název globální funkce pro wishlist

Příklad integrace košíku

// Definujte globální funkci pro přidání do košíku
window.addProductToCart = function(productCode) {
// Vaše logika pro přidání do košíku
console.log('Přidávám produkt:', productCode);
};

window.upSearchSuggest('#suggestElement', {
apiToken: 'VAS_API_TOKEN',
resultsPageUrlPath: '/vysledky',
showAddToCart: true,
addToCart: 'addProductToCart', // název funkce
});

Konfigurace našeptávače (Suggest)

ParametrTypVýchozíPopis
injectAs'input' | 'button''input'Vložit jako input nebo button
layout'row' | 'grid''row'Layout výsledků
productBoxLayout'inline' | 'card''inline'Layout produktových karet
phraseBoxLayout'inline' | 'block''inline'Layout frází
showTopProductbooleanfalseZobrazit první produkt jako "top"
showTotalCountbooleanfalseZobrazit celkový počet výsledků
showSimpleBlockIconbooleantrueZobrazit ikony u kategorií/značek
showSimpleBlockCountbooleantrueZobrazit počet u kategorií/značek
showInputPlaceholderbooleantrueZobrazit placeholder v inputu
showPoweredByInSidebarbooleantrueZobrazit "Powered by UpSearch"
useSuggestMobileFullscreenLayoutbooleanfalseFullscreen layout na mobilu
suggestAbsolutePositionbooleanfalseAbsolutní pozicování suggestu
useCollectionsTabsbooleanfalsePoužít záložky pro kolekce

Konfigurace výsledků (Results)

ParametrTypVýchozíPopis
showSearchInputbooleantrueZobrazit vyhledávací input
showPagingbooleantrueZobrazit stránkování
showLoadMorebooleantrueZobrazit tlačítko "Načíst další"
infiniteScrollingbooleanfalseAutomatické načítání při scrollu
showSortingbooleanfalseZobrazit řazení
showTextSearchInFiltersbooleantrueVyhledávání v hodnotách filtrů
showItemsCountInTabsbooleantruePočet položek v záložkách
collapsibleFiltersbooleanfalseSbalitelné filtry
showArticleImagebooleantrueObrázky u článků
minFilterItemsToSearchnumber6Min. položek pro zobrazení vyhledávání ve filtru

Dynamický obsah stránky

ParametrTypVýchozíPopis
dynamicH1booleanfalseDynamicky měnit H1 nadpis
dynamicH1PhraseIsSearchbooleantruePoužít "Vyhledávání" místo "Výsledky"
dynamicTitlebooleanfalseDynamicky měnit title stránky
dynamicTitleStaticPartstring-Statická část přidaná k title

Tlačítka a ikony

ParametrTypVýchozíPopis
searchButtonVariant'primary' | 'secondary' | 'blank''primary'Varianta tlačítka hledání
searchButtonSize'sm' | 'md''sm'Velikost tlačítka
searchButtonInsideInputbooleanfalseTlačítko uvnitř inputu
showSearchButtonTextbooleantrueText na tlačítku hledání
searchButtonIconstring-Vlastní ikona (SVG string)
iconsobject-Objekt s vlastními ikonami { iconName: '<svg>...</svg>' }

Vlastní překlady

window.upSearchSuggest('#suggestElement', {
apiToken: 'VAS_API_TOKEN',
resultsPageUrlPath: '/vysledky',
translations: {
cs: {
'suggest.placeholder': 'Hledejte produkty...',
'suggest.showAll': 'Zobrazit všechny výsledky',
}
}
});

Odstranění komponenty

V případě potřeby můžete komponentu odstranit pomocí destruktoru:

const destructSuggest = window.upSearchSuggest('#suggestElement', {
resultsPageUrlPath: '/vysledky-vyhledavani',
apiToken: 'VAS_API_TOKEN',
});

// Později pro odstranění:
destructSuggest();

Stylování

Struktura CSS

Všechny CSS třídy jsou prefixovány .up-* pro zamezení kolizí se styly vašeho webu.

styles/
├── base/ # Proměnné, mixiny, typografie
├── components/ # Styly jednotlivých komponent
├── core/ # Základní prvky (input, button, price)
└── layout/ # Layout wrappery

CSS Wrappery

Plugin používá následující ID wrappery:

  • #upsearch - Hlavní wrap pro input a našeptávač
  • #upsearch-button - Wrap pro samostatný button
  • #upsearch-results - Wrap pro stránku s výsledky
Specificita

Pro přepsání stylů použijte ID selektor:

#upsearch .up-price {
font-weight: bold;
}

Reset CSS

Plugin používá CSS reset pro izolaci od stylů webu:

#upsearch {
all: revert;
}
#upsearch * {
all: revert;
}

Řešení problémů

Styly se nepřepisují

Pro weby s vysokou specificitou selektorů může být potřeba:

  • Použít inline styly
  • Přidat !important do vlastních stylů
  • Zvýšit specificitu selektorů

Komponenta se nezobrazuje

  1. Zkontrolujte, že element s daným selektorem existuje v DOM
  2. Ověřte, že script je načtený po elementu
  3. Zkontrolujte konzoli prohlížeče pro chyby
  4. Ověřte platnost apiToken

Testovací prostředí

Pro testování použijte parametr env:

window.upSearchSuggest('#suggestElement', {
apiToken: 'VAS_API_TOKEN',
resultsPageUrlPath: '/vysledky',
env: 'test', // použije api.upsearch.praguebest.cz
});