Magento 2는 장바구니에 항목 병합 비활성화

Aug 21 2020

안녕하세요 고객이 동일한 상품을 별도의 라인으로 장바구니에 추가하고 싶습니다. 나는 그것들이 함께 병합되어 한 줄로 병합되는 것을 원하지 않습니다. 어쨌든 이것을 할 수 있습니까? 사람들이 Magento 1을 요청하는 것을 보았습니다. Magento 2에 대한 해결책이 있습니까? 감사

답변

2 PratikOza Aug 20 2020 at 23:31

옵션 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 / Quote / Model / Quote / 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;
    }
}

옵션 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;
    }
}