Creating a Custom Product Attribute in Magento 2 with Sample Code

In Magento 2, product attributes play a critical role in organizing and managing your products. By default, Magento 2 provides a range of product attributes, including name, price, and description. However, sometimes you may need to create a custom product attribute to meet the specific needs of your online store.

In this blog post, we will walk through the process of creating a custom product attribute in Magento 2, and provide sample code to help you get started.

To create a custom product attribute in Magento 2, you will need to complete the following steps:

  1. Create an UpgradeData script
  2. Define your custom attribute in a setup file
  3. Run the upgrade script

Let’s take a closer look at each of these steps.

1. Create an UpgradeData Script To create a custom product attribute

You will need to create an UpgradeData script. This script is used to upgrade the database schema in Magento 2, and is where you will define your custom attribute.

Here is a sample UpgradeData script:

namespace YourVendor\YourModule\Setup;

use Magento\Framework\Setup\UpgradeDataInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;

class UpgradeData implements UpgradeDataInterface
    public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context)

        // Check if the attribute already exists
        if (version_compare($context->getVersion(), '1.0.1', '<')) {
            $eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
                    'type' => 'varchar',
                    'label' => 'Your Attribute Label',
                    'input' => 'text',
                    'required' => false,
                    'sort_order' => 50,
                    'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
                    'group' => 'General',


2. Define Your Custom Attribute in a Setup File In the UpgradeData script

We defined our custom attribute in the addAttribute method. This method takes several parameters, including the type of attribute, the label, and the input type.

3. Run the Upgrade Script Finally

To run the upgrade script, you will need to run the following command in your Magento 2 root directory:

php bin/magento setup:upgrade

This will upgrade the database schema and add your custom attribute to the product entity in Magento 2.

In conclusion, creating a custom product attribute in Magento 2 is a straightforward process that can be achieved with a few lines of code. By creating custom product attributes, you can improve the organization and management of your products, helping you provide a better shopping experience for your customers.

0 0 votes
Article Rating
Notify of

Inline Feedbacks
View all comments
Would love your thoughts, please comment.x