Magento 2: la forma más fácil y segura de deshabilitar Comparar productos y módulo Lista de deseos


34

Estoy construyendo Magento 2.0 solo para vender 2 de mis productos en línea. El módulo de comparación de productos y lista de deseos es irrelevante para mí.

¿Cómo elimino esos módulos de forma segura y fácil? No quiero hackear el código central.

Respuestas:


52

En Magento 2, ahora puede eliminar la funcionalidad Comparar productos a través del archivo xml. El bloque Comparar productos se define envendor/magento/module-catalog/view/frontend/layout/default.xml

y puede eliminarlo agregando un default.xmlarchivo a su tema en:<theme_dir>/Magento_Catalog/layout/default.xml

dentro del cual elimina su bloqueo de la siguiente manera:

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="catalog.compare.sidebar" remove="true"/> 
        <referenceBlock name="wishlist_sidebar" remove="true" />
    </body>
</page>

Trabajado como un encanto. Magento 2.0.6
camdixon

FYI, aquí está la ubicación exacta de las instrucciones: devdocs.magento.com/guides/v2.0/frontend-dev-guide/layouts/…
thdoan

11
No funciona en la versión 2.1.X
Jai

¿Qué pasa con la eliminación del bloque Mi lista de deseos ?
Razvan Zamfir

Puede agregar esto para eliminar el bloque de la lista de deseos de la barra lateral: <referenceBlock name = "wishlist_sidebar" remove = "true" />
Frank

32

Puede agregar las siguientes instrucciones xml al archivo xml predeterminado de su tema personalizado que debe ubicarse en /app/design/frontend/Vendor/theme/Magento_Theme/layout/default.xmlo para Magento_Catalog/layout/default.xmlarchivar en su tema personalizado:

    <referenceBlock name="catalog.compare.sidebar" remove="true"/>
    <referenceBlock name="view.addto.compare" remove="true" />
    <referenceBlock name="view.addto.wishlist" remove="true" />

que se deshace de

  • bloque de comparación de la barra lateral
  • comparar bloque de la página de detalles del producto
  • agregar a la lista de deseos desde la página de detalles del producto

Para eliminar agregar para comparar de las páginas de categoría (lista de productos del catálogo) use:

<referenceBlock name="category.product.addto.compare" remove="true"/>

55
Gran respuesta, también debe agregar <referenceBlock name="category.product.addto.compare" remove="true"/>para eliminar el enlace de la lista de productos del catálogo.
Denis Pshenov

Gracias por su respuesta, se ha perdido agregar también <referenceBlock name="catalogsearch.product.addto.compare" remove="true"/>que elimina la función de comparación también de los resultados de búsqueda del catálogo.
Cristiano Casciotti

Gracias @Devtype
Praveen Chelumalla

15

Agarré la fuente de todos los bloques de comparación. Para 2.3 esta es la lista completa. Esto también eliminará el enlace de comparación del encabezado.

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <!-- Remove compare -->
        <referenceBlock name="catalog.compare.link" remove="true" />
        <referenceBlock name="catalog.compare.sidebar" remove="true"/>
        <referenceBlock name="catalogsearch.product.addto.compare" remove="true"/>
        <referenceBlock name="category.product.addto.compare" remove="true"/>
        <referenceBlock name="crosssell.product.addto.compare" remove="true" />
        <referenceBlock name="related.product.addto.compare" remove="true" />
        <referenceBlock name="upsell.product.addto.compare" remove="true" />
        <referenceBlock name="view.addto.compare" remove="true" />
    </body>
</page>

Esto funciona perfectamente sin tener que modificar ningún archivo fuente que pueda cambiar en futuras actualizaciones.
PedroKTFC

Esto debería ir en default.xml de un tema personalizado, ¿verdad?
Daniel Black

6

Desactive Lista de deseos en tiendas> Configuración> Clientes> Lista de deseos y para desactivar la función Comparar pegue estas líneas a continuación en Magento_Catalog / layout / default.xml de su tema.

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="catalog.compare.link" remove="true"/>
        <referenceBlock name="catalog.compare.sidebar" remove="true"/>
    </body>
</page>

Conjunto $ showCompare en falso en las siguientes plantillas:

