Magento2: Как добавить новый тип продукта


Этот новый тип продукта будет содержать родительскую информацию о других продуктах. Эти продукты предназначены только для внутреннего использования, поэтому мне нужно только добавить атрибуты и новый тип отношения к другим продуктам, таким как продажи, перекрестные продажи. Вся остальная информация по умолчанию, такая как цены, описание и т.д., Не требуется.

Каков наилучший способ создания этого типа продукта.

Христианин

Author: Muhammad Hasham, 2019-03-15

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 при выполнении вышеуказанных шагов. новый Тип продукта будет отображаться как старые типы (Простой или настраиваемый продукт).

Я надеюсь, что это поможет

 1
Author: Muhammad Hasham, 2019-03-16 03:43:26