วิธีเพิ่มประเภทผลิตภัณฑ์ใหม่ใน Magento 2 (MageStackDay คำถามลึกลับ 1)


40

MageStackDay โบนัสคำถามสำหรับ 500pts Bounty และความเป็นไปได้ในการชนะใบอนุญาต Z-Ray ฟรีเป็นเวลาหนึ่งปี สามารถอ่านข้อมูลเพิ่มเติม >> ที่นี่ <<

คำถามที่จัดทำโดยนักพัฒนาหลักวีโอไอพี 2 Anton Kril

คำถาม:

ฉันต้องการเพิ่มประเภทผลิตภัณฑ์ใหม่ลงใน Magento ฉันจะทำสิ่งนี้ใน Magento 2 dev beta ได้อย่างไร

คำตอบ:


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, สามารถดาวน์โหลดได้และ GroupedProduct

สำหรับส่วนขยายผลิตภัณฑ์ตัวอย่างที่สมบูรณ์โปรดดู: https://github.com/Genmato/DemoProduct

แก้ไข:

ตามที่ขอโดย Anton ฟังก์ชั่นพิเศษเล็กน้อยสำหรับประเภทผลิตภัณฑ์ใหม่ (ถ้าฉันมีเวลาเพิ่มขึ้นเล็กน้อยในสัปดาห์นี้ฉันจะพยายามแก้ไขเพิ่มเติม)

ตอนนี้ฉันอัพเดทประเภทผลิตภัณฑ์ตัวอย่างพร้อมฟิลด์ป้อนข้อมูลราคาสำหรับแอตทริบิวต์ต้นทุน: แอตทริบิวต์ราคาต้นทุน

แอ็ตทริบิวต์ต้นทุนนี้ใช้สำหรับคำนวณราคาเมื่อแสดงในส่วนหน้า (ไม่สามารถใช้คุณลักษณะราคาได้และไม่ได้ใช้) สำหรับตัวอย่างนี้ฉันใช้ราคา * 1.25 (ใน Genmato \ DemoProduct \ Model \ Product \ Type \ Demo \ Price): การคำนวณราคา

ผลลัพธ์บนส่วนหน้า: ผลส่วนหน้า

รหัสที่อัปเดตที่สมบูรณ์มีให้ที่: https://github.com/Genmato/DemoProduct


เพียงเพิ่มบทช่วยสอนลงในคำตอบของคุณหวังว่าคุณจะได้รับความโปรดปราน! มีแบบฝึกหัดฉบับเต็มเกี่ยวกับการสร้างประเภทผลิตภัณฑ์ใหม่ที่อยู่: vimeo.com/116810487 ดูเอกสารที่นี่: devdocs.magento.com
JoeyH

4
มันจะดีถ้าคุณเพิ่มจุดปรับแต่งอย่างน้อยสองสาม (การเรนเดอร์การคำนวณราคา ฯลฯ )
Anton Kril

1
@Anton: ฉันได้อัปเดตประเภทผลิตภัณฑ์ตัวอย่างพร้อมการคำนวณราคาอย่างง่ายตามแอตทริบิวต์ต้นทุน หากฉันมีเวลาเพิ่มอีกสองสามวันถัดไปฉันจะพยายามเพิ่มการแก้ไขอื่น ๆ
Vladimir Kerkhoff

จะขยายสิ่งนี้เพื่อสร้างประเภทผลิตภัณฑ์คอมโพสิตเช่นผลิตภัณฑ์ที่จัดกลุ่มได้อย่างไร
Sukeshini
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.