Produktový model¶
Stav k 2026-06-21.
Přehled tabulek¶
| Tabulka | Typ | Popis |
|---|---|---|
eshop_produkty |
tabulka | hlavní tabulka, 80+ sloupců |
eshop_produkty_varianty |
tabulka | varianty produktu (vlastní kód, cena, HTML popis) |
eshop_produkty_barvy |
tabulka | barevné varianty s příplatkem |
eshop_produkty_kategorie |
tabulka | normalizovaná M:N vazba produkt↔kategorie |
eshop_produkty_souvisejici |
tabulka | M:N: související produkty |
eshop_produkty_souvisejici_kategorie |
tabulka | M:N: kategorie zobrazované u produktu jako "související" |
eshop_produkty_prislusenstvi |
tabulka | M:N: příslušenství k produktu |
eshop_produkty_dostupnost |
tabulka | číselník dostupností (id, dni, titulek) |
eshop_produkty_sklady_mnozstvi |
tabulka | množství per sklad per produkt |
eshop_produkty_google_param |
tabulka | Google structured data parametry (název/hodnota) |
eshop_produkty_old |
tabulka | záložní/historická kopie (starší schéma, méně jazyků) |
eshop_produkty_aktualni_dostupnost |
VIEW | aktuální dostupnost (množství + dostupnostní kódy) |
eshop_produkty_sklad_centrala |
VIEW | množství na centrálním skladu |
eshop_produkty_prodeje_30_dni |
VIEW | prodeje za posledních 30 dní |
eshop_vyrobci |
tabulka | výrobci — název, alias, logo, lokalni flag |
Podrobnosti v podstránkách:
- pole od / od_puvodni — vlastnictví produktu, vazba na importy
- lokální výrobci a produkty —
lokalni,neni_lokalni,vyrobce_lokalni - příznaky a stavový model —
import,neprepsat,zobrazovat,blokovatatd. - dostupnost a sklad — dostupnostní číselník, sklady, množství
Vícejazyčnost¶
Produkty mají textová pole v 6 lokálech: cs, en, de, sk, pl, hu.
Přeložená pole: nazev, nazev_pro_heureku, popis, kratky_popis, technicke_info, text_neni_skladem.
Suffix _ga (např. kategorie_ga) se používá pro rc-baterie.cz (gensace) — cron gensace-kategorie.php plní kategorie_ga kategoriemi druhého webu.
Varianty a barvy mají překlady v totéž 6 lokálů.
Kategorie — dvojí způsob¶
| Způsob | Pole / tabulka | Popis |
|---|---|---|
| Denormalizovaný | eshop_produkty.kategorie (mediumtext) |
pipe-separated seznam — historický, pro rychlé čtení |
| Normalizovaný | eshop_produkty_kategorie (M:N tabulka) |
pro joins a filtry |
Migrace: Sylius používá taxony — mapovat z normalizované tabulky.
Denormalizované countery a triggery¶
| Pole | Popis |
|---|---|
variant |
počet variant |
barev |
počet barev |
souvisejicich |
počet souvisejících produktů |
prodano |
celkem prodaných kusů |
sleva_procent |
aktuální % slevy (max z akce a výprodeje) |
marze |
marže — počítáno triggerem |
cena_eshop |
finální zobrazovaná cena — počítáno triggerem |
Triggery eshop_produkty_bi / eshop_produkty_bu (BEFORE INSERT/UPDATE):
cena_eshop = cena_eshop(cena_a, cena_b, akce_id, akce_procent, vyprodej, vyprodej_procent)
sleva_procent = MAX(vyprodej_procent, akce_procent)
marze = vypocet_marze(cena_eshop, cena_nakup)
Varianty a barvy — stav: málo používané¶
Původně navrženy pro produkty s více barvami nebo provedeními. V současnosti se nové produkty přidávají jako samostatné produkty — barvy a varianty se reálně téměř nepoužívají.
eshop_produkty_barvy — barva má název (6 lokálů), obrázek, příplatek, zobrazovat.
eshop_produkty_varianty — varianta má vlastní kod, cena (příplatek), zobrazovat, textový název (6 lokálů) + HTML obsah (6 lokálů).
Migrace: Ověřit reálný počet produktů s vyplněnými barvami/variantami před rozhodnutím o mapování na Sylius Product Variant.
Recyklační poplatek (RP/PHE)¶
skupina_phe— skupina RP (tinyint)phe_kod— kód jiného produktu, který je poplatkem (FK přeskoddoeshop_produkty)
Při zobrazení produktu se načte RP produkt a přidá se do košíku jako samostatná položka.
Štítky (stitek)¶
Integer odkazující na štítek konfigurovaný v admin nastavení (SETTING['stitky_cs'] atd.). Formát: Název:barva per řádek, index = hodnota stitek. Per jazyk.
Google parametry (eshop_produkty_google_param)¶
Volné páry nazev/hodnota per produkt — slouží pro Google Merchant structured data. Používají XML feedy.
Architektura importu — bypass Sylius vs. přes Sylius service vrstvu¶
Největší otevřená otázka pro kolegu při psaní importních workerů.
Přímý zápis do DB¶
- rychlé na bulk (tisíce produktů), plná kontrola
- cache, eventy, reindex vyhledávání musí worker zajistit sám
- při upgradu Syliusu nutno ověřit kompatibilitu schématu
Přes Sylius service vrstvu¶
- Sylius interně konzistentní (cache, eventy, stock)
- pomalejší na bulk, ale upgrade-safe
Doporučení
Rozhodnout hned na začátku — zpětná změna strategie je nákladná.