Cara membuat Atribut Produk Magento 2 Secara terprogram dengan tipe: Area Teks.
Cara membuat Atribut Produk Magento 2 Secara terprogram dengan tipe: Area Teks.
Jawaban:
Ikhtisar Menambahkan Atribut Produk Secara Programatis
InstallData.php
install()
metodeLangkah 1: Buat fileInstallData.php
Kami akan mulai dengan kelas InstallData yang berlokasi di
app/code/Mageplaza/HelloWorld/Setup/InstallData.php.
Konten untuk file ini:
<?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;
}
}
Langkah 2: Tentukan metode install ()
<?php
public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
{
}
Langkah 3: Buat atribut khusus
Berikut adalah semua kode baris InstallData.php
untuk membuat atribut produk secara terprogram.
<?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' => ''
]
);
}
}
Seperti yang Anda lihat, semua metode addAttribute membutuhkan adalah: Id tipe entitas yang ingin kita tambahkan atribut Nama atribut Sebuah array pasangan nilai kunci untuk mendefinisikan atribut seperti grup, tipe input, sumber, label ...
Setelah selesai, jalankan skrip upgrade setup bin / magento php: upgrade untuk menginstal modul dan atribut sample_attribute produk akan dibuat.
Jika Anda ingin menghapus atribut produk, Anda dapat menggunakan metode removeAttribute alih-alih addAttribute. Akan seperti ini:
EDIT:
untuk uninstall, buat aplikasi / kode / 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');
}
}
Anda juga dapat mengikuti URL di bawah ini untuk membuat atribut produk khusus.