Skip to content

Unable to add attribute to product by InstallData

I would like to add a custom attribute to the product and create an installData.php according to the guide. However, nothing changed after se:up. Please help.

app/code/My/Module/Setup/InstallData.php

<?php
namespace MyModuleSetup;

use MagentoEavSetupEavSetup;
use MagentoEavSetupEavSetupFactory;
use MagentoFrameworkSetupInstallDataInterface;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupModuleDataSetupInterface;

class InstallData implements InstallDataInterface
{
private $eavSetupFactory;

public function __construct(EavSetupFactory $eavSetupFactory)
{
    $this->eavSetupFactory = $eavSetupFactory;
}

public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
{
    $eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
    $eavSetup->addAttribute(
        MagentoCatalogModelProduct::ENTITY,
        'sample_attribute',
        [
            'type' => 'text',
            'backend' => '',
            'frontend' => '',
            'label' => 'csutom_attribute',
            'input' => 'text',
            'class' => '',
            'source' => '',
            'global' => MagentoEavModelEntityAttributeScopedAttributeInterface::SCOPE_GLOBAL,
            'visible' => true,
            'required' => false,
            'user_defined' => false,
            'default' => '',
            'searchable' => false,
            'filterable' => false,
            'comparable' => false,
            'visible_on_front' => false,
            'used_in_product_listing' => true,
            'unique' => false,
            'apply_to' => ''
        ]
    );
}

public static function getDependencies()
{
    return [];
}

public function getAliases()
{
    return [];
}

public static function getVersion()
{
    return '1.0.0';
}

}