Kategorie

Kategorie

Základní funkčnost kategorií nevyžaduje žádnou konfiguraci ani není nutné tuto funkčnost explicitně zapínat, tedy konfigurace je nepovinná.

Konfigurační soubor se standardně nachází v adresáři config/module-edeeshop/features/catalog/category.xml a definuje se v elementu <category/>.

Zkopírovat odkaz na sekciPříklad konfigurace

xml
1 <category>2    <contentBlockConfig>3        <blocks>4            <block/>5        </blocks>6    </contentBlockConfig>7    <fulltextConfig>8        <providers>9            <provider>10                <builder>11                    <dataList>12                        <data>13                            <dataName/>14                            <dataValue/>15                        </data>16                    </dataList>17                    <defaultBoost/>18                    <gallery/>19                    <indexedProperties>20                        <indexedProperty/>21                    </indexedProperties>22                    <promoKeywords>23                        <promoKeyword/>24                    </promoKeywords>25                    <searchByTitle/>26                    <variables>27                        <variable/>28                    </variables>29                    <variantId/>30                </builder>31                <query/>32                <type/>33            </provider>34        </providers>35        <sections>36            <section>37                <analyzer/>38                <fragment/>39                <providers>40                    <provider/>41                </providers>42                <regions>43                    <region>44                        <country>CZ</country>45                        <currency>CZK</currency>46                        <locale>cs</locale>47                    </region>48                </regions>49                <sitemapId/>50            </section>51        </sections>52    </fulltextConfig>53    <mediaConfig>54        <mediaList>55            <media/>56        </mediaList>57    </mediaConfig>58    <tagConfig>59        <tags>60            <tagType/>61        </tags>62    </tagConfig>63    <urlConfig>64        <rules>65            <rule/>66        </rules>67    </urlConfig>68    <catalogSpecific>69        <catalogCode/>70        <fulltextConfig>71            <providers>72                <provider>73                    <builder>74                        <dataList>75                            <data>76                                <dataName/>77                                <dataValue/>78                            </data>79                        </dataList>80                        <defaultBoost/>81                        <gallery/>82                        <indexedProperties>83                            <indexedProperty/>84                        </indexedProperties>85                        <promoKeywords>86                            <promoKeyword/>87                        </promoKeywords>88                        <searchByTitle/>89                        <variables>90                            <variable/>91                        </variables>92                        <variantId/>93                    </builder>94                    <query/>95                    <type/>96                </provider>97            </providers>98            <sections>99                <section>100                    <analyzer/>101                    <fragment/>102                    <providers>103                        <provider/>104                    </providers>105                    <regions>106                        <region>107                            <country>CZ</country>108                            <currency>CZK</currency>109                            <locale>cs</locale>110                        </region>111                    </regions>112                    <sitemapId/>113                </section>114            </sections>115        </fulltextConfig>116        <mediaConfig>117            <mediaList>118                <media/>119            </mediaList>120        </mediaConfig>121        <tagConfig>122            <tags>123                <tagType/>124            </tags>125        </tagConfig>126        <urlConfig>127            <rules>128                <rule/>129            </rules>130        </urlConfig>131    </catalogSpecific>132</category>

Zkopírovat odkaz na sekciPopis

Zkopírovat odkaz na sekcicategory

Konfigurace kategorií.

Vlastnosti této konfigurace lze specifikovat pro konkrétní katalog. Více zde.

VlastnostPopisHodnotaPovinnáVýchozí hodnota
contentBlockConfig/blocks/block

Seznam obsahových bloků.

Aby byly obsahové bloky pro tento typ entit povoleny, musí být definován alespoň jeden obsahový blok.

Pokud již existuje schéma v evitaDB, zapnutí této feature vyžaduje FULL reindexaci evitaDB.

Tuto vlastnost nelze nastavit specificky pro konkrétní katalog. Více zde.

blockConfig

-

-

fulltextConfig/providers/provider

Konfigurace providerů poskytující data publikovaných entit pro fulltext indexaci dané sekce ().

List: fulltextConfig/providers/provider

-

-

fulltextConfig/sections/section

Seznam konfigurací fulltext sekcí. Na základě této konfigurace se následně vytváření sekce, které se registrují do fulltext modulu. Také se automaticky zaregistrují providery, poskytující data o publikovaných entitách pro potřeby fulltextu.

V případě, že je seznam prázdný, tak se entita nebude indexovat, tedy nebude vyhledatelná přes fulltext.

List: fulltextConfig/sections/section

-

-

mediaConfig/mediaList/media

Konfigurace médií pro daný typ entity.

Konfigurace se po inicializaci registruje do mediaGalleryFeature, odkud s ním nadále tato feature pracuje.

mediaConfig

-

-

tagConfig/tags/tagType

Konfigurace štítků.

