Làm cách nào để thêm loại sản phẩm mới trong Magento 2? (Câu hỏi bí ẩn MageStackDay 1)


40

Câu hỏi thưởng MageStackDay cho 500pts Bounty VÀ khả năng giành được giấy phép Z-Ray miễn phí trong một năm. Thông tin thêm có thể được tìm thấy >> tại đây <<

Các câu hỏi được cung cấp bởi nhà phát triển cốt lõi Magento 2 Anton Kril.

Câu hỏi:

Tôi muốn thêm một loại sản phẩm mới vào Magento. Làm thế nào tôi có thể làm điều này trong Magento 2 dev beta

Câu trả lời:


40

Để thêm loại sản phẩm mới trong Magento 2, bạn cần tạo một etc / product_types.xml trong mô-đun của mình. Trong tệp này, bạn chỉ định:

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

Sau đó tạo 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)
    {
    }
}

Điều này sẽ thêm loại sản phẩm mới và bây giờ bạn có thể chọn loại này khi tạo một sản phẩm mới trong phần phụ trợ.

Tùy chọn sản phẩm demo

Trong sản phẩm_type.xml cũng có thể chỉ định phương pháp tính toán giá hoặc chỉ mục của riêng bạn, để biết thêm ví dụ, hãy xem mã cho các loại sản phẩm Gói, Cấu hình sản phẩm, Tải xuống và Nhóm sản phẩm.

Để biết phần mở rộng sản phẩm demo hoàn chỉnh, hãy xem: https://github.com/Genmato/DemoSản phẩm

BIÊN TẬP:

Theo yêu cầu của Anton một chút chức năng bổ sung cho loại sản phẩm mới (Nếu tôi có thêm một chút thời gian trong tuần này, tôi sẽ cố gắng thực hiện một số sửa đổi bổ sung).

Hiện tại tôi đã cập nhật loại Sản phẩm Demo với trường nhập giá cho thuộc tính chi phí: Thuộc tính giá thành

Thuộc tính chi phí này được sử dụng để tính giá khi nó được hiển thị ở lối vào (thuộc tính price không có sẵn và không được sử dụng). Trong ví dụ này, tôi đã sử dụng chi phí * 1,25 (trong Genmato \ DemoSản phẩm \ Model \ Product \ Type \ Demo \ Price): Tính giá

Kết quả trên frontend: Kết quả giao diện

Mã cập nhật hoàn chỉnh có sẵn trên: https://github.com/Genmato/DemoSản phẩm


Chỉ cần thêm một hướng dẫn vào câu trả lời của bạn, hy vọng bạn nhận được tiền thưởng! Có một hướng dẫn đầy đủ về việc tạo ra các loại sản phẩm mới nằm: vimeo.com/116810487 Xem tài liệu ở đây: devdocs.magento.com
JoeyH

4
Sẽ thật tuyệt nếu bạn thêm ít nhất một vài điểm tùy chỉnh (kết xuất, tính giá, v.v.)
Anton Kril 16/2/2015

1
@Anton: Tôi đã cập nhật loại Sản phẩm Demo với cách tính giá đơn giản dựa trên thuộc tính chi phí. Nếu tôi có thêm một chút thời gian trong vài ngày tới, tôi sẽ cố gắng thêm một số sửa đổi khác.
Vladimir Kerkhoff 16/2/2015

Làm thế nào để mở rộng điều này để tạo ra một loại sản phẩm tổng hợp như sản phẩm được nhóm?
Sukeshini
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.