如何在Hybris中创建导航栏/节点?

时间:2017-07-04 12:48:39

标签: hybris impex

如何使用Impex在Hybris中创建导航节点? 如何将类别映射到导航节点? 如何将类别登陆页面或PLP映射到导航节点? 如何建立导航栏和jsp页面之间的关系?

1 个答案:

答案 0 :(得分:0)

在使用项目特定定义填充宏之后在import/sampledata/contentCatalogs/yourCatalog/cms-content.impex中:

INSERT_UPDATE CMSNavigationNode;uid[unique=true];$contentCV[unique=true];name;children(uid,$contentCV)[mode=append]
;root;;root;;

##- level 1. SiteRoot -##
INSERT_UPDATE CMSNavigationNode;uid[unique=true];$contentCV[unique=true];name;parent(uid, $contentCV);links(&componentRef);&nodeRef
;SiteRootNode;;SiteRootNode;root;;SiteRootNode

##-- level 2. children of SiteRoot --##
INSERT_UPDATE CMSNavigationNode;uid[unique=true];$contentCV[unique=true];name;parent(uid, $contentCV);links(&componentRef);&nodeRef
;YOUR-SITE-NAMENavNode;;YOUR-SITE-NAME Site;SiteRootNode;;YOUR-SITE-NAMENavNode

##--- level 3. children of <YOUR-SITE-NAME>NavNode ---##
INSERT_UPDATE CMSNavigationNode;uid[unique=true];$contentCV[unique=true];name;parent(uid, $contentCV);links(&componentRef);&nodeRef
;YOUR-SITENAMECategoryNavNode;;Categories;YOUR-SITE-NAMENavNode;;YOUR-SITE-NAMECategoryNavNode

##---- level 4. children of Category Nav ----##
INSERT_UPDATE CMSNavigationNode;uid[unique=true];$contentCV[unique=true];name;parent(uid, $contentCV);links(&linkRef);&nodeRef
;FIRST-CATEGORYNavNode;;FIRST-CATEGORY;YOUR-SITE-NAMECategoryNavNode;;FIRST-CATEGORYNavNode

## entries of the above navigation nodes ##
INSERT_UPDATE CMSNavigationEntry;uid[unique=true];$contentCV[unique=true];name;navigationNode(&nodeRef);item(CMSLinkComponent.uid,CMSLinkComponent.$contentCV);
;FIRST-CATEGORYNavNodeEntry;;FIRST-CATEGORY Navigation Node Entry;FIRST-CATEGORYNavNodeFIRST-CATEGORYCategoryLink;

## links of the above navigation nodes ##
INSERT_UPDATE CMSLinkComponent;$contentCV[unique=true];uid[unique=true];name;url;&linkRef;&componentRef;target(code)[default='sameWindow']
;;FIRST-CATEGORYCategoryLink;FIRST-CATEGORY Category Link;/Open-Catalogue/FIRST-CATEGORY/c/FIRST-CATEGORY-ID;FIRST-CATEOGRYCategoryLink;FIRST-CATEGORYCategoryLink;
  1. 请注意,/c/FIRST-CATEGORY-ID会导致该类别 有了这个id。您还必须配置页面模板 coredata/contentCatalogs/yourCatalog/cms-content.impex(这个暗示 通常由hybris系统自动填充) SearchResults页面,以便显示该类别中的产品。

  2. 您必须在projectNamecore中配置根类别 在春天扩展xml

    <bean id="PROJECT-NAMECategorySource" parent="abstractCategorySource">
      <property name="rootCategory" value="ROOT-CATEGORY-NAME"/>
    </bean>  
    
    <bean id="PROJECT-NAMECategoryCodeValueProvider" parent="abstractCategoryCodeValueProvider">
        <property name="categorySource" ref="PROJECT-NAMECategorySource"/>
    </bean>
    
    <bean id="PROJECT-NAMECategoryNameValueProvider" parent="abstractCategoryNameValueProvider">
        <property name="categorySource" ref="PROJECT-NAMECategorySource"/>
    </bean>
    
  3. 这样做是为了让hybris了解您的类别系统,以便能够提供正确的结果并在页面中配置PATH。

    ROOT-CATEGORY - 所有类别的父类别的主要类别;

    PROJECT-NAME - 您的项目名称;

    SITE-NAME - 您的网站名称;

    如果您仔细查看项目的抽样数据中的powertoolsstore/apparelstore/electronicsstore或更准确的cms内容impex,那么您将更容易理解。

    希望它有所帮助!