Magento 2'ye yeni bir ürün türü nasıl eklenir? (MageStackDay gizem soru 1)


40

500pts Bounty için MageStackDay bonus sorusu VE bir yıl boyunca ücretsiz Z-Ray lisansı kazanma imkanı. Daha fazla bilgi bulunabilir >> burada <<

Sorular Magento 2 çekirdek geliştiricisi Anton Kril tarafından sağlanmıştır.

Soru:

Magento'ya yeni bir ürün türü eklemek istiyorum. Bunu Magento 2 dev beta'da nasıl yapacağım?

Yanıtlar:


40

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.

Demo Ürün seçeneği

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: Maliyet fiyatı özelliği

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): Fiyat hesaplama

Ön uçtaki sonuç: Ön sonuç

Güncellenen kodun tamamı şu adreste mevcuttur: https://github.com/Genmato/DemoProduct


Sadece cevabınıza bir öğretici ekleyerek, lütuf almayı umarız! Bulunan yeni ürün türleri hakkında tam bir eğitim notu var: vimeo.com/116810487 Belgeleri buradan görüntüleyin: devdocs.magento.com
JoeyH

4
En az birkaç kişiselleştirme noktası
eklemeniz

1
@Anton: Demo Ürün tipini maliyet özelliğine göre basit bir fiyat hesaplamasıyla güncelledim. Önümüzdeki birkaç gün içinde biraz daha zamanım varsa, başka değişiklikler de eklemeye çalışacağım.
Vladimir Kerkhoff

Bunu, gruplanmış ürün gibi bir bileşik ürün türü oluşturmak için nasıl genişletebilirim?
Sukeshini
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.