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 defer src="https://cdn.upsearch.cz/projects/PROJEKT/upSearchSuggest.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
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 defer src="https://cdn.upsearch.cz/projects/PROJEKT/upSearchResults.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
window.upSearchResults('#resultsElement', {
apiToken: 'VAS_API_TOKEN',
});
});
</script>
</body>
</html>

Konfigurace​

Základní parametry​

ParametrTypPovinnýPopis
apiTokenstring✅Pří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
cssUrlstring❌URL 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
});