Magento2: Как добавить новый тип продукта
Этот новый тип продукта будет содержать родительскую информацию о других продуктах. Эти продукты предназначены только для внутреннего использования, поэтому мне нужно только добавить атрибуты и новый тип отношения к другим продуктам, таким как продажи, перекрестные продажи. Вся остальная информация по умолчанию, такая как цены, описание и т.д., Не требуется.
Каков наилучший способ создания этого типа продукта.
Христианин
1 answers
Шаг 1: Создайте файл
app\code\Vendor\Module\registration.php
Настройка файла app\code\Vendor\Module\registration.php
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Vendor_Module',
__DIR__
);
Генерировать app\code\Vendor\Module\etc\module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Vendor_Module" setup_version="1.0.0">
</module>
</config>
Далее, создание файла etc/product_types.xml
необходимо для определения модели нового типа продукта.
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Catalog:etc/product_types.xsd">
<type name="new_product_type" label="New Product Type" modelInstance="Vendor\Module\Model\Product\Type\NewProductType" indexPriority="60" sortOrder="80" isQty="true">
<priceModel instance="Vendor\Module\Model\Product\Price" />
</type>
</config>
Шаг 2: Введите код :
Vendor\Module\Model\Product\Type\NewProductType
модель
Введите код ниже: Vendor\Module\Model\Product\Type\NewProductType
модель, которая должна основываться на Magento\Catalog\Model\Product\Type\AbstractType
.
<?php
namespace Vendor\Module\Model\Product\Type;
class NewProductType extends \Magento\Catalog\Model\Product\Type\AbstractType
{
}
После этого можно переписать некоторые функции и реализовать некоторые изменения, которые вы хотите там внести.
Шаг 3:
Enter the Vendor\Module\Model\Product\Price
модель
Введите Vendor\Module\Model\Product\Price model
, который должен основываться на Magento\Catalog\Model\Product\Type\Price
.
<?php
namespace Vendor\Module\Model\Product;
class Price extends \Magento\Catalog\Model\Product\Type\Price
{
}
Кроме того, вы также можете установить новый тип продукта как универсальный тип с некоторыми пользовательскими функциями после расширения Magento\Catalog\Model\Product\Type\Price class
Шаг 4: Опубликуйте новый тип продукта Magento 2
Это шаг, позволяющий вам проверить результат у администратора Magento 2 при выполнении вышеуказанных шагов. новый Тип продукта будет отображаться как старые типы (Простой или настраиваемый продукт).
Я надеюсь, что это поможет