Magento 2'ye yeni bir ürün türü eklemek için modülünüzde etc / product_types.xml dosyasını oluşturmanız gerekir. Bu dosyada şunları belirtirsiniz:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Catalog/etc/product_types.xsd">
<type name="demoproduct" label="Demo Product" modelInstance="Genmato\DemoProduct\Model\Product\Type\Demo" indexPriority="25" sortOrder="25">
<customAttributes>
<attribute name="refundable" value="true"/>
</customAttributes>
</type>
</config>
Sonra modelInstance oluşturun:
/**
* @category Genmato
* @package Genmato_MageStackProduct
* @copyright Copyright (c) 2015 Genmato BV (https://genmato.com)
*/
namespace Genmato\DemoProduct\Model\Product\Type;
class Demo extends \Magento\Catalog\Model\Product\Type\AbstractType
{
/**
* Delete data specific for Simple product type
*
* @param \Magento\Catalog\Model\Product $product
* @return void
*/
public function deleteTypeSpecificData(\Magento\Catalog\Model\Product $product)
{
}
}
Bu yeni ürün türünü ekler ve şimdi arka uçta yeni bir ürün oluştururken bunu seçebilirsiniz.
Product_type.xml dosyasında kendi indeksleyicinizi veya fiyat hesaplama yönteminizi belirtmek de mümkündür, daha fazla örnek için Bundle, ConfigureProduct, Downloadable ve GroupedProduct ürün türlerinin koduna bakın.
Tüm demo ürün uzantısı için bakınız: https://github.com/Genmato/DemoProduct
DÜZENLE:
Anton tarafından talep edildiği gibi, yeni ürün tipi için biraz daha fazla işlevsellik (Bu hafta biraz daha fazla zamanım varsa, bazı ekstra değişiklikler yapmaya çalışacağım).
Şimdilik Demo Ürün türünü maliyet özelliği için bir fiyat giriş alanıyla güncelledim:
Bu maliyet özelliği, ön uçta görüntülendiğinde fiyatı hesaplamak için kullanılır (fiyat özelliği mevcut değildir ve kullanılmaz). Bu örnek için maliyet * 1.25 kullandım (Genmato \ DemoProduct \ Model \ Product \ Type \ Demo \ Price içinde):
Ön uçtaki sonuç:
Güncellenen kodun tamamı şu adreste mevcuttur: https://github.com/Genmato/DemoProduct