Magento 2: Maneira segura e fácil de desabilitar Comparar produtos e lista de desejos


34

Estou construindo o Magento 2.0 apenas para vender 2 dos meus produtos online. O módulo de comparação de produtos e lista de desejos é irrelevante para mim.

Como removo esses módulos com segurança e facilidade? Eu não quero hackear o código principal.

Respostas:


52

Agora, no Magento 2, você pode remover a funcionalidade Comparar produtos via arquivo xml. O bloco Comparar produtos está definido emvendor/magento/module-catalog/view/frontend/layout/default.xml

e você pode removê-lo adicionando um default.xmlarquivo ao seu tema em:<theme_dir>/Magento_Catalog/layout/default.xml

dentro do qual você remove seu bloco da seguinte maneira:

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

Funcionou como um encanto. Magento 2.0.6
camdixon

Para sua informação, aqui está a localização exata das instruções: devdocs.magento.com/guides/v2.0/frontend-dev-guide/layouts/…
thdoan

11
Não está funcionando na versão 2.1.X
Jai

Que tal remover o bloco Minha Lista de Desejos ?
Razvan Zamfir 25/10

Você pode adicionar este para remover o bloco lista da barra lateral: <nome referenceBlock = "wishlist_sidebar" remove = "true" />
Frank

32

Você pode adicionar as seguintes instruções xml ao arquivo xml padrão do seu tema personalizado, que deve estar localizado /app/design/frontend/Vendor/theme/Magento_Theme/layout/default.xmlou para Magento_Catalog/layout/default.xmlarquivar no seu 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 livra de

  • bloco de comparação da barra lateral
  • bloco de comparação na página de detalhes do produto
  • adicionar à lista de desejos da página de detalhes do produto

Para remover adicionar para comparar das páginas da categoria (lista de produtos do catálogo), use:

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

5
Ótima resposta, você também precisa adicionar <referenceBlock name="category.product.addto.compare" remove="true"/>para remover o link da lista de produtos do catálogo.
Denis Pshenov

Obrigado pela sua resposta, você esqueceu de adicionar também <referenceBlock name="catalogsearch.product.addto.compare" remove="true"/>que remove a função de comparação dos resultados da pesquisa de catálogo.
Cristiano Casciotti

Obrigado @Devtype
Praveen Chelumalla

15

Aguardei a fonte de todos os blocos de comparação. Para 2.3, esta é a lista completa. Isso também removerá o link de comparação do cabeçalho.

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

Isso funciona perfeitamente sem a necessidade de modificar arquivos de origem que possam mudar em futuras atualizações.
PedroKTFC 6/03

Isso deve entrar no default.xml de um tema personalizado, certo?
Daniel Black

6

Desativar lista de desejos em lojas> Configuração> Clientes> lista de desejos e para desativar a função Comparar, cole estas linhas abaixo em Magento_Catalog / layout / default.xml do seu 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>

Defina $ showCompare como false nos seguintes modelos:

Magento / Catálogo / 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 / novo / conteúdo / new_list.phtml Magento / Catálogo / view / frontend / modelos / produto / widget / conteúdo / grid.phtml

Remova a equipe relacionada de comparação dos seguintes modelos:

Magento / Catálogo / view / frontend / templates / product / list.phtml Magento / Catalog / view / frontend / templates / product / Listing.phtml Magento / Wishslist / view / frontend / templates / item / configure / addto.phtml

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


A partir do 2.1.x, esta solução é provavelmente a mais bem montada.
Themanwhoknowstheman

4

Magento fornece utilitário de linha de comando para ele, por exemplo

php bin/magento module:disable -f Magento_Wishlist

como a lista de desejos do Magento depende do outro módulo também, o uso sem [-f] não desativará ou ativará o módulo e exibirá um aviso como

insira a descrição da imagem aqui

depois de usar o comando com o sinalizador [-f] resolverá esse problema

insira a descrição da imagem aqui

verifique o aviso quando estiver usando o comando com força

Alerta: você usou a opção --force. Como resultado, os módulos podem não funcionar corretamente.

Você também pode verificar informações completas aqui http://devdocs.magento.com/guides/v2.0/install-gde/install/cli/install-cli-subcommands-enable.html#instgde-cli-subcommands-enable- módulos