Jedná se o seznam, který primárně obsahuje systémové id kategorie štítků. V rámci entity je pak možné pracovat se štítky, které jsou zařazeny do těchto kategorií (pozor nejedná se o kategorie produktů, ale kategorie štítků).

Konfigurace dále obsahuje informaci, zda se tyto štítky mají publikovat nebo zda se mají zobrazit ve filtru produktů na FE.

tagConfig

-

-

urlConfig/rules/rule

Pravidla pro generování URL pro entity e-shopu, které mají na FE svůj vlastní detail, tedy produkty, kategorie, značky, skupiny.

Pravidla se aplikují v pořadí, ve kterém jsou definována. Url se vygeneruje pro první pravidlo, pro které je splněna podmínka a zároveň se podaří vygenerovat url.

Pokud nejsem definována žádná pravidla, tak se použije výchozí pravidlo, které obsahuje tyto 3 vzory:

  • normalize(edeeShopEntity.name),
  • normalize(edeeShopEntity.catalogNumber),
  • edeeShopEntity.code.

Tedy nejprve se URL generuje z názvu. Pokud se to nepodaří, tak se url generuje z katalogového čísla. Poslední pokus je generování URL z kódu. Standardně se však url vygeneruje vždy z názvu.

urlConfig

-

-

catalogSpecific

Vlastnosti této konfigurace lze specifikovat pro konkrétní katalog. Více zde.

-

-

Zkopírovat odkaz na sekcifulltextConfig/providers/provider

Konfigurace providerů poskytující data publikovaných entit pro fulltext indexaci dané sekce ().

VlastnostPopisHodnotaPovinnáVýchozí hodnota
builder

Konfigurace vytváření fulltext indexu

builder

-

query

Query ovlivňující načtení kategorií, které má provider poskytnout k indexaci.

Pokud je null, pak se použije výchozí query, která vrací všechny kategorie. Resp. všechny kategorie, které jsou k dispozici v daném katalogu pro anonymního uživatele.

CategoryQuery

-

-

type

Identifikace provideru pro fulltext module. Identifikátor musí být unikátní napříč všemi providery ve všech katalozích.

