I'm trying to add an extension attribute to a product attribute (\Magento\Catalog\Model\ResourceModel\Eav\Attribute
). I've tried the documentations' examples and various articles on Magento Stack Exchange, but I can't get it to work.
Currently I have the following:
etc/extension_attributes.xml
:
<?xml version="1.0"?>
<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\ProductAttributeInterface">
<attribute code="additions" type="array"/>
</extension_attributes>
</config>
Now if I understand it correctly, this should already return something other than NULL
when I call $attribute->getExtensionAttributes()
right? Because currently it doesn't, and I'm clueless to why.
I'm using an event to load additional data and put it into the extension attribute but with no success.
I've also tried applying it directly to the attribute class, rather than the interface, but with no success.
Does anyone has more experience with extension attributes?
Best Answer
If what you mean is adding extension attribute named
Addition
(model) forProduct
model, this may help you.Create or append
extension_attributes.xml
configuration.app/code/ProjectName/ModuleName/etc/extension_attributes.xml
Create
Addition
model.app/code/ProjectName/ModuleName/Model/Addition.php
Create
Addition
resource.app/code/ProjectName/ModuleName/Model/ResourceModel/Addition.php
Create
Addition
collection.app/code/ProjectName/ModuleName/Model/Addition/Collection.php
Create
Product
model plugin configuration.app/code/ProjectName/ModuleName/etc/di.xml
Create
Product
model plugin class.app/code/ProjectName/ModuleName/Plugin/Catalog/Model/Product.php