If you want to change the response filter used in one of the out-of-the-box widgets (described in Out-of-the-box response filters), Oracle recommends that you create a new response filter and assign it to the endpoint/identifier combination the widget uses in its context object. To do this, you create an application-level JavaScript module that requires in the CCStoreConfiguration library and creates a modified version of the filter map. As a reminder, the out-of-the-box filter map looks like this:
define(
//-------------------------------------------------------------------
// DEPENDENCIES
//-------------------------------------------------------------------
['ccStoreConfiguration'],
//-------------------------------------------------------------------
// Module definition
//-------------------------------------------------------------------
function(CCStoreConfiguration) {
'use strict';
return {
onLoad : function() {
console.log("Loading Application Level JS");
var filterMap = {
"getCollection":{
"megaMenuNavigation": {"ccFilterConfigKey": "categoryNavData"},
"categoryNavigation": {"ccFilterConfigKey": "categoryNavData"}
},
"listProducts":{
"productListingData": {"ccFilterConfigKey": "PLPData"},
"collectionWidget": {"ccFilterConfigKey": "collectionData"},
"getProductData": {"ccFilterConfigKey": "productData"},
"getProductDataAndRedirect": {"ccFilterConfigKey": "productData"},
}
};
CCStoreConfiguration.getInstance().updateFiltersToUse(newFilterMap);
},
}
}
);The code in this example changes the response filter key for the Collection Navigation widget from categoryNavData to customFilterKey1.
define(
//-------------------------------------------------------------------
// DEPENDENCIES
//-------------------------------------------------------------------
['ccStoreConfiguration'],
//-------------------------------------------------------------------
// Module definition
//-------------------------------------------------------------------
function(CCStoreConfiguration) {
'use strict';
return {
onLoad : function() {
console.log("Loading Application Level JS");
var filterMap = {
"getCollection":{
"megaMenuNavigation": {"ccFilterConfigKey": "customFilterKey1"},
"categoryNavigation": {"ccFilterConfigKey": "categoryNavData"}
},
"listProducts":{
"productListingData": {"ccFilterConfigKey": "PLPData"},
"collectionWidget": {"ccFilterConfigKey": "collectionData"},
"getProductData": {"ccFilterConfigKey": "productData"},
"getProductDataAndRedirect": {"ccFilterConfigKey": "productData"},
}
};
CCStoreConfiguration.getInstance().updateFiltersToUse(newFilterMap);
},
}
}
);Remember that the top-level objects you define in the filter map override any out-of-the-box top-level objects. In other words, if you modify a top-level object in the filter map, only the identifiers you explicitly include your top-level object are used by the CCStoreConfiguration library. For this reason, you should be careful to include the out-of-the-box identifiers in top-level objects to avoid overwriting them. See Add a new response filter key to the out-of-the-box filter map for more information.
The following table defines which identifier and filter key combination is used by the out-of-the-box widgets:
Widget | Endpoint | Identifier | Response filter Key |
|---|---|---|---|
Collection Navigation |
|
|
|
Collection Navigation – Basic |
|
|
|
Product Listing |
|
|
|
Collection |
|
|
|

