Как добавить новый тип товара в Magento 2?

Пользователь

от dorothea_stoltenberg , в категории: PHP , 8 месяцев назад

Как добавить новый тип товара в Magento 2?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от rebekah , 8 месяцев назад

@dorothea_stoltenberg 

Чтобы добавить новый тип товара в Magento 2, вам понадобится выполнить следующие шаги:

  1. Создайте модуль для вашего нового типа товара. В директории app/code создайте новую директорию с именем вашего модуля, например Vendor_Module.
  2. В директории вашего модуля создайте файл registration.php и добавьте в него следующий код:


  1. Создайте файл etc/module.xml в директории вашего модуля и добавьте в него следующий код:
1
2
3
4
5
6
7
8

    
        
            
        
    


  1. Создайте файл etc/product_types.xml в директории вашего модуля и добавьте в него следующий код:
1
2
3
4

    


  1. Создайте файл Setup/UpgradeData.php в директории вашего модуля и добавьте в него следующий код:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
eavSetupFactory = $eavSetupFactory;
        $this->categorySetupFactory = $categorySetupFactory;
    }

    public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
    {
        $setup->startSetup();

        $eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
        $eavSetup->addAttribute(
            Product::ENTITY,
            'custom_attribute',
            [
                'type' => 'text',
                'backend' => '',
                'frontend' => '',
                'label' => 'Custom Attribute',
                'input' => 'text',
                'class' => '',
                'source' => '',
                'global' => ScopedAttributeInterface::SCOPE_WEBSITE,
                'visible' => true,
                'required' => false,
                'user_defined' => false,
                'default' => '',
                'searchable' => true,
                'filterable' => true,
                'comparable' => false,
                'visible_on_front' => true,
                'used_in_product_listing' => true,
                'unique' => false,
            ]
        );

        $categoryId = $this->categorySetupFactory->create(['setup' => $setup]);

        $categoryId->addAttributeToSet(
            ProductAttributeInterface::ENTITY_TYPE_CODE,
            Product::DEFAULT_ATTRIBUTE_SET_ID,
            null,
            'custom_attribute'
        );

        $setup->endSetup();
    }
}


  1. Выполните следующие команды в командной строке: php bin/magento module:enable Vendor_Module php bin/magento setup:upgrade php bin/magento cache:flush
  2. После выполнения этих шагов вы увидите новый тип товара с полем "Custom Attribute" при создании или редактировании товара в административной части Magento.

Пользователь

от rudolph_senger , 8 месяцев назад

@dorothea_stoltenberg 

Чтобы добавить новый тип товара в Magento 2, выполните следующие шаги:

  1. Создайте свой модуль в Magento 2. Для этого нужно создать папку app/code/
  2. Создайте файл app/code/
1
2
3
_',
    __DIR__
);


  1. Создайте файл app/code/
1
2
3
4
5
6
7
8

    
        
            
        
    


  1. Создайте файл app/code/
1
2
3
4

    


  1. Создайте файл модели app/code/
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
\Model;

class Type extends MagentoCatalogModelProductTypeAbstractType
{
    const TYPE_ID = '';

    public function isVirtual($product)
    {
        return false;
    }

    public function isSalable($product)
    {
        return true; // Измените это значение, чтобы указать, является ли товар доступным для продажи или нет
    }
}


  1. Запустите следующие команды в командной строке, чтобы активировать модуль:
1
2
php bin/magento module:enable <Vendor>_<Module>
php bin/magento setup:upgrade


  1. Зайдите в административный раздел Magento и откройте раздел "Stores" -> "Product Types". Нажмите на кнопку "Add New Type" и введите значения для нового типа товара. Укажите
  2. Нажмите на кнопку "Save" и новый тип товара будет добавлен в Magento 2.


После выполнения этих шагов, вы сможете использовать новый тип товара в магазине Magento 2.