Magento 2 menonaktifkan item gabungan ke dalam keranjang

Aug 21 2020

HI Saya ingin pelanggan menambahkan item yang sama ke dalam keranjang dengan baris terpisah. Saya tidak ingin mereka bergabung menjadi satu baris. Apakah ada cara untuk melakukan ini? Saya melihat orang-orang meminta Magento 1, apakah ada solusi untuk Magento 2? Terima kasih

Jawaban

2 PratikOza Aug 20 2020 at 23:31

Pilihan 1:

app / code / VendorName / ModuleName / etc / module.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="VendorName_ModuleName" setup_version="1.0.0">
        <sequence>
            <module name="Magento_Quote" />
        </sequence>
    </module>
</config>

app / code / VendorName / ModuleName / etc / di.xml

<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="Magento\Quote\Model\Quote\Item">
        <plugin name="VendorName_ModuleName_Magento_Quote_Model_Quote_Item" sortOrder="10" type="VendorName\ModuleName\Plugin\Magento\Quote\Model\Quote\Item"/>
    </type>
</config>

app / code / VendorName / ModuleName / Plugin / Magento / Kutipan / Model / Kutipan / Item.php

<?php

namespace VendorName\ModuleName\Plugin\Magento\Quote\Model\Quote;

class Item
{
    public function aroundRepresentProduct(
        \Magento\Quote\Model\Quote\Item $subject, \Closure $proceed,
        $product
    ) {
       return false;
    }
}

Pilihan 2:

app / code / VendorName / ModuleName / etc / module.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="VendorName_ModuleName" setup_version="1.0.0">
        <sequence>
            <module name="Magento_Quote" />
        </sequence>
    </module>
</config>

app / code / VendorName / ModuleName / etc / di.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <preference for="Magento\Quote\Model\Quote\Item" type="VendorName\ModuleName\Model\Quote\Item" />
</config>

app / code / VendorName / ModuleName / Model / Quote / Item.php

<?php

namespace VendorName\ModuleName\Model\Quote;

class Item extends \Magento\Quote\Model\Quote\Item
{
    /**
     * Check product representation in item
     *
     * @param   \Magento\Catalog\Model\Product $product
     * @return  bool
     */
    public function representProduct($product)
    {
        return false;
    }
}