Back to Top

Add Custom Catalog Input Type in Magento 2

Updated 26 March 2024

Add Custom Catalog Input Type in Magento 2

Today we will see how to add custom catalog input type in Magento 2. An event adminhtml_product_attribute_types is dispatched when the catalog input types are displayed. This event can be used to add custom catalog input types.

19_feb_paul_blog

First in etc/config.xml file inside your module

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
    <default>
        <general>
            <validator_data>
                <input_types>
                    <custom>custom</custom>
                </input_types>
            </validator_data>
        </general>
    </default>
</config>

Next in etc/adminhtml/events.xml file inside your module

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
    <event name="adminhtml_product_attribute_types">
        <observer name="webkul.custom.attribute"
                  instance="Webkul\CustomAttributeType\Observer\AddCustomAttributeType" />
    </event>
</config>

At last in your observer file path mentioned above

<?php
namespace Webkul\CustomAttributeType\Observer;

use Magento\Framework\Event\ObserverInterface;

class AddCustomAttributeType implements ObserverInterface
{
    /**
     * Add new attribute type to manage attributes interface
     *
     * @param \Magento\Framework\Event\Observer $observer
     * @return $this
     */
    public function execute(\Magento\Framework\Event\Observer $observer)
    {
        // adminhtml_product_attribute_types
        try {
            $response = $observer->getEvent()->getResponse();
            $types = $response->getTypes();
            $types[] = [
                'value' => 'custom',
                'label' => __('Custom')
            ];
            $response->setTypes($types);
            return $this;
        } catch(\Exception $e) {
            echo $e->getMessage();
        }
    }
}

This will add a new catalog input type.

Searching for an experienced
Magento 2 Company ?
Find out More

For more details you can see this magento file

Magento/Weee/Observer/AddWeeeTaxAttributeTypeObserver.php

That’s it.

Happy coding

. . .

Leave a Comment

Your email address will not be published. Required fields are marked*


Be the first to comment.

Back to Top

Message Sent!

If you have more details or questions, you can reply to the received confirmation email.

Back to Home