programing

Vue Storefront: 옵션 ID 대신 커스텀 속성 필터 라벨 표시

firstcheck 2022. 7. 27. 21:51
반응형

Vue Storefront: 옵션 ID 대신 커스텀 속성 필터 라벨 표시

카테고리 페이지에 필터 라벨을 표시하는 방법을 며칠간 알아보고 있습니다.문서에 언급된 바와 같이 나는 내부에 속성을 추가했다.config.products.defaultFilters[]필터가 보이기 시작했어요.

있습니다color그리고.brand필터가 포함되어 있습니다.컬러 필터의 경우 컬러 ID를 컬러 이름에 매핑했습니다.config.products.colorMappings거기에 올바르게 표시되어 있습니다.하지만 브랜드도 마찬가지이지만 정적 솔루션이기 때문에 관리자가 새로운 브랜드를 추가할 때마다 매핑을 추가하고 스토어 프런트를 다시 구축해야 합니다.

나는 그들의 포럼을 확인하려고 노력했지만 소용이 없었다.Vue Storefront vuex를 확인했습니다.catalog그리고.category-next는 힌트를 저장하지만 관련 정보를 찾을 수 없습니다.

여기에 이미지 설명 입력

brand_filter 아래의 옵션에 대한 라벨은 읽을 수 있어야 하지만 브랜드 속성 옵션이id

좋아요, 이 문제에 대한 해결책을 찾기 위해 며칠을 보낸 후, 저는 마침내 이 대답에서 힌트를 얻었습니다.

teme vsf-capybara를 사용하고 있으며, 가이드에 따라 설정 시 vsf-capybara를 생성했습니다.local.json부터generate-local-config.js거기서 설정을 수동으로 통합했습니다.local.json로.config/local.json이전까지는 메인 설정 파일에 브랜드 또는 컬러라는 이름의 필터가 추가되어 있지 않았습니다.

필터 라벨이 잘못되어 있는 config 속성은 다음과 같습니다.entities.attribute.loadByAttributeMetadata그리고 그것은 로 설정되었다.true제가 false로 바꾼 이유는core/module/catalog/CatalogModule1개의 액션이 있다attribute/list를 어플리케이션용으로 디스패치할 필요가 있습니다.그래서 만약에entities.attribute.loadByAttributeMetadataconfig/local.jsontrue로 설정하면 이 액션은 디스패치되지 않습니다.Catalog Module에서 발췌한 내용은 다음과 같습니다.

if (!config.entities.attribute.loadByAttributeMetadata) {
    await store.dispatch('attribute/list', { // loading attributes for application use
      filterValues: uniq([...config.products.defaultFilters, ...config.entities.productListWithChildren.includeFields])
    })
}

언급URL : https://stackoverflow.com/questions/64277581/vue-storefront-display-labels-for-custom-attribute-filter-instead-of-option-id

반응형