Magento / Catalog / view / frontend / templates / product / list / items.phtml Magento / Catalog / view / frontend / templates / product / widget / new / content / new_grid.phtml Magento / Catalog / view / frontend / templates / product / widget / new / content / new_list.phtml Magento / Catalog / view / frontend / templates / product / widget / content / grid.phtml

Elimine el personal relacionado de comparación de las siguientes plantillas:

Magento / Catalog / view / frontend / templates / product / list.phtml Magento / Catalog / view / frontend / templates / product / listing.phtml Magento / Wishslist / view / frontend / templates / item / configure / addto.phtml

Referencia: https://coderwall.com/p/vsqmbw/remove-product-compare-functionality-on-magento-2-frontend


A partir de 2.1.x, esta solución es probablemente la más completa.
themanwhoknowstheman

4

Magento proporciona una utilidad de línea de comandos para su ejemplo

php bin/magento module:disable -f Magento_Wishlist

como la lista de deseos de Magento también depende del otro módulo, por lo que usar sin [-f] no deshabilitará o habilitará el módulo y mostrará advertencias como

ingrese la descripción de la imagen aquí

después de usar el comando con el indicador [-f] se resolverá este problema

ingrese la descripción de la imagen aquí

por favor revise la advertencia cuando esté usando el comando con fuerza

Alerta: Usaste la opción --force. Como resultado, los módulos pueden no funcionar correctamente.

Puede consultar la información completa aquí también http://devdocs.magento.com/guides/v2.0/install-gde/install/cli/install-cli-subcommands-enable.html#instgde-cli-subcommands-enable- módulos


Gracias. Su respuesta parece prometedora, pero estoy un poco nervioso ... ¿Esto no romperá ninguna otra funcionalidad?
Malaiselvan

Puede intentar lo mismo en la Instancia de prueba, no debe frenar principalmente, el permiso cambiará y es necesario modificarlo
webkul

4

Se puede deshabilitar desde

tienda> Configuraciones> Clientes> Lista de deseos> Opciones generales> Activado: No.


4

ACTUALIZAR: Después de una actualización principal de Magento 2, la respuesta de klara es ahora la mejor manera de deshabilitar la funcionalidad Comparar. Porfavor lea abajo !

Para deshabilitar la funcionalidad de la Lista de deseos, debe ir a la administración, en Tiendas> Configuración> Clientes> Lista de deseos y elegir Activado: No.

Para deshabilitar la funcionalidad Comparar, no hay opción en la administración. Necesitas anular elmodule-catalog/view/frontend/templates/product/list.phtml plantilla.

Para hacerlo, debe copiar el contenido del archivo que mencioné anteriormente en un nuevo archivo dentro de su tema ubicado debajo <theme_dir>/Magento_Catalog/templates/product/list.phtml. Luego, desea eliminar las líneas en cuestión:

<?php
$compareHelper = $this->helper('Magento\Catalog\Helper\Product\Compare');
?>
<a href="#"
   class="action tocompare"
   title="<?php echo $block->escapeHtml(__('Add to Compare')); ?>"
   aria-label="<?php echo $block->escapeHtml(__('Add to Compare')); ?>"
   data-post='<?php /* @escapeNotVerified */ echo $compareHelper->getPostDataParams($_product); ?>'
   role="button">
    <span><?php /* @escapeNotVerified */ echo __('Add to Compare') ?></span>
</a>

Esos están en las líneas 111 a 121 en Magento 2.0.1


3

para deshabilitar la barra lateral:

<body>
  <referenceBlock name="catalog.compare.sidebar" remove="true"/>
</body>

para eliminar el "Add to compare"enlace en la página del producto, debe sobrescribir el Magento_Catalog/templates/product/view/addto.phtmlarchivo en su tema y eliminar el ancla de comparación allí. De esta manera, puede mantener la lista de deseos pero eliminar la funcionalidad de comparación.


3

Para Magento 2.1.x

Agregar un archivo default.xml a su tema en: /Magento_Catalog/layout/default.xml

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="category.product.addto.compare" remove="true"/>
        <referenceBlock name="catalog.compare.sidebar" remove="true"/>
    </body>
</page>

agregue también <referenceBlock name = "catalog.compare.link" remove = "true" /> para eliminar el enlace en el menú superior
Aref Ben Lazrek

3

