Untuk menambahkan jenis produk baru di Magento 2 Anda perlu membuat etc / product_types.xml dalam modul Anda. Dalam file ini Anda menentukan:
<?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>
Kemudian buat modelInstance:
/**
* @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)
{
}
}
Ini akan menambah jenis produk baru dan sekarang Anda dapat memilih ini saat membuat produk baru di backend.
Di product_type.xml Anda juga dapat menentukan pengindeksan sendiri atau metode perhitungan harga, untuk lebih banyak contoh lihat kode untuk tipe produk Bundle, ConfigureProduct, Downloadable, dan GroupedProduct.
Untuk ekstensi produk demo lengkap, lihat: https://github.com/Genmato/DemoProduct
EDIT:
Seperti yang diminta oleh Anton, sedikit fungsionalitas ekstra untuk jenis produk baru (Jika saya memiliki sedikit lebih banyak waktu minggu ini saya akan mencoba beberapa modifikasi tambahan).
Untuk saat ini saya memperbarui jenis Produk Demo dengan bidang input harga untuk atribut biaya:
Atribut biaya ini digunakan untuk menghitung harga ketika ditampilkan di frontend (atribut harga tidak tersedia dan tidak digunakan). Untuk contoh ini saya menggunakan biaya * 1.25 (dalam Genmato \ DemoProduct \ Model \ Product \ Type \ Demo \ Price):
Hasil di frontend:
Kode lengkap yang diperbarui tersedia di: https://github.com/Genmato/DemoProduct