카테고리에 맞춤 속성을 추가해도 매장별 값이 표시되지 않습니다.

2668 단어 magento2
관리자에서 카테고리에 사용자 정의 속성을 추가할 때 설정 스크립트에서 스토어 보기를 설정하더라도 스토어 범위가 표시되지 않습니다.Vendor/Module/Setup/Patch/Data/AddViewModeCategoryAttribute.php
$eavSetup->addAttribute(
            \Magento\Catalog\Model\Category::ENTITY,
            'attribute_code',
            [
                'type' => 'text',
                'label' => 'ATTRIBUTE LABLE',
                'input' => 'select',
                'sort_order' => 333,
                'source' => 'Vendor\Module\Model\Category\Attribute\Source\NAME',
                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                'visible' => true,
                'required' => false,
                'user_defined' => false,
                'default' => 'grid',
                'group' => 'General Information',
                'backend' => ''
            ]
        );


예상 결과
  • 속성 레이블 아래에 [Store View] 레이블이 표시되어야 합니다.
  • 범위 수준(글로벌, 웹 사이트, 스토어)별로 다른 값을 볼 수 있어야 합니다.

  • 실제 결과
  • 속성 레이블 아래에 [Store View] 레이블이 표시되지 않습니다.
  • 범위 수준(글로벌, 웹 사이트, 스토어)별로 다른 값을 볼 수 없음
  • 데이터베이스에서 다른 값을 볼 수 있음

  • 이것은 Magento2 버그이며 2.3에서 아직 수정되지 않았습니다.

    수정 사항으로 아래 코드를 사용하십시오.

    모듈의 di.xml에 아래 코드를 추가하십시오.

    <preference for="Magento\Catalog\Model\Category\DataProvider" type="Vendor\Module\Model\Category\DataProvider" />
    


    사용자 정의 속성에 대한 '기본값 사용' 확인란을 추가하려면 DataProvider.php를 재정의해야 합니다. getFieldsMap'이라는 함수가 있습니다. 따라서 'getFieldsMap' 함수를 수정한 후의 'DataProvider' 클래스는 다음과 같습니다.

    Vendor/Module/Model/Category/DataProvider.php



    namespace Vendor\Module\Model\Category;
    
    use Magento\Catalog\Model\Category\DataProvider as CategoryDataProvider;
    
    class DataProvider extends CategoryDataProvider
    {
        protected function getFieldsMap() {
            $parentFieldMap = parent::getFieldsMap();       
    
            array_push($parentFieldMap['general'], 'attribute_code');
            return $parentFieldMap;
        }
    }
    


    replace the 'attribute_code' with the actual attribute code
    'general' => section in admin panel form, where attribute is displayed



    setup upgrade 명령을 실행하고 캐시를 지웁니다. 사용자 정의 속성에 대한 상점 특정 값을 설정할 수 있습니다.

    건배!!

    좋은 웹페이지 즐겨찾기