I have created plugin for add textbox in product attribute form.

enter image description here


<?xml version="1.0"?>

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="Magento\Catalog\Block\Adminhtml\Product\Attribute\Edit\Tab\Front">
        <plugin name="extension_attribute_edit_form" type="Vendor\Module\Plugin\Block\Adminhtml\Product\Attribute\Edit\Tab\Front" sortOrder="1"/>



namespace Vendor\Module\Plugin\Block\Adminhtml\Product\Attribute\Edit\Tab;

class Front
public function aroundGetFormHtml(
    \Magento\Catalog\Block\Adminhtml\Product\Attribute\Edit\Tab\Front $subject,
    \Closure $proceed
    $form = $subject->getForm();
    $fieldset = $form->getElement('front_fieldset');
            'name' => 'stn_price',
            'label' => __('Stone Price'),
            'title' => __('Stone Price'),
            'required' => false
    return $proceed();


<?xml version="1.0"?>
<schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<table name="catalog_eav_attribute" resource="default" engine="innodb" comment="Catalog EAV Attribute Table">
    <column xsi:type="int" name="stn_price" unsigned="true" nullable="false"
            identity="false" default="0" comment="Stone Weight"/>
  • Is it possible to save data already?
    – Akif
    Sep 21, 2022 at 13:15
  • No, now i have added manually but i will save with observer
    – Darshit
    Sep 21, 2022 at 14:04

1 Answer 1


First of all you need to create a data patch to create field in eav_attribute table. It will save data in db and fetch data in product attribute form


namespace Vendor\Module\Setup\Patch\Data;

use Magento\Catalog\Model\Product;
use Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface;
use Magento\Eav\Setup\EavSetup;
use Magento\Eav\Setup\EavSetupFactory;
use Magento\Framework\Setup\ModuleDataSetupInterface;
use Magento\Framework\Setup\Patch\DataPatchInterface;

class Data implements DataPatchInterface
     * @var ModuleDataSetupInterface
    private $moduleDataSetup;

     * @var EavSetupFactory
    private $eavSetupFactory;

    public function __construct(
        ModuleDataSetupInterface $moduleDataSetup,
        EavSetupFactory $categorySetup
    ) {
        $this->moduleDataSetup = $moduleDataSetup;
        $this->eavSetupFactory = $eavSetupFactory;

    public function apply()
        $eavSetup = $this->eavSetupFactory->create(['setup' => $this->moduleDataSetup]);
                'type' => 'text',
                'label' => 'Stone Price',
                'required' => false,
                'visible' => 1,
                'visible_on_front' => 1,
                'global' => ScopedAttributeInterface::SCOPE_STORE,

    public static function getDependencies()
        return [];

    public function getAliases()
        return [];

After creating this file

Run commands:

php bin/magento setup:upgrade and others as required

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.