【问题标题】:Vue Storefront: Display labels for custom attribute filter instead of option idVue Storefront:显示自定义属性过滤器的标签而不是选项 ID
【发布时间】:2020-10-09 09:45:19
【问题描述】:

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

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

我尝试查看他们的论坛,但没有任何用处。我检查了 Vue Storefront vuex catalogcategory-next 商店的提示,但在那里找不到任何相关内容。

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

【问题讨论】:

    标签: vue.js vuex magento2 vue-storefront


    【解决方案1】:

    好的,花了几天的时间寻找解决这个问题的方法,我终于从这个answer得到了提示。

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

    导致过滤器标签不正确的配置属性是entities.attribute.loadByAttributeMetadata,它被设置为true 我将其更改为false,因为core/module/catalog/CatalogModule 有一个操作attribute/list 需要调度以供应用程序使用。因此,如果config/local.json 中的entities.attribute.loadByAttributeMetadata 设置为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])
        })
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-04
      • 2023-03-15
      • 2021-03-07
      • 1970-01-01
      • 2021-12-31
      • 1970-01-01
      • 2012-05-11
      • 1970-01-01
      相关资源
      最近更新 更多