Editor produktu
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 (uzel productAdminPage).
- Vstupní stránky: productAdmin.xml — productEditPage, productCreatePage, listingy.
- Alias: productAliasAdmin.xml — samostatná stránka productAliasEditPage s přepínači dědičnosti.
- Jednotlivé feature moduly přidávají komponenty přes své .../gui-admin/modifications/product(Alias)ModificationAdmin.xml.
Zkopírovat odkaz na sekciTypy 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.
Zkopírovat odkaz na sekciKomponenty 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 entityTagSelectContainer a contentBlockContainer mají enableOn = BASIC, MASTER, SET, VARIANT). Původní tabulka u variant uváděla N.
² Komponenta Varianty produktu je editovatelná pro BASIC i MASTER (enableOn = BASIC, MASTER) — přidáním varianty se BASIC automaticky povýší na MASTER.
Zkopírovat odkaz na sekciKomponenty 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) — viz productDictionaryAdmin.xml.
Zkopírovat odkaz na sekciŘ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.
Zkopírovat odkaz na sekciPř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).
Zkopírovat odkaz na sekciSouvisejí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.