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.xmlproductEditPage, 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č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ý typProductTypeAlias?
BASICBASICne
MASTERMASTERne
VARIANTVARIANTne
SETSETne
ALIAS_BASICBASICano
ALIAS_MASTERMASTERano
ALIAS_VARIANTVARIANTano
ALIAS_SETSETano

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.
KomponentaBASICMASTERVARIANTALIAS_BASICALIAS_MASTERALIAS_VARIANTSETALIAS_SET
StavEEEEEVEE
ViditelnostEEEEEEEE
LokalizaceEEEEIEIEIEEI
Název pro webEEEEIEIEIEEI
KódCCCCCCCC
Katalogové čísloEEEEIEIEIEEI
Krátký popisEEEEIEIEIEEI
PopisEEEEIEIEIEEI
Média (soubory)EEEEIEIEIEEI
CenyEEEEIEIEINN
ZnačkaEENEIEINEEI
KategorieEENEI (E)EI (E)NEEI (E)
Skupiny produktůEENEENEE
DostupnostEEEVVVEV
EANEEEEIEIEIEEI
Skladové množstvíENEVNVEV
Omezení prodejeEENEIEINNN
JednotkaEENEIEINNN
Min., Max., BaleníEEEEIEIEIEEI
MetadataEEEEIEIEIEEI
Související produktyEENEIEINEEI
ŠtítkyEEE ¹EIEIEI ¹EEI
Parametry produktuEEEEIEIEIEEI
Varianty produktuE ²ENNVNNN
Alias produktyEEVNNNEN
Položky kompletuNNNNNNEV
Obsahové blokyEEE ¹EIEIEI ¹EEI

¹ 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řechodOperace
BASIC → VARIANTAPOST /variant/{id}/actions/convert/{master}convertBasicProductToVariant() (ProductVariantController). Přidání varianty k BASIC ho povýší na MASTER.
VARIANTA → jiný MASTERchangeMasterOfVariantProduct()POST /variant/{id}/actions/changeMaster/....
Alias ↔ varianta / master (restore)ProductVariantAliasMaintainingService; restoreMasterProduct() / restoreVariantProduct() v AbstractProductVariantService.
→ BASICZaká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