I am trying to figure out from couple of days how to display label for filters on category page. As mentioned in document I have added attribute inside config.products.defaultFilters[]
and the filter have started showing there.
I have color
and brand
filters. For color filters I have mapped color id to color name in config.products.colorMappings
so it is displaying correctly there. But for brand I can do the same but it is a static solution so every time admin adds new brand I will need to add its mapping and build the storefront again.
I have tried to check their forum but nothing useful. I checked Vue Storefront vuex catalog
and category-next
stores for hint but cannot find anything related there.
The label for option under brand_filter should be readable but it is showing that brand attribute option's id
Ok, after spending couple of days finding solution to this problem, I finally got a hint from this answer.
I am using theme vsf-capybara, and according to its guide, to setup I generated a
local.json
fromgenerate-local-config.js
and I merged configuration manually from thatlocal.json
toconfig/local.json
file. Prior to this there was no filter named brand or color added already to the main config file.The config property responsible for the filter labels to be incorrect was
entities.attribute.loadByAttributeMetadata
and it was set totrue
I changed it to false becausecore/module/catalog/CatalogModule
has one actionattribute/list
needs to be dispatched for application use. So ifentities.attribute.loadByAttributeMetadata
inconfig/local.json
is set to true, this action will not be dispatched. Here is the excerpt from CatalogModule: