Magento 2: le moyen le plus sûr et le plus facile de désactiver le module Comparer les produits et le module liste de souhaits


34

Je construis Magento 2.0 uniquement pour vendre 2 de mes produits en ligne. Le module de comparaison des produits et de la liste de souhaits n’est pas pertinent pour moi.

Comment puis-je supprimer ces modules facilement et en toute sécurité? Je ne veux pas pirater le code principal.

Réponses:


52

Dans Magento 2, vous pouvez désormais supprimer la fonctionnalité de comparaison des produits via un fichier xml. Le bloc de comparaison de produits est défini dansvendor/magento/module-catalog/view/frontend/layout/default.xml

et vous pouvez le supprimer en ajoutant un default.xmlfichier à votre thème dans:<theme_dir>/Magento_Catalog/layout/default.xml

dans lequel vous supprimez votre bloc comme suit:

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

Travaillé comme un charme. Magento 2.0.6
camdixon

Pour votre information, voici l’emplacement exact des instructions: devdocs.magento.com/guides/v2.0/frontend-dev-guide/layouts/…
jeudi

11
Sa ne fonctionne pas dans la version 2.1.X
Jai

Qu'en est-il de supprimer le bloc Ma liste de souhaits ?
Razvan Zamfir

Vous pouvez ajouter ceci pour supprimer le bloc liste de souhaits de la barre latérale: <referenceBlock name = "wishlist_sidebar" remove = "true" />
Frank

32

Vous pouvez ajouter les instructions XML suivantes au fichier XML par défaut de votre thème personnalisé, qui doit être situé dans /app/design/frontend/Vendor/theme/Magento_Theme/layout/default.xmlou à un Magento_Catalog/layout/default.xmlfichier de votre thème personnalisé:

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

qui se débarrasse de

  • bloc de comparaison de la barre latérale
  • comparer le bloc de la page de détails du produit
  • ajouter à la liste de souhaits à partir de la page de détails du produit

Pour supprimer l’ajout à la comparaison des pages de catégorie (liste de produits du catalogue), utilisez:

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

5
Excellente réponse, vous devez également ajouter <referenceBlock name="category.product.addto.compare" remove="true"/>pour supprimer le lien de la liste des produits du catalogue.
Denis Pshenov

Merci pour votre réponse, vous avez également oublié d'ajouter la <referenceBlock name="catalogsearch.product.addto.compare" remove="true"/>suppression de la fonction de comparaison des résultats de la recherche dans le catalogue.
Cristiano Casciotti

Merci @ Devtype
Praveen Chelumalla

15

J'ai salué la source pour tous les blocs de comparaison. Pour 2.3 c'est la liste complète. Cela supprimera également le lien de comparaison de l'en-tête.

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

Cela fonctionne parfaitement sans avoir à modifier les fichiers source qui pourraient changer dans les futures mises à jour.
PedroKTFC

Cela devrait aller dans default.xml d'un thème personnalisé non?
Daniel Black

6

Désactivez la liste de souhaits dans les magasins> Configuration> Clients> Liste de souhaits et désactivez la fonction Comparer, collez les lignes ci-dessous dans Magento_Catalog / layout / default.xml de votre thème.

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

Définissez $ showCompare sur false dans les modèles suivants:

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

Supprimez le personnel de comparaison des modèles suivants:

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

Référence: https://coderwall.com/p/vsqmbw/remove-product-compare-functionality-on-magento-2-frontend


Depuis la version 2.1.x, cette solution est probablement la mieux conçue.
themanwhoknowstheman

4

Magento fournit un utilitaire de ligne de commande pour cet exemple

php bin/magento module:disable -f Magento_Wishlist

comme la liste de souhaits de Magento dépendent également de l’autre module; donc, utiliser sans [-f] ne désactive pas et n’active pas le module et affiche un avertissement comme

entrez la description de l'image ici

après avoir utilisé la commande avec le drapeau [-f] résoudra ce problème

entrez la description de l'image ici

veuillez vérifier l'avertissement lorsque vous utilisez la commande avec force

Alerte: Vous avez utilisé l'option --force. En conséquence, les modules peuvent ne pas fonctionner correctement.

Vous pouvez également vérifier les informations complètes ici http://devdocs.magento.com/guides/v2.0/install-gde/install/cli/install-cli-subcommands-enable.html#instgde-cli-subcommands-enable- modules


Merci. Votre réponse semble prometteuse, mais je suis un peu nerveuse ... Cela ne va-t-il pas perturber d'autres fonctionnalités?
Malaiselvan