Dle této hodnoty se mapují providery definované v rámci sekcí v atributu providers (viz SectionConfig#getProviders()).

String

-

Zkopírovat odkaz na sekcibuilder

Konfigurace vytváření fulltext indexu

VlastnostPopisHodnotaPovinnáVýchozí hodnota
dataList/data

Seznam výrazů (SpEL), které vrací hodnoty, které se pro danou entitu zapíší do data. Výraz je definován hodnot pro klíč Tyto data jsou uložena u výsledků fulltext pro následné použití (více viz dokumentace fulltext modulu).

Ve výrazu lze přistupovat přímo k publikované entitě.

Příklady výrazu:

  • 'productType' - textová hodnota pro klíč productType pod kterým bude hodnota uložena v datech.
  • subType.name -
  • catalogNumber -

Ve výchozím nastavení se do data ukládá id entity, pod klíčem id. Pro produkty pak dále typ produktu, kód master produktu a kód pod kterým se mají seskupovat varianty.

dataList/data

-

-

defaultBoost

Výchozí boost dokumentů.

Výpočet boost lze projektově ovlivnit pomocí vlastní implementace . Tuto implementaci následně stačí registrovat do aplikačního kontextu.

float

-

10000.0

gallery

Kód galerie, která se použije při získávání url obrázku, které se exportuje pro každý produkt v sitemap.

String

-

-

indexedProperties/indexedProperty

Seznam výrazů (SpEL), které vrací hodnoty, které se pro danou entitu indexují. Podle těch hodnot fulltext vyhledává entity.

Ve výrazu lze přistupovat přímo k publikované entitě.

Příklady výrazu:

  • name - zaindexuje název entity v aktuální jazyce (jazyce regionu, pro který se generuje index)
  • code
  • descriptionShort
  • catalogNumber
  • getLocalizedTextByCode("fulltextKeywords") - zaindexuje hodnotu z lokalizovaného textu s kódem fulltextKeywords

String

-

-

promoKeywords/promoKeyword

Seznam výrazů (SpEL), které vrací hodnoty, které se pro danou entitu indexují jako promoKeywords (více viz dokumentace fulltext modulu).

Ve výrazu lze přistupovat přímo k publikované entitě.

Příklady výrazu:

  • code
  • descriptionShort
  • getLocalizedTextByCode("fulltextKeywords") - zaindexuje hodnotu z lokalizovaného textu s kódem fulltextKeywords

Výchozí hodnota je "getLocalizedTextByCode("fulltextKeywords")".

String

-

[getLocalizedTextByCode("fulltextKeywords")]

searchByTitle

Fulltext ve výchozím nastavení vyhledává podle názvu dokumentů, v případě e-shopu např. podle názvu produktů. Toto chování je možné vypnout pomocí tohoto atributu, kdy pro vypnutí nastavte hodnotu na false.

Boolean

-

-

variables/variable

Seznam výrazů (SpEL), které vrací hodnoty, které se pro danou entitu zapíší do variables. Podle nich lze následně výsledky fulltextu filtrovat (více viz dokumentace fulltext modulu).

Ve výrazu lze přistupovat přímo k publikované entitě.

Příklady výrazu:

  • productType.name - do variables se zapíše typ produktu,
  • hasTag("checkTag") ? "checkTag" : null

String

-

-

variantId

kód varianty obrázku, která se použije při získávání url obrázku, které se exportuje pro každý produkt v sitemap

String

-

-

Zkopírovat odkaz na sekcidataList/data

Seznam výrazů (SpEL), které vrací hodnoty, které se pro danou entitu zapíší do data. Výraz je definován hodnot pro klíč Tyto data jsou uložena u výsledků fulltext pro následné použití (více viz dokumentace fulltext modulu).

Ve výrazu lze přistupovat přímo k publikované entitě.

Příklady výrazu:

  • 'productType' - textová hodnota pro klíč productType pod kterým bude hodnota uložena v datech.
  • subType.name -
  • catalogNumber -

Ve výchozím nastavení se do data ukládá id entity, pod klíčem id. Pro produkty pak dále typ produktu, kód master produktu a kód pod kterým se mají seskupovat varianty.

VlastnostPopisHodnotaPovinnáVýchozí hodnota
dataName

Výraz (SpEL), který vrací název data, tedy klíč pod kterým bude hodnota z výrazu dataValue uložena v datech.

String

-

-

dataValue

Výraz (SpEL), který vrací hodnotu data, která se uloží pod klíčem dataName.

String

-

-

Zkopírovat odkaz na sekcifulltextConfig/sections/section

Seznam konfigurací fulltext sekcí. Na základě této konfigurace se následně vytváření sekce, které se registrují do fulltext modulu. Také se automaticky zaregistrují providery, poskytující data o publikovaných entitách pro potřeby fulltextu.

V případě, že je seznam prázdný, tak se entita nebude indexovat, tedy nebude vyhledatelná přes fulltext.

VlastnostPopisHodnotaPovinnáVýchozí hodnota
analyzer

Analyzer fulltext modulu, pokud není uvedeno, tak se použije analyzer dle jazyku aktuálního regionu nebo katalogu.

Konkrétně:

  • pro en universal
  • pro de universal
  • pro sk universal
  • pro pl universal
  • pro všechny ostatní czech

String

-

-

fragment

Identifikátor sekce v rámci katalogu a regionu. Musí být unikátní. Povinná hodnota. Typickým příkladem hodnoty je: products,categories.

Pozn.: Název sekce (=identifikátor) se generuje podle klíče: catalog_region_fragment, kde catalog, region a fragment jsou nahrazeny odpovídajícími hodnotami.

String

-

-

providers/provider

Seznam poskytovatelů (přesněji jich FulltextResourceProvider#getType()) dat pro danou sekci. Poskytovatelé jsou vyhledávány v aplikaci a musí implementovat com.fg.fulltext.provider.FulltextResourceProvider.

Povinná položka.

String

-

-

regions/region

Seznam regionů, pro které se má sekce generovat. Pokud není uvedeno, generují se sekce pro všechny regiony v rámci daného katalogu.

regions/region

-

-

sitemapId

ID sitemap. Více zde: https://edee.dev/cs/git/fulltext/sections/sitemap-generating/microsites.md

String

-

-

Zkopírovat odkaz na sekciregions/region

Seznam regionů, pro které se má sekce generovat. Pokud není uvedeno, generují se sekce pro všechny regiony v rámci daného katalogu.

VlastnostPopisHodnotaPovinnáVýchozí hodnota
country

Kód země (ISO 3166 - 2 znaky).

Povinná hodnota.

String

-

-

currency

Měna regionu ( ISO 4217 - 3 znaky).

Povinná hodnota.

currency

-

-

locale

Kód jazyka (ISO 639 - 2 znaky).

Povinná hodnota.

locale

-

-

Zkopírovat odkaz na sekciMedia

Ke kategoriím lze definovat média, typicky se jedná například o hlavní motiv. Konfigurace medií je popsána zde.

Zkopírovat odkaz na sekciURL

U kategorie lze definovat pravidla, podle kterých se generuje frontedové URL, na kterém se bude nacházet detail kategorie. Konfigurace url je popsána zde.

Zkopírovat odkaz na sekciŠtítky

K entitám lze přiřazovat štítky a aby to bylo možné, je nutné v konfiguraci povolit, které štítky lze takto přiřadit.
Konfigurace štítků je popsána zde.

Zkopírovat odkaz na sekciRozšířený datový model

Kategorie lze projektově rozšířit o další vlastnosti. Jak toho docílit je popsané zde.