Editor produktu
Tento dokument popisuje administrační editor produktu (a příbuzných entit) — jaké komponenty (widgety) obsahuje, pro které typy produktu jsou dostupné, v jakém pořadí se zobrazují a jak lze mezi typy produktu přecházet.
Editor je definován v modulu lib_eshop_edee pomocí Edee UI XML (vzor „dictionary +
modifications"):
- Základní definice widgetů produktu:
productDictionaryAdmin.xml(uzelproductAdminPage). - Vstupní stránky:
productAdmin.xml—productEditPage,productCreatePage, listingy. - Alias:
productAliasAdmin.xml— samostatná stránkaproductAliasEditPages přepínači dědičnosti. - Jednotlivé feature moduly přidávají komponenty přes své
.../gui-admin/modifications/product(Alias)ModificationAdmin.xml.
Typy produktu a „alias" overlay
Enum ProductType
má čtyři hodnoty: BASIC, MASTER, VARIANT, SET.
Osm „typů", se kterými pracuje editor (a tento dokument), nejsou hodnoty ProductType — je to
odvozený kombinovaný typ = ProductType × příznak alias. Produkt je aliasem, pokud má
vyplněné originProductId; kombinovaný typ vrací
ProductWithAdminViewExtensions.getCombinedType()
jako "ALIAS_" + type pro aliasy, jinak jméno typu:
| Kombinovaný typ | ProductType | Alias? |
|---|---|---|
BASIC | BASIC | ne |
MASTER | MASTER | ne |
VARIANT | VARIANT | ne |
SET | SET | ne |
ALIAS_BASIC | BASIC | ano |
ALIAS_MASTER | MASTER | ano |
ALIAS_VARIANT | VARIANT | ano |
ALIAS_SET | SET | ano |
Aliasy se needitují na běžné stránce produktu, ale na samostatné stránce
productAliasEditPage, kam je uživatel přesměrován. Dědičnost hodnot z předlohy (origin
produktu) se v editoru ovládá přepínačem overrideToggle / enableOverrideToggle — to je
zdroj hodnot EI / EI (E) / V v matici níže. Datová stránka dědičnosti je popsána
v Datový model a dědičnost vlastností produktu.
Komponenty editoru
Matice určuje, jak se každá komponenta chová pro jednotlivé kombinované typy produktu.
Legenda:
- E — editační komponenta.
- C — lze editovat při založení, při editaci už jen vizualizace.
- EI — editační komponenta s možností zapnout dědičnost z předlohy aliasu.
- EI (E) — jako EI, ale pro alias produkty napříč katalogy je pouze editace (bez dědičnosti).
- V — pouze vizualizace dat.
- N — editor tuto komponentu neobsahuje.
| Komponenta | BASIC | MASTER | VARIANT | ALIAS_BASIC | ALIAS_MASTER | ALIAS_VARIANT | SET | ALIAS_SET |
|---|---|---|---|---|---|---|---|---|
| Stav | E | E | E | E | E | V | E | E |
| Viditelnost | E | E | E | E | E | E | E | E |
| Lokalizace | E | E | E | EI | EI | EI | E | EI |
| Název pro web | E | E | E | EI | EI | EI | E | EI |
| Kód | C | C | C | C | C | C | C | C |
| Katalogové číslo | E | E | E | EI | EI | EI | E | EI |
| Krátký popis | E | E | E | EI | EI | EI | E | EI |
| Popis | E | E | E | EI | EI | EI | E | EI |
| Média (soubory) | E | E | E | EI | EI | EI | E | EI |
| Ceny | E | E | E | EI | EI | EI | N | N |
| Značka | E | E | N | EI | EI | N | E | EI |
| Kategorie | E | E | N | EI (E) | EI (E) | N | E | EI (E) |
| Skupiny produktů | E | E | N | E | E | N | E | E |
| Dostupnost | E | E | E | V | V | V | E | V |
| EAN | E | E | E | EI | EI | EI | E | EI |
| Skladové množství | E | N | E | V | N | V | E | V |
| Omezení prodeje | E | E | N | EI | EI | N | N | N |
| Jednotka | E | E | N | EI | EI | N | N | N |
| Min., Max., Balení | E | E | E | EI | EI | EI | E | EI |
| Metadata | E | E | E | EI | EI | EI | E | EI |
| Související produkty | E | E | N | EI | EI | N | E | EI |
| Štítky | E | E | E ¹ | EI | EI | EI ¹ | E | EI |
| Parametry produktu | E | E | E | EI | EI | EI | E | EI |
| Varianty produktu | E ² | E | N | N | V | N | N | N |
| Alias produkty | E | E | V | N | N | N | E | N |
| Položky kompletu | N | N | N | N | N | N | E | V |
| Obsahové bloky | E | E | E ¹ | EI | EI | EI ¹ | E | EI |
¹ Oprava proti původní tabulce (FG314): komponenty Štítky a Obsahové bloky jsou v kódu povoleny i pro VARIANT (widgety
entityTagSelectContaineracontentBlockContainermajíenableOn= BASIC, MASTER, SET, VARIANT). Původní tabulka u variant uvádělaN.² Komponenta Varianty produktu je editovatelná pro BASIC i MASTER (
enableOn= BASIC, MASTER) — přidáním varianty se BASIC automaticky povýší na MASTER.
Komponenty nad rámec původní tabulky
V editoru existují další komponenty, které v původní tabulce FG314 nebyly. Jejich dostupnost
napříč typy nebyla plně auditována — zde jen orientačně dle enableOn:
- Záruční doba (
warrantyPeriod) a Perioda vrácení (returnPeriod) — BASIC, MASTER. - Titulek (
titleInput), Časová validita (validityContainer) a URL sekce (entityUrlSection) — vizproductDictionaryAdmin.xml.
Řazení komponent
Rozložení a pořadí komponent v editoru (placeholder containery, mechanismus <priority> a
konkrétní pořadí sekcí produktu, kategorie, značky a skupiny) je obecnou konvencí Edee UI a je
popsáno v Jmenné konvence a řazení komponent editorů Edee UI.
Přechody mezi typy produktu
Typ produktu se určuje při založení, ale některé přechody jsou podporované administračními operacemi (nejde tedy o zcela neměnný typ, jak naznačovala původní matice „Přechody typů produktů", která obsahovala pouze diagonálu).
Podporované přechody dle aktuálního kódu:
| Přechod | Operace |
|---|---|
| BASIC → VARIANTA | POST /variant/{id}/actions/convert/{master} → convertBasicProductToVariant() (ProductVariantController). Přidání varianty k BASIC ho povýší na MASTER. |
| VARIANTA → jiný MASTER | changeMasterOfVariantProduct() — POST /variant/{id}/actions/changeMaster/.... |
| Alias ↔ varianta / master (restore) | ProductVariantAliasMaintainingService; restoreMasterProduct() / restoreVariantProduct() v AbstractProductVariantService. |
| → BASIC | Zakázáno (viz integrační test shouldNotChangeProductTypeToBasic). |
Perzistenční stránku povýšení BASIC→VARIANT řeší
ProductMovePriorityPersistenceInterceptor
(changeToVariant = type == VARIANT && originalType == BASIC).
Související dokumentace
- Produkt — konfigurace produktů a jejich rozšíření.
- Datový model a dědičnost vlastností produktu — které vlastnosti se dědí u variant a aliasů (mechanismus EI / EI (E) / V v matici výše).
- Alias produktů.
- Editory Edee UI — konvence a řazení komponent.
