Magento2通过安装脚本创建属性组和产品属性
在Magento 2中,我们可以在后台上创建许多产品属性和属性组。但有时我们可能需要通过可安装脚本创建新的产品属性和属性组。例如,当我们在Magento 2中开发新扩展或自定义Magento 2的原生功能时,我们必须使用可安装脚本来创建新的产品属性和属性组。创建产品属性和属性组不是一件困难的事,本文将帮助您通过InstallData.php在Magento 2中创建新的属性组和产品属性。
假设我们将使用以下脚本创建一个名为“My Custom Attribute Group”的新属性组和名为“My Sample Attribute”的产品属性。
第1步:定义新模块
为了在Magento 2中创建新的扩展,首先我们必须在下面的文件路径中创建一个名为module.xml的文件来定义新模块,
文件路径:app/code/Alwayly/MyAttribute/etc/module.xml
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd"> <module name="Alwayly_MyAttribute" setup_version="1.0.0"> <sequence> <module name="Magento_Catalog"/> </sequence> </module> </config>
接下来,在下面的文件路径中创建registration.php文件,
文件路径:app/code/Alwayly/MyAttribute/registration.php
<?php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, 'Alwayly_MyAttribute', __DIR__ );
第2步:创建安装文件InstallData.php
然后,在以下文件路径中创建名为InstallData.php的文件。在此文件中,我们必须提供新创建的产品属性组的名称和属性信息,
文件路径:app/code/Alwayly/MyAttribute/Setup/InstallData.php
<?php namespace Alwayly\MyAttribute\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; use Magento\Eav\Model\Config; class InstallData implements InstallDataInterface { private $eavSetupFactory; public function __construct(EavSetupFactory $eavSetupFactory, Config $eavConfig) { $this->eavSetupFactory = $eavSetupFactory; $this->eavConfig = $eavConfig; } public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context) { $eavSetup = $this->eavSetupFactory->create(['setup' => $setup]); $eavSetup->addAttribute( \Magento\Catalog\Model\Product::ENTITY, 'my_sample_attribute', [ 'group' => 'My Custom Attribute Group', 'type' => 'varchar', 'backend' => '', 'frontend' => '', 'label' => 'My Sample Attribute', 'input' => 'text', 'note' => 'My Sample Attribute', 'class' => '', 'source' => '', 'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL, 'visible' => true, 'required' => false, 'user_defined' => true, 'default' => '', 'searchable' => false, 'filterable' => false, 'comparable' => false, 'visible_on_front' => true, 'used_in_product_listing' => true, 'unique' => false, 'apply_to' => 'simple' ] ); } }
第3步:模块设置升级
最后,我们必须通过在Magento安装的根目录中运行以下SSH命令来启用我们的新扩展,
php magento module:enable Alwayly_MyAttribute
然后,在CLI中运行以下命令以升级设置,
php magento setup:upgrade
然后,清除缓存并检查您的Magento 2管理员。现在,您可以在管理端查看新创建的产品属性组和产品属性,如下面的参考截图。
参考截图:
希望这可以帮助你。