Esta es una extensión de otras soluciones proporcionadas aquí. Use el archivo /app/design/frontend/Vendor/theme/Magento_Theme/layout/default.xmly agregue lo siguiente

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
    <referenceBlock name="catalog.compare.sidebar" remove="true"/>
    <referenceBlock name="catalog.compare.link" remove="true"/>
    <referenceBlock name="related.product.addto.compare" remove="true"/>
    <referenceBlock name="view.addto.compare" remove="true"/>
    <referenceBlock name="upsell.product.addto.compare" remove="true"/>
    </body>
</page>

1

Puede agregar la línea: <referenceBlock name="catalog.compare.sidebar" remove="true"/> Magento -> administrador -> PRODUCTOS -> Categorías -> Diseño personalizado -> Actualización de diseño personalizado


0

Después de probar todos los métodos anteriores para las páginas de productos individuales, encontré el único archivo que importaba en mi caso, con un tema instalado, pero utilizando mi propio tema secundario addtocart.phtml. Otras opciones funcionarán para la vista de categoría de cuadrícula y la vista de categoría de lista (las mencionadas anteriormente list.phtml, pero en páginas de productos individuales:

<a href="#" data-post='<?php /* @escapeNotVerified */ echo $compareHelper->getPostDataParams($_product);?>'
            data-role="add-to-links"
            class="action tocompare">
    <i class="fa fa-retweet icons"></i>
    <span><?php /* @escapeNotVerified */ echo __('Compare') ?></span>
</a>

Esto necesita ser comentado. Horas y horas de intentarlo y fue este archivo.

Si alguien encuentra lo contrario, ¡hágamelo saber!


encontrar una solución. Creo que mi respuesta es la mejor práctica
Goldy

0

M2.1 solución rápida y fácil.
Si no desea crear un tema personalizado y / o prefiere trabajar desde el backend, puede hacer lo siguiente en el backend. Navegue a la página cms, categoría o página del producto que desea modificar. Ejemplo de página de categoría: en Diseño -> Actualización de diseño XML, agregue el siguiente código:

<referenceContainer name="content">
    <referenceBlock name="catalog.compare.sidebar" remove="true" />
    <referenceContainer name="sidebar.additional" remove="true" />
 </referenceContainer>

Nota: si desea que permanezcan bloques adicionales en la barra lateral, establezca el contenedor adicional en "falso" de esta manera:

 <referenceContainer name="content">
     <referenceContainer name="sidebar.additional" remove="false" />
 </referenceContainer> 

0

La lista de deseos se puede deshabilitar a través del backend, como está escrito en otras respuestas.

Hay un módulo FOSS que puede eliminar la función de comparación en un nivel por vista de tienda:

https://github.com/Joshua29LK/disable-compare-magento-2

Hice una breve reseña:

  • Agrega un controlador de diseño para eliminar los bloques de comparación
  • Utiliza básicamente el mismo código que en las respuestas aquí (pero se activa solo a nivel de tienda)
  • El enlace addto se elimina inyectando CSS en la cabeza, lo que suena un poco extraño pero evita reemplazar las plantillas principales

0

Estoy usando el tema Ultimo en Magento 2.3.3. No pude deshabilitar el enlace de comparación del archivo catalog_product_view.xml del tema ya que la configuración no proviene de allí, sino que se encuentra en:

vendor/magento/module-catalog/view/frontend/layout/catalog_product_view.xml

Fui por la solución rápida y sucia, simplemente eliminé lo siguiente:

                    <container name="product.info.social" label="Product social links container" htmlTag="div" htmlClass="product-social-links">
                        <block class="Magento\Catalog\Block\Product\View" name="product.info.addto" as="addto" template="Magento_Catalog::product/view/addto.phtml">
                            <block class="Magento\Catalog\Block\Product\View\AddTo\Compare" name="view.addto.compare" after="view.addto.wishlist"
                                   template="Magento_Catalog::product/view/addto/compare.phtml" >
                                <arguments>
                                    <argument name="addToCompareViewModel" xsi:type="object">Magento\Catalog\ViewModel\Product\Checker\AddToCompareAvailability</argument>
                                </arguments>
                            </block>
                        </block>
                        <block class="Magento\Catalog\Block\Product\View" name="product.info.mailto" template="Magento_Catalog::product/view/mailto.phtml"/>
                    </container>

El botón de comparación desaparece para siempre, sin embargo, si realiza una actualización de Magento, volverá, por lo que deberá eliminarlo nuevamente.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.