विस्तार गुण तंत्र का उपयोग इस मामले में किया जाना चाहिए। यह 3 जी मॉड्यूल द्वारा कोर एपीआई के विस्तार की अनुमति देता है। नई एक्सटेंशन विशेषता को सक्षम करने के लिए सामान्य चरण:
- आधिकारिक डॉक्स में वर्णित विस्तार विशेषता को घोषित करें । समाशोधन
var
और चलने के बाद <project_root>/bin/magento setup:di:compile
, इस नई विशेषता के लिए संबंधित सेटर और गेट्टर को प्रकट होना चाहिए \Magento\Customer\Api\Data\GroupExtensionInterface
(यह इंटरफ़ेस ऑटो-जनरेट किया गया है)
- के लिए लिखें प्लगइन्स
\Magento\Customer\Api\GroupRepositoryInterface::save
, \Magento\Customer\Api\GroupRepositoryInterface::getById
(और आवश्यक के रूप में किसी अन्य सेवा विधि) को बचाने के लिए / लोड नई विशेषता। एक एक्सटेंशन डेवलपर के रूप में, केवल आप जानते हैं कि यह विशेषता कहाँ संग्रहीत होनी चाहिए, कोई भी तालिका हो सकती है। \Magento\Downloadable\Model\Plugin\AroundProductRepositorySave::aroundSave
एक उदाहरण के रूप में देखें
- यदि आपको इस विशेषता को संग्रह (दृश्यमान / फ़िल्टर करने योग्य बनाने) में दृश्यमान बनाने की आवश्यकता है, तो
join
नोड घोषित करें । यदि नहीं, तो बस इसे छोड़ें
- अपने कस्टम विशेषता को इस रूप में एक्सेस करें:
$customerGroup->getExtensionAttributes()->getMyAttribute()
जहां customerGroup
लागू होता है \Magento\Customer\Api\Data\GroupInterface
। setMyAttribute()
के रूप में अच्छी तरह से इस्तेमाल किया जा सकता है
नीचे विन्यास का उदाहरण दिया गया है जिसे लगाना चाहिए VendorName/ModuleName/etc/extension_attributes.xml
<?xml version="1.0"?>
<config>
<extension_attributes for="Magento\Customer\Api\Data\GroupInterface">
<!--Data interface can be used as a type of attribute, see example in CatalogInventory module-->
<attribute code="name_of_attribute" type="string">
<resources>
<resource ref="VendorName_ModuleName::someAclNode"/>
</resources>
<!--Join is optional, only if you need to have added attribute visible in groups list-->
<join reference_table="table_where_attribute_is_stored" reference_field="group_id_field_in_that_table" join_on_field="group_id">
<field>name_of_added_attribute_field_in_that_table</field>
</join>
</attribute>
</extension_attributes>
</config>