Як програмно створити атрибут продукту в Magento 2?

Атрибути продукту – це характеристики продукту, які допомагають вам пропонувати клієнтам широкий спектр варіантів та впливати на їхні рішення про покупку. Щойно ви додавання атрибутів товару в Magento , це ще не все. Ви також можете використовувати атрибути продукту для визначення правила динамічних категорій , правил цін на кошик, правила щодо пов'язаних продуктів та багатьох інших опцій. 

З огляду на це, важливо знати, як створювати атрибути продукту в Magento програмно. Про всяк випадок, якщо вам потрібно буде швидше створити кілька атрибутів.

Щоб створити атрибути продукту в Magento програмно, створіть файл InstallData.php у app/code/Vendor/Module/Setup/InstallData.php.

<?php
namespace Vendor\Module\Setup;
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 Attribute',
'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' => ''
]
);
}
}

Після завершення не забудьте виконати такі команди для встановлення модуля, і це все:

php bin/magento setup:upgrade

php bin/magento setup:static-content:deploy

Примітка: якщо ви не хочете, щоб ваш веб-сайт був недоступний під час розгортання, спробуйте ці команди розгортання з нульовим часом простою для Magento 2 .

Потім перевірте атрибут продукту в панелі адміністратора.

 Створіть атрибут продукту в Magento 2 програмно

Якщо ви хочете видалити атрибут продукту, використовуйте removeAttribute замість addAttribute. Або ж, замість видалення атрибутів, ви можете використовувати масове оновлення атрибутів товарів .

public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
    {
        $eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
        $eavSetup->removeAttribute(
          \Magento\Catalog\Model\Product::ENTITY,
           'sample_attribute');
    }