We want to display the categories according to the role of the customer.
Categories is to be displayed in a website according to the logged in customer based on the customer’s role.
Performing the PCV functionality and customer segment and group concept to introduce this new feature.
In that we can group the customers to different segments and using this we can display the category to particular segment.
So According to role we have to create customer groups then add the customer group to category.
In order to display the category based on the customer roles, we have to perform the following steps:
- We have to determine the customer segments required for our web store.
- We have to create dynamic customer segments.
- We have to enable the personalized catalog views feature.
- We have to ensure that the people working with PCV have the correct permissions.
- We have to define which item segments are visible and can be purchased, and for that, we have to assign the customer segment created to a particular commerce category.
- We have to check that the correct items are displayed for the correct customers.
Even though the customer segment and PCV functionality are helpful to display the correct items for the correct customers, all the commerce category headings will be displayed for all customers. So in order to display the category headings in the header menu based on the customer role, we have to create an extension.
Enabled the feature of PERSONALIZED CATALOG VIEWS on the Items&Inventory tab.
created a new dynamic group ;
We can update the domain and role by editing the search.
Map the customer segment with the commerce category from the commerce category record or from the customer segment obtained from the marketing menu under the commerce tab of the Netsuite Account
Code for the extension to remove the unwanted category heading on the basis of the customer segment
var layout = container.getComponent('Layout');
if(layout)
{
_.extend(FacetsBrowseView.prototype, {
getContext: _.wrap(FacetsBrowseView.prototype.getContext, function (fn) {
var originalRet=fn.apply(this, _.toArray(arguments).slice(1));
var url=Utils.getAbsoluteUrl(getExtensionAssetsPath("services/CategoryByRole.Service.ss"))
$.get(url, {})
.done(function (data) {
var profile=ProfileModel.ProfileModel ? ProfileModel.ProfileModel.getInstance() : ProfileModel.getInstance();
var segmentfromProfile=profile.get('segments');
// console.log("data", data);
console.log("profile", profile);
console.log("segment", segmentfromProfile);
console.log("originalRet1", originalRet);
for (var i=0; i < data.length; i++) {
var categorysegment=data[i].segment;
if (categorysegment.length < 1) {
var nameofcategorysegment=data[i].segment.name;
var flag=0;
for (var j=0; j < segmentfromProfile.length; j++) {
var nameofcustomersegment=segmentfromProfile[j].name;
if (nameofcustomersegment==nameofcategorysegment) {
flag=1;
}
}
if (flag==0) {
var removeurl=data[i].name;
//To remove from facet
$('#facet-browse .facets-facet-browse .facets-category-cell a[name ="' + removeurl + '"]').hide();
$('#facet-browse .facets-facet-browse .facets-faceted-navigation-item-category .facets-faceted-navigation-item-category-facet-group-content ul li a[name ="' + removeurl + '"]').hide();
}
} else {
var flag=0;
if (categorysegment.length>=2) {
for (var x=0; x<categorysegment.length; x++) {
var categorysegmentname=categorysegment[x].name;
console.log("categorysegmentname", categorysegmentname)
for (var j=0; j < segmentfromProfile.length; j++) {
var nameofcustomersegment=segmentfromProfile[j].name;
if (nameofcustomersegment==categorysegmentname) {
flag=1;
}
}
}
if (flag==0) {
var removeurl=data[i].name;
console.log("thirdLevelCategory[l]", removeurl);
//To remove from facet
$('#facet-browse .facets-facet-browse .facets-category-cell a[name ="' + removeurl + '"]').hide();
$('#facet-browse .facets-facet-browse .facets-faceted-navigation-item-category .facets-faceted-navigation-item-category-facet-group-content ul li a[name ="' + removeurl + '"]').hide();
}
}
}
}
})
return originalRet;
})
});
_.extend(HeaderMenu.prototype, {
getContext: _.wrap(HeaderMenu.prototype.getContext, function (fn) {
var originalRet=fn.apply(this, _.toArray(arguments).slice(1));
var url=Utils.getAbsoluteUrl(getExtensionAssetsPath("services/CategoryByRole.Service.ss"))
$.get(url, {})
.done(function (data) {
var profile=ProfileModel.ProfileModel ? ProfileModel.ProfileModel.getInstance() : ProfileModel.getInstance();
var segmentfromProfile=profile.get('segments');
// console.log("data1", data);
console.log("profile1", profile);
console.log("segment1", segmentfromProfile);
console.log("originalRet1", originalRet);
for (var i=0; i < data.length; i++) {
var categorysegment=data[i].segment;
if (categorysegment.length < 1) {
var nameofcategorysegment=data[i].segment.name;
var flag=0;
for (var j=0; j < segmentfromProfile.length; j++) {
var nameofcustomersegment=segmentfromProfile[j].name;
if (nameofcustomersegment==nameofcategorysegment) {
flag=1;
}
}
if (flag==0) {
var removeurl=data[i].name;
$('#site-header .header-secondary-wrapper .header-menu-secondary-nav .header-menu-level2 li[name ="' + removeurl + '"] a').hide();
$('#site-header .header-secondary-wrapper .header-menu-secondary-nav .header-menu-level2 li[name ="' + removeurl + '"] ul li ul li a').parent().hide();
$('#site-header .header-secondary-wrapper .header-menu-secondary-nav .header-menu-level2 li[name ="' + removeurl + '"] ul li ul li a').hide();
$('#site-header .header-secondary-wrapper .header-menu-secondary-nav .header-menu-level3 li[name ="' + removeurl + '"] a').hide();
$('#site-header .header-secondary-wrapper .header-menu-secondary-nav .header-menu-level3 li[name ="' + removeurl + '"] ul li ul li a').parent().hide();
$('#site-header .header-secondary-wrapper .header-menu-secondary-nav .header-menu-level3 li[name ="' + removeurl + '"] ul li ul li a').hide();
$('#site-header .header-secondary-wrapper .header-sidebar-wrapper .header-sidebar-menu-wrapper ul li[name ="' + removeurl + '"] a').hide();
$('#site-header .header-secondary-wrapper .header-sidebar-wrapper .header-sidebar-menu-wrapper ul li[name ="' + removeurl + '"] ul li a').hide();
$('#site-header .header-secondary-wrapper .header-sidebar-wrapper .header-sidebar-menu-wrapper ul li[name ="' + removeurl + '"] ul li ul li a').hide();
//To remove from facet
$('#facet-browse .facets-facet-browse .facets-category-cell a[name ="' + removeurl + '"]').hide();
$('#facet-browse .facets-facet-browse .facets-faceted-navigation-item-category .facets-faceted-navigation-item-category-facet-group-content ul li a[name ="' + removeurl + '"]').hide();
}
} else {
var flag = 0;
if (categorysegment.length >= 2) {
for (var x=0; x < categorysegment.length; x++) {
var categorysegmentname = categorysegment[x].name;
for (var j=0; j < segmentfromProfile.length; j++) {
var nameofcustomersegment=segmentfromProfile[j].name;
if (nameofcustomersegment==categorysegmentname) {
flag = 1;
}
}
}
if (flag == 0) {
var removeurl=data[i].name;
$('#site-header .header-secondary-wrapper .header-menu-secondary-nav .header-menu-level2 li[name ="' + removeurl + '"] a').hide();
$('#site-header .header-secondary-wrapper .header-menu-secondary-nav .header-menu-level2 li[name ="' + removeurl + '"] ul li ul li a').parent().hide();
$('#site-header .header-secondary-wrapper .header-menu-secondary-nav .header-menu-level2 li[name ="' + removeurl + '"] ul li ul li a').hide();
$('#site-header .header-secondary-wrapper .header-menu-secondary-nav .header-menu-level3 li[name ="' + removeurl + '"] a').hide();
$('#site-header .header-secondary-wrapper .header-menu-secondary-nav .header-menu-level3 li[name ="' + removeurl + '"] ul li ul li a').parent().hide();
$('#site-header .header-secondary-wrapper .header-menu-secondary-nav .header-menu-level3 li[name ="' + removeurl + '"] ul li ul li a').hide();
$('#site-header .header-secondary-wrapper .header-sidebar-wrapper .header-sidebar-menu-wrapper ul li[name ="' + removeurl + '"] a').hide();
$('#site-header .header-secondary-wrapper .header-sidebar-wrapper .header-sidebar-menu-wrapper ul li[name ="' + removeurl + '"] ul li a').hide();
$('#site-header .header-secondary-wrapper .header-sidebar-wrapper .header-sidebar-menu-wrapper ul li[name ="' + removeurl + '"] ul li ul li a').hide();
//To remove from facet
$('#facet-browse .facets-facet-browse .facets-category-cell a[name ="' + removeurl + '"]').hide();
$('#facet-browse .facets-facet-browse .facets-faceted-navigation-item-category .facets-faceted-navigation-item-category-facet-group-content ul li a[name ="' + removeurl + '"]').hide();
}
}
}
}
})
return originalRet;
})
});
}
}