Cách tạo thuộc tính sản phẩm Magento 2 theo chương trình với loại: Vùng văn bản.
Cách tạo thuộc tính sản phẩm Magento 2 theo chương trình với loại: Vùng văn bản.
Câu trả lời:
Tổng quan về việc thêm thuộc tính sản phẩm theo chương trình
InstallData.php
install()
phương thứcBước 1: Tạo tập tinInstallData.php
Chúng ta sẽ bắt đầu với lớp InstallData nằm ở
app/code/Mageplaza/HelloWorld/Setup/InstallData.php.
Nội dung cho tập tin này:
<?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;
}
}
Bước 2: Xác định phương thức install ()
<?php
public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
{
}
Bước 3: Tạo thuộc tính tùy chỉnh
Dưới đây là tất cả các dòng mã InstallData.php
để tạo thuộc tính sản phẩm theo chương trình.
<?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' => ''
]
);
}
}
Như bạn có thể thấy, tất cả các phương thức addAttribution yêu cầu là: Id loại của thực thể mà chúng ta muốn thêm thuộc tính Tên của thuộc tính Một mảng các cặp giá trị khóa để xác định thuộc tính như nhóm, loại đầu vào, nguồn, nhãn nhãn
Tất cả đã xong, vui lòng chạy tập lệnh nâng cấp php bin / magento setup: nâng cấp để cài đặt mô-đun và thuộc tính sản phẩm sample_attribution sẽ được tạo.
Nếu bạn muốn xóa thuộc tính sản phẩm, bạn có thể sử dụng phương thức removeAttribution thay vì addAttribution. Nó sẽ như thế này:
BIÊN TẬP:
để gỡ cài đặt, hãy tạo ứng dụng / mã / 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');
}
}
Ngoài ra, bạn có thể theo dõi URL bên dưới để tạo thuộc tính sản phẩm tùy chỉnh.