Cómo crear un atributo de producto Magento 2 mediante programación con el tipo: Área de texto.
Cómo crear un atributo de producto Magento 2 mediante programación con el tipo: Área de texto.
Respuestas:
Descripción general de la adición de atributos de producto mediante programación
InstallData.php
install()
métodoPaso 1: crear archivoInstallData.php
Comenzaremos con la clase InstallData que se encuentra en
app/code/Mageplaza/HelloWorld/Setup/InstallData.php.
El contenido de este archivo:
<?php
namespace Mageplaza\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;
}
}
Paso 2: defina el método install ()
<?php
public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
{
}
Paso 3: Crear atributo personalizado
Aquí están todas las líneas de código InstallData.php
para crear un atributo de producto mediante programación.
<?php
namespace Mageplaza\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' => 'int',
'backend' => '',
'frontend' => '',
'label' => 'Sample Atrribute',
'input' => '',
'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' => ''
]
);
}
}
Como puede ver, todo lo que requiere el método addAttribute es: La identificación de tipo de la entidad a la que queremos agregar el atributo El nombre del atributo Una matriz de pares de valores clave para definir el atributo, como grupo, tipo de entrada, fuente, etiqueta ...
Todo listo, ejecute el script de actualización php bin / magento setup: actualice para instalar el módulo y se creará el atributo de producto sample_attribute.
Si desea eliminar el atributo del producto, puede usar el método removeAttribute en lugar de addAttribute. Será así:
EDITAR:
para desinstalar, cree la aplicación / código / Mageplaza / HelloWorld / Setup / Uninstall.php.
<?php
namespace Mageplaza\HelloWorld\Setup;
use Magento\Eav\Setup\EavSetupFactory;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\SchemaSetupInterface;
use Magento\Framework\Setup\UninstallInterface;
class Uninstall implements UninstallInterface
{
private $eavSetupFactory;
public function __construct(EavSetupFactory $eavSetupFactory)
{
$this->eavSetupFactory = $eavSetupFactory;
}
public function uninstall(SchemaSetupInterface $setup, ModuleContextInterface $context)
{
$eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
$eavSetup->removeAttribute(
\Magento\Catalog\Model\Product::ENTITY,
'sample_attribute');
}
}
También puede seguir la siguiente URL para crear un atributo de producto personalizado.