概念解析:
一:Catalog
Catalog 是由相关的Repository Item 组成的。它形成或者组织用户进行定位或者购买的导航性质的架构。
我们也可以理解为它是一颗树的root(catalog).它可以包含Category. 引用的形式就是通过属性rootCategories.
二: Category
Category 就是对Catalog 以树的形式进行组织。其中最高级别的Category就是Root Category. Root Category下面的category就是child Category. Root Category 是一个站点的导航的起点。
Category 下面还可以包括Category 和 product。所以 Category 和 Product 都保持着的对category的引用。
三: Product
Product 就是对sku的一个集合。是整个站点的导航的结束点。Product 是不可以销售的。
四: Sku (Stock Keeping Unit)
就是指单个可以销售的产品。包括组合式的那种产品。
他可以分为三种类型,当然,如果要扩展另说。
分别为:
Simple SKU
Sku Bundle
Configurable Sku
扩展Product Catalog
所谓的扩展其实具体可以分为三种类型:
一:对已经存在的Items type 进行添加额外的属性。
比如存在的categories,products,skus等等。添加额外的属性需要依赖于XML 联合。
Steps:(比如需要创建一个新的属性EnterprsieProductId)
1 在数据库中创建一张新的表MUSIC_PRODUCT
CREATE TABLE MUSIC_A.MUSIC_PRODUCT(
PRODUCT_ID VARCHAR2(40) NOT NULL REFERENCES DCS_PRODUCT(PRODUCT_ID),
ENTERPRISE_PRODUCT_ID VARCHAR2(40) ,
PRIMARY KEY (PRODUCT_ID)
);
2 在customCatalog.xml 的定义文件中创建添加一个新的属性
<table name=“music_product” type=“auxiliary” id-column-name=“product_id”>
<property name=“enterpriseProductId” display-
Name=“Enterprise Id” data-type=“string” colu
Mn-name=“enterprise_product_id” category=
“MUSIC”>
<attribute name=“uiwritable” value=“true” />
</property>
</table>
3 这篇配置文件应该放置于/atg/commerce/catalog/customCatalog.xml
二:创建新的类型,这种类型是OOTB不存在的。
比如现在站点上需要创建一个GlobalHeader 之类的Banner.
1 创建一张表
CREATE TABLE MUSIC_BANNER (
ID VARCHAR2(40) NOT NULL PRIMARY KEY,
TITLE VARCHAR2(40 CHAR),
LINK_URL VARCHAR2(256 CHAR),
MEDIA_ID VARCHAR2(40),
FOREIGN KEY (MEDIA_ID) REFERENCES DCS_MEDIA(MEDIA_ID)
);
2 创建定义文件
<item-descriptor name=“banner”
display-name=“Promotional Content”>
<table name=“MUSIC_BANNER” type=“primary”
id-column-name=“id”>
<property name=“id” data-type=“string”
column-name=“ID”></property>
<property name=“title” data-type=“string”
column-name=“TITLE”></property>
<property name=“linkURL” data-type=“string”
column-name=“LINK_URL”></property>
<property name=“media” item-type=“media-external”
column-name=“MEDIA_ID”></property>
</table>
</item-descriptor>
3 再创建一张新的表去保存相关的banner 的集合。
CREATE TABLE PRJ_CATEGORY_BANNERS (
CATEGORY_ID VARCHAR2(40 BYTE) NOT NULL ENABLE,
BANNER_ID VARCHAR2(40 BYTE),
SEQUENCE_NUM NUMBER NOT NULL ENABLE
);
4 再添加一个新的item 在定义文件中
<item-descriptor name="category">
<table name=“PRJ_CATEGORY_BANNERS" type="multi"
multi-column-name=“SEQUENCE_NUM"
id-column-name=“CATEGORY_ID">
<property name=“banners" display-name=“Banners"
data-type="list" column-name=“BANNER_ID"
component-item-type=“bannerContent"/>
</table>
</item-descriptor>
三:针对已经存在的Item type 去创建他的子类型,即所谓的继承。
以product item为例,他缺省有一个属性值叫做type。数据类型是枚举。他的作用主要是用来创建一些item的子类型。
<property name=“type” data-type=“enumerated”
column-name=“product_type”
writable=“false” hidden=“true”>
<option value=“product”/>
<option value=“electronicGiftCard”/>
</property>
创建一个数据库表,MUSIC_EGIFTCARD
CREATE TABLE MUSICA. MUSIC_EGIFTCARD(
PRODUCT_ID VARCHAR2(40) NOT NULL REFERENCES DCS_PRODUCT(PRODUCT_ID),
MIN_CARD_VALUE NUMBER(6,2) NOT NULL,
MAX_CARD_VALUE NUMBER(6,2) NOT NULL,
PRIMARY KEY (PRODUCT_ID)
);
在Repository 定义文件中添加一个新的item-descriptor
<item-descriptor name=“electronicGiftCard”
Super-type=“product”
//对应上面的option value
Sub-type-value=“electronicGiftCard” >
<table name=“MUSIC_EGIFTCARD” type=“auxiliary” id-column-name=“PRODUCT_ID”>
<property name=“minCardValue”
data-type=“double”
column-name=“MIN_CARD_VALUE”/>
<property name=“minCardValue”
data-type=“double”
column-name=“MAX_CARD_VALUE”/>
</table>
</item-descriptor>
然后/atg/commerce/CatalogTools component需要被更新。
以前的OOTB的属性值:
catalogFolderItemTypes=catalogFolder
catalogItemTypes=catalog
productItemTypes=product
categoryItemTypes=category
SKUItemTypes=sku,configurableSku
然后添加新的productItemTypes。
productItemTypes+=electronicGiftCard
相关推荐
《 Maven Archetype Catalog:加速Eclipse中的Maven项目创建 》 在软件开发过程中,Maven作为Java项目管理工具,其强大的依赖管理和构建能力深受开发者喜爱。然而,当我们使用Eclipse这样的集成开发环境(IDE)时,...
在管理Oracle BIEE的Catalog时,有时需要进行合并操作,这可能是为了整合不同源的数据或者进行系统升级。Catalog在Oracle BIEE中扮演着至关重要的角色,它是元数据的存储库,包含了所有数据源、报表、分析和用户权限...
标题中的"archetype-catalog.xml"是Maven Archetype插件的一个重要文件,它包含了所有可用的Maven项目模板的元数据。当你在IntelliJ IDEA(简称IDEA)中创建一个新的Maven项目并选择“从Archetype创建”时,IDEA会...
《 Maven Archetype Catalog:快速构建项目的核心工具 》 Maven Archetype Catalog是Maven生态系统中的一个重要组成部分,它提供了一种快速创建新Maven项目的模板集合。这个名为"archetype-catalog.zip"的压缩包...
`archetype-catalog.xml`是Maven骨架目录的一个元数据文件,它包含了所有可用的骨架信息。 `archetype-catalog.xml`文件的作用在于,它是一个骨架仓库的目录清单,列出了该仓库中所有的Maven骨架。这些骨架可以被...
XMLCatalog是XML处理中一种重要的工具,主要用于管理和重用XML文档类型定义(DTD)和XML模式(XSD)文件。这些文件在XML处理中扮演着关键角色,它们定义了XML文档的结构和语法规则。在大型项目或复杂环境中,XML...
在Maven中,“Catalog”是指一个包含了一系列Maven Archetypes的列表,这些Archetypes是预定义的项目模板,可以帮助开发者快速启动新项目。当我们谈论“maven自定义catalog”,这意味着我们需要创建一个个性化的...
在 SAP 开发环境中,"REUSE_ALV_FIELDCATALOG_MERGE" 是一个非常重要的函数,用于合并和创建用于 ALV (ABAP List Viewer) 输出的字段目录。然而,在使用这个函数时,可能存在一些陷阱和注意事项,导致程序出错或者...
在数据库管理中,Catalog(目录)和Schema(模式)是两个非常重要的概念,它们构成了数据库组织和管理的基础。本文将深入探讨这两个概念,以及它们在实际应用中的作用。 首先,让我们来理解什么是Catalog。在数据库...
"Asset Catalog Creator Free"是一款专为开发者和设计师打造的快速切图工具,它极大地简化了iOS应用中图像资源的管理与导出流程。这款软件允许用户直接导入图片,并且能够一键生成适用于不同设备分辨率的@3x、@2x和@...
在“Oracle RMAN catalog备份”这个主题中,我们将深入探讨RMAN如何使用catalog进行备份操作,并理解相关的核心概念和技术细节。 首先,RMAN catalog是一个中央存储库,用于记录所有与备份和恢复相关的元数据,如...
### 关于catalog.wci无法删除的问题 在计算机系统中,我们经常会遇到一些文件因为权限问题、正在被使用或系统锁定等原因而无法删除的情况。其中,“catalog.wci”这类文件尤其令人头疼,因为随着时间的推移,它们...
《NBU Catalog数据库的备份与恢复》 NetBackup(NBU)是Veritas公司的一款强大的企业级备份和恢复软件,其Catalog数据库是整个系统的核心,存储了所有备份作业、策略和元数据信息。理解如何备份和恢复NBU Catalog...
在PostgreSQL数据库系统中,`pg_catalog`是一个特殊模式,它包含了系统定义的表、视图和索引,用于存储数据库元数据。元数据是指关于数据的数据,例如表的结构、列信息、索引、约束、函数等。下面将详细讨论在`GP pg...
本压缩包文件“Glass Catalog.rar”是2021年7月以来各大玻璃厂商的ZEMAX格式玻璃库集合,涵盖了多个知名玻璃制造商的数据,为光学设计师提供了一个便捷的参考资料库。 一、ZEMAX玻璃库的重要性 ZEMAX玻璃库是ZEMAX...
Maven Archetype Catalog是Maven构建系统中的一个重要工具,它用于快速创建项目模板,极大地提高了开发者的效率。"archetype-catalog.rar"是一个压缩包,包含了"Maven骨架目录"(Archetype Catalog),这是一个XML...
根据给定的文件信息,我们将深入探讨“SRM-MDM Catalog Setup – Ready Reference”这一主题,专注于SAP NetWeaver MDM系统中的SRM-MDM目录设置过程。这份文档不仅适用于SAP SRM(Supplier Relationship Management...