1

我试图从几天内弄清楚如何在类别页面上显示过滤器的标签。如文档中所述,我在里面添加了属性,config.products.defaultFilters[]并且过滤器已经开始显示在那里。

我有colorbrand过滤器。对于滤色器,我已将颜色 id 映射到颜色名称,config.products.colorMappings因此它在那里正确显示。但是对于品牌,我可以这样做,但它是一个静态解决方案,所以每次管理员添加新品牌时,我都需要添加它的映射并再次构建店面。

我试图检查他们的论坛,但没有任何用处。我检查了 Vue Storefront vuexcatalogcategory-next商店的提示,但在那里找不到任何相关的东西。

在此处输入图像描述

brand_filter 下选项的标签应该是可读的,但它显示了品牌属性选项的id

4

1 回答 1

2

好的,在花了几天时间找到解决这个问题的方法后,我终于从这个答案中得到了提示。

我正在使用主题vsf-capybara,并根据其指南进行设置,我生成了一个local.jsonfromgenerate-local-config.js并手动将配置从该文件合并local.jsonconfig/local.json文件中。在此之前,主配置文件中没有添加名为品牌或颜色的过滤器。

导致过滤器标签不正确的配置属性是entities.attribute.loadByAttributeMetadata,它被设置为true我将其更改为 false,因为需要调度core/module/catalog/CatalogModule一个操作以供应用程序使用。attribute/list因此,如果entities.attribute.loadByAttributeMetadatainconfig/local.json设置为 true,则不会调度此操作。以下是 CatalogModule 的摘录:

if (!config.entities.attribute.loadByAttributeMetadata) {
    await store.dispatch('attribute/list', { // loading attributes for application use
      filterValues: uniq([...config.products.defaultFilters, ...config.entities.productListWithChildren.includeFields])
    })
}
于 2020-10-09T11:51:39.797 回答