Добавить атрибут продукта программно

Шаг 1: Создать файл InstallData.php

Мы начнем с класса InstallData, который находится в app /code/you_module/HelloWorld/Setup/InstallData.php. Содержание этого файла:

<?php
namespaceyou_module\HelloWorld\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;

class InstallData implements InstallDataInterface
{
	private $eavSetupFactory;

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

Шаг 2:Определите метод install()

<?php
	
public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
{
	
}

Шаг 3: Создать пользовательский атрибут

Вот все строки кода InstallSchema.php для программного создания атрибута продукта.

<?php
namespace you_module\HelloWorld\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;

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(
			\Magento\Catalog\Model\Product::ENTITY,
			'sample_attribute',
			[
				'type' => 'text',
				'backend' => '',
				'frontend' => '',
				'label' => 'Sample Atrribute',
				'input' => 'text',
				'class' => '',
				'source' => '',
				'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
				'visible' => true,
				'required' => true,
				'user_defined' => false,
				'default' => '',
				'searchable' => false,
				'filterable' => false,
				'comparable' => false,
				'visible_on_front' => false,
				'used_in_product_listing' => true,
				'unique' => false,
				'apply_to' => ''
			]
		);
	}
}

Как видите, все, что требуется для метода addAttribute:

  1. Идентификатор типа объекта, который мы хотим добавить атрибут
  2. Наименование атрибута
  3. Массив пар ключ-значение для определения атрибута, такого как группа, тип ввода, источник, метка…

Все готово, пожалуйста, запустите скрипт обновления php bin/magento setup:upgrade, чтобы установить модуль, и будет создан атрибут product sample_attribute. После завершения обновления, пожалуйста, запустите php bin/magento setup:static-content:deploy и перейдите к продукту от admin, чтобы проверить результат.

Добавить комментарий