마 젠토 2 : 확장 속성과 커스텀 속성의 차이점은 무엇입니까?


13

확장 속성사용자 지정 속성의 정확한 차이점은 무엇 입니까?

나에게 몇 가지 아이디어를 제공 할 수있는 사람?!


@Amit, 이것 좀 도와 주실 래요?!
익명

왜 내가 질문에 대답하지 못하는지 100 % 확신하지 못합니다. 그러나 나의 견해는 동일하다
Amit Bera

답변:


8

사용자 지정 특성은 제품 특성, 고객 특성 등과 같이 엔터티를 설명하기 위해 추가 된 특성입니다. 이들은 EAV 특성의 하위 집합입니다.

반면에 확장 특성은 일반적으로 사용자 지정 외부 테이블에서 엔터티에 복잡한 데이터를 추가하는 등의 복잡한 데이터 형식에 사용됩니다.

간단히 말해, 사용자 지정 특성은 EAV 표준을 준수하는 반면 확장 특성은 사용자 지정 특성이 처리 할 수없는보다 복잡한 데이터에 사용됩니다.


5

맞춤 속성 은 판매자를 대신하여 추가 된 속성 입니다. 예를 들어 판매자는 'customizeable'이라는 제품 엔터티에 사용자 지정 특성을 추가하여이 제품이 타사에서 사용자 지정되는지 여부를 저장하려는 정보를 저장해야 할 수 있습니다.

사용자 정의 속성과 확장 속성은 모두 데이터를 유지하기 위해 약간의 기능이 동일하지만 사용자 정의 속성과 확장 속성 기능에는 상당한 차이가 있습니다. 예 :

다른 DB 테이블과 결합하여 확장 속성을 가진 추가 검색 기준을 추가 할 수 있습니다. ACL을 추가하여 인증 할 수 있습니다. 조금 자세히 설명하겠습니다.

다음 스 니펫을 살펴보십시오. /etc/extension_attributes.xml을 작성해야합니다.

 <config>
    <extension_attributes for="Path\To\Interface">
        <attribute code="name_of_attribute" type="datatype">
           <resources>
              <resource ref="permission"/>
           </resources>
           <join reference_table="" reference_field="" join_on_field="">
              <field>field1</field>
           <field>field2</field>
           </join>
        </attribute>
    </extension_attributes>
</config>

확장 속성 검색 : 결합 태그에서 결합하려는 관련 테이블을 정의하고이 테이블에서 데이터를 가져올 수 있습니다. 에서 reference_table 속성이있는 동안 테이블 이름을 지정해야 reference_field이 있는 당신이 당신의 관계를 넣어 기본 키 (이 확장 속성이 예에서 제품처럼 만들 수있는 첫 번째 테이블 키)입니다 / 가입. 이름으로 join_on_field 는 레코드를 원하는 두 번째 테이블 PK가 될 것입니다. 필드 태그 아래에서 실제로 데이터를 얻으려는 모든 필수 필드를 추가 할 수 있습니다

확장 속성 인증 : 태그를 사용하여이 특정 확장 속성 값을 제한 할 수 있습니다 . 이해하기 예를 들어 보겠습니다. 제품에 대해 하나 이상의 확장 속성이 있고 그 중 하나에 extra_special_price라고 말하면 모든 사용자에게 표시하고 싶지 않습니다. 이 속성을 제한 할 수 있습니다. 다음 스 니펫을 살펴보십시오.

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Api/etc/extension_attributes.xsd">
    <extension_attributes for="Magento\Catalog\Api\Data\ProductInterface">
        <attribute code="stock_item" type="Magento\CatalogInventory\Api\Data\StockItemInterface">
            <resources>
                <resource ref="Magento_CatalogInventory::cataloginventory"/>
            </resources>
        </attribute>
    </extension_attributes>
<attribute code="logo_size" type="string">           
        </attribute>
</config>

이 예에서 stock_item 속성은 Magento_CatalogInventory :: cataloginventory 권한이있는 사용자로만 제한되며 logo_size에는 조건이 없습니다.

따라서 현재 사용자에게 카탈로그 인벤토리에 대한 권한이 있으면 제품 객체를 (어떻게 든 API를 통해 또는 웹에서) 가져 오면 stock_items 값만 가져옵니다.

이 질문의 범위를 벗어나지 만 매우 간단한 방법으로 다음 링크에서 custom_extension을 사용하여 속성을 작성하는 방법을 살펴보십시오. extension_attributes 작성 방법

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.