In magento 2 Attribute is create using Setup file. If we need to install the data in the system (database) create InstallData.php file in Setup folder so path should be
app/code/<package name>/<module name>/Setup/InstallData.php
In the InstallData.php we need to create class for module.We need to add the below content to create attribute.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
namespace Webmull\Featuredproduct\Setup; use Magento\Eav\Setup\EavSetup; use Magento\Eav\Setup\EavSetupFactory; use Magento\Framework\Setup\InstallDataInterface; use Magento\Framework\Setup\ModuleContextInterface; use Magento\Framework\Setup\ModuleDataSetupInterface; /** * @codeCoverageIgnore */ class InstallData implements InstallDataInterface { /** * EAV setup factory * * @var EavSetupFactory */ private $eavSetupFactory; /** * Init * * @param EavSetupFactory $eavSetupFactory */ public function __construct(EavSetupFactory $eavSetupFactory) { $this->eavSetupFactory = $eavSetupFactory; } public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context) { /** @var EavSetup $eavSetup */ $eavSetup = $this->eavSetupFactory->create(['setup' => $setup]); /** * Add attributes to the eav/attribute */ $eavSetup->addAttribute( \Magento\Catalog\Model\Product::ENTITY, 'is_featured', [ 'group'=> 'General', 'type'=>'int', 'backend'=>'', 'frontend'=>'', 'label'=>'Featured Product', 'input'=>'boolean', 'class'=>'', 'source'=>'', 'global'=>\Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL, 'visible'=>true, 'required'=>false, 'user_defined'=>true, 'default'=>'', 'searchable'=>false, 'filterable'=>false, 'comparable'=>false, 'visible_on_front'=>false, 'used_in_product_listing'=>true, 'unique'=>false, 'apply_to'=>'simple,configurable,virtual,bundle,downloadable' ]); } } |