এক্ষেত্রে এক্সটেনশন অ্যাট্রিবিউট মেকানিজম ব্যবহার করা উচিত। এটি তৃতীয় পক্ষের মডিউলগুলির মাধ্যমে মূল APIগুলির সম্প্রসারণের অনুমতি দেয়। নতুন এক্সটেনশন বৈশিষ্ট্য সক্ষম করার জন্য জেনেরিক পদক্ষেপ:
- অফিসিয়াল ডক্সে বর্ণিত হিসাবে এক্সটেনশন বৈশিষ্ট্যটি ঘোষণা করুন । ক্লিয়ারিং
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
নোড ঘোষণা করুন declare তা না হলে কেবল এড়িয়ে যান
- আপনার কাস্টম বৈশিষ্ট্যটি অ্যাক্সেস করুন:,
$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>