Magento 2で新しい製品タイプを追加する方法は?(MageStackDayミステリー質問1)


40

500ptsバウンティのMageStackDayボーナス質問と、1年間無料のZ-Rayライセンスを獲得する可能性。詳細はこちら >> こちら <<

質問は、Magento 2のコア開発者であるAnton Krilによって提供されます。

質問:

Magentoに新しい製品タイプを追加したい。Magento 2開発ベータでこれを行うにはどうすればよいですか

回答:


40

Magento 2で新しい製品タイプを追加するには、モジュールにetc / product_types.xmlを作成する必要があります。このファイルでは、次を指定します。

<?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>

次に、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)
    {
    }
}

これにより、新しい製品タイプが追加され、バックエンドで新しい製品を作成するときにこれを選択できるようになります。

デモ製品オプション

product_type.xmlでは、独自のインデクサーまたは価格計算方法を指定することもできます。その他の例については、製品タイプBundle、ConfigureProduct、Downloadable、およびGroupedProductのコードを参照してください。

デモ製品の完全な拡張機能については、https//github.com/Genmato/DemoProductをご覧ください。

編集:

アントンからの要求に応じて、新しい製品タイプにもう少し機能を追加します(今週にもう少し時間があれば、追加の修正を試みます)。

今のところ、コスト属性の価格入力フィールドでデモ製品タイプを更新しました。 原価価格属性

このコスト属性は、フロントエンドに表示されるときに価格を計算するために使用されます(価格属性は使用できず、使用されません)。この例では、cost * 1.25を使用しました(Genmato \ DemoProduct \ Model \ Product \ Type \ Demo \ Priceで): 価格計算

フロントエンドの結果: フロントエンドの結果

更新された完全なコードは、https//github.com/Genmato/DemoProductで入手できます。


答えにチュートリアルを追加するだけで、賞金が得られることを願っています!ある新しい製品タイプの作成に関する完全なチュートリアルがあります:vimeo.com/116810487 ビューここドキュメント:devdocs.magento.com
JoeyH

4
少なくともいくつかのカスタマイズポイント(レンダリング、価格計算など)を追加した場合は素晴らしいでしょう
アントンクリリー

1
@Anton:デモ製品タイプを更新して、コスト属性に基づく単純な価格計算を行いました。数日中にもう少し時間があれば、他の修正を追加しようとします。
ウラジミールケルホフ

これを拡張して、グループ化された製品などの複合製品タイプを作成する方法は?
スケシニ16
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.