Obrigado. Sua resposta parece promissora, mas estou um pouco nervoso ... Isso não interromperá nenhuma outra funcionalidade?
Malaiselvan

Você pode tentar o mesmo em teste Instância, não deve freio principalmente permissão vai mudar isso necessidade de ser alterada
webkul

4

Pode ser desativado de

loja> Configurações> Clientes> Lista de desejos> Opções gerais> Ativado: Não.


4

ATUALIZAR: Após uma atualização principal do Magento 2, a resposta da klara agora é a melhor maneira de desativar a funcionalidade Comparar. Por favor leia abaixo !

Para desativar a funcionalidade da Lista de Desejos, você precisa ir na administração, em Lojas> Configuração> Clientes> Lista de Desejos e escolher Ativado: Não.

Para desativar a funcionalidade Comparar, não há opção na administração. Você precisa substituir o module-catalog/view/frontend/templates/product/list.phtmlmodelo.

Para fazer isso, você precisa copiar o conteúdo do arquivo que eu nomeei acima em um novo arquivo dentro do seu tema localizado em <theme_dir>/Magento_Catalog/templates/product/list.phtml. Em seguida, você deseja remover as linhas em questão:

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

Essas estão nas linhas 111 a 121 no Magento 2.0.1


3

para desativar a barra lateral:

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

para remover o "Add to compare" link na página do produto, você precisa sobrescrever o Magento_Catalog/templates/product/view/addto.phtmlarquivo no seu tema e remover a âncora de comparação. Dessa forma, você pode manter a lista de desejos, mas remover a funcionalidade de comparação.


3

Para Magento 2.1.x

Adicionando um arquivo default.xml ao seu tema em: /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>

também adicionar <nome referenceBlock = Remover "catalog.compare.link" = "true" /> para remover link no menu superior
Aref Ben Lazrek

3

Esta é uma extensão de outras soluções fornecidas aqui. Use o arquivo /app/design/frontend/Vendor/theme/Magento_Theme/layout/default.xmle adicione o seguinte

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

Você pode adicionar a linha: <referenceBlock name="catalog.compare.sidebar" remove="true"/> Magento -> administrador -> PRODUTOS -> Categorias -> Design personalizado -> Atualização de layout personalizado


0

Depois de tentar todos os métodos acima para as páginas de produtos individuais, encontrei o arquivo que importava no meu caso, com um tema instalado, mas utilizando meu próprio tema filho addtocart.phtml. Outras opções funcionarão para a exibição de categoria de grade e exibição de categoria de lista (o mencionado acima list.phtml, mas em páginas de produtos individuais:

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

Isso precisa ser comentado. Horas e horas de tentativas e foi esse arquivo.

Se alguém achar o contrário, avise-me!


encontrar um solution.il acho que a minha resposta é a melhor prática
Goldy

0

M2.1 solução rápida e fácil.
Se você não quiser criar um tema personalizado e / ou preferir trabalhar no back-end, faça o seguinte no back-end. Navegue até a página cms, categoria ou página do produto que deseja alterar. Exemplo de página de categoria: em Design -> Layout Update XML, adicione o seguinte código:

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

Nota: se você quiser que blocos adicionais permaneçam na barra lateral, defina o contêiner adicional como "false" assim:

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

0

A lista de desejos pode ser desativada via back-end, conforme escrito em outras respostas.

Existe um módulo FOSS que pode remover a função de comparação em um nível por visualização da loja:

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

Fiz uma breve revisão:

  • Ele adiciona uma alça de layout para remover os blocos de comparação
  • Isso usa basicamente o mesmo código das respostas aqui (mas é ativado apenas no nível da loja)
  • O link addto é removido injetando CSS na cabeça, o que soa um pouco estranho, mas evita a substituição de modelos principais

0

Estou usando o tema Ultimo no Magento 2.3.3. Não pude desativar o link de comparação do arquivo catalog_product_view.xml do tema, pois as configurações não são provenientes de lá, mas estão localizadas em:

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

Fui para a solução rápida e suja, basta remover o seguinte:

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

O botão de comparação desapareceu para sempre, no entanto, se você realizar uma atualização do Magento, ela voltará e precisará ser removida novamente.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.