Хоча атрибут продукту є окремою характеристикою продукту, набір атрибутів продукту – це група цих характеристик, які визначають продукт. Ви будете використовувати атрибути продукту щоразу під час створення продуктів у Magento.
Якщо вам потрібно створити кілька атрибутів продукту, це зробити через панель адміністратора може зайняти багато часу. Тому, якщо вам потрібно зробити це швидко, створіть набір атрибутів у Magento 2 програмно.
Примітка: Перш ніж створювати набори атрибутів, вам потрібно створити атрибути продукту. Тому вам може знадобитися ознайомитися з нашим посібником щодо як програмно створювати атрибути товару в Magento .
Використовуйте наступний код, щоб створити набір атрибутів програмно. Створіть файл InstallData.php у app/code/Vendor/Module/Setup/InstallData.php.
<?php
namespace Vendor\Extension\Setup;
use Magento\Framework\Setup\InstallDataInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;
use Magento\Catalog\Setup\CategorySetupFactory;
use Magento\Eav\Model\Entity\Attribute\SetFactory as AttributeSetFactory;
class InstallData implements InstallDataInterface
{
private $attributeSetFactory;
private $attributeSet;
private $categorySetupFactory;
public function __construct(AttributeSetFactory $attributeSetFactory, CategorySetupFactory $categorySetupFactory )
{
$this->attributeSetFactory = $attributeSetFactory;
$this->categorySetupFactory = $categorySetupFactory;
}
public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
{
$setup->startSetup();
$categorySetup = $this->categorySetupFactory->create(['setup' => $setup]);
$attributeSet = $this->attributeSetFactory->create();
$entityTypeId = $categorySetup->getEntityTypeId(\Magento\Catalog\Model\Product::ENTITY);
$attributeSetId = $categorySetup->getDefaultAttributeSetId($entityTypeId);
$data = [
'attribute_set_name' => 'MyCustomAttribute',
'entity_type_id' => $entityTypeId,
'sort_order' => 200,
];
$attributeSet->setData($data);
$attributeSet->validate();
$attributeSet->save();
$attributeSet->initFromSkeleton($attributeSetId);
$attributeSet->save();
$setup->endSetup();
}
}
. Якщо ви все зробите правильно, ви зможете побачити свій набір атрибутів серед інших під час створення нового продукту:
![]()
Після створення наборів атрибутів продукту та атрибутів продукту програмно призначати атрибути наборам атрибутів .