Let's say we want to see child items for the postcode, city and county.
We should provide links definition in the /atg/remote/content/browse/ContentBrowseHierarchy.xml
Insert the following into the xml so that Merchandising will know parent/child for each item:
<links id="postCodeLinks" parent-type="/cognity/estore/repository/AddressBookRepository:addressBookPostCode">
<list-definition allow-circular-reference="false" visible="true" retriever="property" set-site-context-on-drilldown="false" allow-load="true" show-header="conditionally" id="postCodeChildStreets" show-count-on-header="false" allow-drilldown="true" child-type="/cognity/estore/repository/AddressBookRepository:addressBookStreet" show-count-on-children="false">
<retriever-parameter name="propertyName" value="parentPostCodeId"/>
<retriever-parameter name="reverseLink" value="true"/>
</list-definition>
</links>
<links id="cityLinks" parent-type="/cognity/estore/repository/AddressBookRepository:addressBookCity">
<list-definition allow-circular-reference="false" visible="true" retriever="property" set-site-context-on-drilldown="false" allow-load="true" show-header="conditionally" id="cityChildPostCodes" show-count-on-header="false" allow-drilldown="true" child-type="/cognity/estore/repository/AddressBookRepository:addressBookPostCode" show-count-on-children="false">
<retriever-parameter name="propertyName" value="parentCityId"/>
<retriever-parameter name="reverseLink" value="true"/>
</list-definition>
</links>
<links id="countyLinks" parent-type="/cognity/estore/repository/AddressBookRepository:addressBookCounty">
<list-definition allow-circular-reference="false" visible="true" retriever="property" set-site-context-on-drilldown="false" allow-load="true" show-header="conditionally" id="countyChildCities" show-count-on-header="false" allow-drilldown="true" child-type="/cognity/estore/repository/AddressBookRepository:addressBookCity" show-count-on-children="false">
<retriever-parameter name="propertyName" value="parentCountyId"/>
<retriever-parameter name="reverseLink" value="true"/>
</list-definition>
</links>
14 Nov 2016
ATG 11.1 Merchandising Browse Customisation Part 1
While searching the internet I can't find good examples of the BCC Merchandising Browse customisation. So here it is
Create a file /atg/remote/content/browse/ContentBrowseHierarchy.xml that will be appended to the main configuration from DCS-UI
Be sure that your xml file is appended last so other modules is not affecting resulting xml. It might be necessary to add DCS-UI module into your ATG module manifest file among required modules so that xml from DCS-UI will come before the xml from your module. To check the resulting file please open component /atg/remote/content/browse/ContentBrowseManager and watch it's 'definitionFile' property. Check the order of xml files first.
ContentBrowseHierarchy.xml example for the newly created custom repository:
<?xml version="1.0" encoding="UTF-8" ?>
<browse-hierarchy xml-combine="append">
<browse-item id="home" xml-combine="append">
<browse-item reference-id="addressBook"/>
</browse-item>
<browse-item id="addressBook" label="Address Book" >
<browse-item reference-id="addressBookCounties"/>
<browse-item reference-id="addressBookCities"/>
<browse-item reference-id="addressBookPostCodes"/>
<browse-item reference-id="addressBookStreet"/>
</browse-item>
<browse-item is-root="true" id="addressBookCounties" label="Counties" >
<list-definition id="countyItems" retriever="query" child-type="/cognity/estore/repository/AddressBookRepository:addressBookCounty">
<retriever-parameter name="query" value="ALL" />
</list-definition>
</browse-item>
<browse-item is-root="true" id="addressBookCities" label="Cities">
<list-definition id="cityItems" retriever="query" child-type="/cognity/estore/repository/AddressBookRepository:addressBookCity">
<retriever-parameter name="query" value="ALL" />
</list-definition>
</browse-item>
<browse-item is-root="true" id="addressBookPostCodes" label="PostCodes">
<list-definition id="postCodeItems" retriever="query" child-type="/cognity/estore/repository/AddressBookRepository:addressBookPostCode">
<retriever-parameter name="query" value="ALL" />
</list-definition>
</browse-item>
<browse-item is-root="true" id="addressBookStreet" label="Streets" >
<list-definition id="parentPostCodeItems" retriever="query" child-type="/cognity/estore/repository/AddressBookRepository:addressBookPostCode">
<retriever-parameter name="query" value="id equals parentPostCodeId" />
</list-definition>
<list-definition id="streetsItems" retriever="query" child-type="/cognity/estore/repository/AddressBookRepository:addressBookStreet">
<retriever-parameter name="query" value="ALL" />
</list-definition>
</browse-item>
</browse-hierarchy>
Create a file /atg/remote/content/browse/ContentBrowseHierarchy.xml that will be appended to the main configuration from DCS-UI
Be sure that your xml file is appended last so other modules is not affecting resulting xml. It might be necessary to add DCS-UI module into your ATG module manifest file among required modules so that xml from DCS-UI will come before the xml from your module. To check the resulting file please open component /atg/remote/content/browse/ContentBrowseManager and watch it's 'definitionFile' property. Check the order of xml files first.
ContentBrowseHierarchy.xml example for the newly created custom repository:
<?xml version="1.0" encoding="UTF-8" ?>
<browse-hierarchy xml-combine="append">
<browse-item id="home" xml-combine="append">
<browse-item reference-id="addressBook"/>
</browse-item>
<browse-item id="addressBook" label="Address Book" >
<browse-item reference-id="addressBookCounties"/>
<browse-item reference-id="addressBookCities"/>
<browse-item reference-id="addressBookPostCodes"/>
<browse-item reference-id="addressBookStreet"/>
</browse-item>
<browse-item is-root="true" id="addressBookCounties" label="Counties" >
<list-definition id="countyItems" retriever="query" child-type="/cognity/estore/repository/AddressBookRepository:addressBookCounty">
<retriever-parameter name="query" value="ALL" />
</list-definition>
</browse-item>
<browse-item is-root="true" id="addressBookCities" label="Cities">
<list-definition id="cityItems" retriever="query" child-type="/cognity/estore/repository/AddressBookRepository:addressBookCity">
<retriever-parameter name="query" value="ALL" />
</list-definition>
</browse-item>
<browse-item is-root="true" id="addressBookPostCodes" label="PostCodes">
<list-definition id="postCodeItems" retriever="query" child-type="/cognity/estore/repository/AddressBookRepository:addressBookPostCode">
<retriever-parameter name="query" value="ALL" />
</list-definition>
</browse-item>
<browse-item is-root="true" id="addressBookStreet" label="Streets" >
<list-definition id="parentPostCodeItems" retriever="query" child-type="/cognity/estore/repository/AddressBookRepository:addressBookPostCode">
<retriever-parameter name="query" value="id equals parentPostCodeId" />
</list-definition>
<list-definition id="streetsItems" retriever="query" child-type="/cognity/estore/repository/AddressBookRepository:addressBookStreet">
<retriever-parameter name="query" value="ALL" />
</list-definition>
</browse-item>
</browse-hierarchy>
Subscribe to:
Comments (Atom)