Estás leyendo la publicación: Cómo crear un conjunto de atributos programáticamente en Magento 2
espacio de nombres Proveedor\Extensión\Configuración;
utilice 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 como AttributeSetFactory;
clase InstallData implementa InstallDataInterface
{
privado $atributoSetFactory;
privado $ conjunto de atributos;
privado $categoríaSetupFactory;
función pública __construct(AttributeSetFactory $attributeSetFactory, CategorySetupFactory $categorySetupFactory )
{
$this->attributeSetFactory = $attributeSetFactory;
$this->categorySetupFactory = $categorySetupFactory;
}
instalación de función pública (ModuleDataSetupInterface $configuración, ModuleContextInterface $contexto)
{
$configuración->iniciarConfiguración();
$categorySetup = $this->categorySetupFactory->create([‘setup’ => $setup]);
$attributeSet = $this->attributeSetFactory->create();
$entityTypeId = $categorySetup->getEntityTypeId(\Magento\Catalog\Model\Product::ENTITY);
$attributeSetId = $categorySetup->getDefaultAttributeSetId($entityTypeId);
$datos = [
‘attribute_set_name’ => ‘MyCustomAttribute’,
‘entity_type_id’ => $entityTypeId,
‘sort_order’ => 200,
];
$conjuntoatributos->setData($datos);
$conjuntoatributos->validar();
$conjuntoatributos->guardar();
$atributoSet->initFromSkeleton($attributeSetId);
$conjuntoatributos->guardar();
$instalación->endSetup();
}
}