Magento 2 deshabilita la combinación de elementos en el carrito
Aug 21 2020
Hola, quiero que el cliente agregue el mismo artículo al carrito con una línea separada. No quiero que se fusionen y formen una sola línea. ¿Hay alguna forma de hacer esto? Vi gente preguntando por Magento 1, ¿hay alguna solución para Magento 2? Gracias
Respuestas
2 PratikOza Aug 20 2020 at 23:31
Opción 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;
}
}
Opcion 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;
}
}