Vous pouvez essayer la même chose dans Test Instance, cela ne devrait pas freiner principalement la permission qui changera qui doit être changée
webkul

4

Il peut être désactivé à partir de

Store> Configurations> Clients> Liste de souhaits> Options générales> Activé: Non.


4

UPDATE: Après une mise à jour principale de Magento 2, la réponse de klara est désormais le meilleur moyen de désactiver la fonctionnalité de comparaison. S'il vous plaît lire ci-dessous !

Pour désactiver la fonctionnalité Liste de souhaits, vous devez accéder à l'administration, dans Magasins> Configuration> Clients> Liste de souhaits et choisir Activé: Non.

Pour désactiver la fonctionnalité de comparaison, aucune option dans l'administration. Vous devez remplacer le module-catalog/view/frontend/templates/product/list.phtmlmodèle.

Pour ce faire, vous devez copier le contenu du fichier que j'ai nommé ci-dessus dans un nouveau fichier de votre thème situé sous <theme_dir>/Magento_Catalog/templates/product/list.phtml. Ensuite, vous souhaitez supprimer les lignes concernées:

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

Ceux-ci sont aux lignes 111 à 121 dans Magento 2.0.1


3

pour désactiver la barre latérale:

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

pour supprimer le "Add to compare"lien sur la page du produit, vous devez écraser le Magento_Catalog/templates/product/view/addto.phtmlfichier dans votre thème et supprimer l'ancre de comparaison. De cette façon, vous pouvez conserver la liste de souhaits, mais supprimer la fonctionnalité de comparaison.


3

Pour Magento 2.1.x

Ajout d'un fichier default.xml à votre thème dans: /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>

ajoutez également <referenceBlock name = "catalog.compare.link" remove = "true" /> pour supprimer le lien dans le menu principal
Aref Ben Lazrek

3

Ceci est une extension d'autres solutions fournies ici. Utilisez le fichier /app/design/frontend/Vendor/theme/Magento_Theme/layout/default.xmlet ajoutez ce qui suit

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

Vous pouvez ajouter la ligne: <referenceBlock name="catalog.compare.sidebar" remove="true"/> Magento -> administrateur -> PRODUITS -> Catégories -> Création personnalisée -> Mise à jour de la mise en page personnalisée


0

Après avoir essayé toutes les méthodes ci-dessus pour les pages de produit individuelles, j'ai trouvé le fichier qui importait dans mon cas, avec un thème installé, mais utilisant mon propre thème enfant addtocart.phtml. D'autres options fonctionneront pour les vues de catégorie de grille et de liste (voir ci-dessus list.phtml, mais sur des pages de produit individuelles:

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

Cela doit être commenté. Des heures et des heures d'essayer et c'était ce fichier.

Si quelqu'un trouve le contraire, s'il vous plaît faites le moi savoir!


trouvez une solution.Je pense que ma réponse est la meilleure pratique
Goldy

0

M2.1 solution rapide et facile.
Si vous ne souhaitez pas créer de thème personnalisé et / ou préférez travailler à partir du backend, vous pouvez procéder comme suit. Accédez à la page cms, à la catégorie ou à la page de produit que vous souhaitez modifier. Exemple de page de catégorie: sous Conception -> Mise à jour de mise en page XML, ajoutez le code suivant:

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

Remarque: si vous souhaitez que des blocs supplémentaires restent dans la barre latérale, définissez le conteneur supplémentaire sur "false" comme suit:

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

0

La liste de souhaits peut être désactivée via le backend, comme indiqué dans d'autres réponses.

Il existe un module FOSS pouvant supprimer la fonction de comparaison au niveau de la vue par magasin:

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

J'ai fait une petite critique:

  • Il ajoute un handle de disposition pour supprimer les blocs de comparaison
  • Ceci utilise fondamentalement le même code que dans les réponses ici (mais est activé uniquement au niveau du magasin)
  • Le lien addto est supprimé en injectant du CSS dans la tête, ce qui semble un peu étrange mais évite de remplacer les modèles de base.

0

J'utilise le thème Ultimo sur Magento 2.3.3. Je n'ai pas pu désactiver le lien de comparaison à partir du fichier catalog_product_view.xml du thème, car les paramètres ne proviennent pas de là, mais ils se trouvent dans:

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

Je suis allé pour la solution rapide et sale, simplement supprimé ce qui suit:

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

Le bouton de comparaison a disparu pour toujours. Toutefois, si vous effectuez une mise à niveau de Magento, elle reviendra et devra être supprimée à nouveau.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.