Magento 2: उत्पादों और विशलिस्ट मॉड्यूल की तुलना में अक्षम करने का सुरक्षित और आसान तरीका


34

मैं केवल अपने 2 उत्पादों को ऑनलाइन बेचने के लिए Magento 2.0 का निर्माण कर रहा हूं। तुलना उत्पाद और विशलिस्ट मॉड्यूल मेरे लिए अप्रासंगिक है।

मैं कैसे सुरक्षित रूप से और आसानी से उन मॉड्यूल को हटा सकता हूं? मैं कोर कोड को हैक नहीं करना चाहता।

जवाबों:


52

Magento 2 में, आप वास्तव में xml फ़ाइल के माध्यम से उत्पादों की कार्यक्षमता की तुलना कर सकते हैं। तुलना उत्पादों को ब्लॉक में परिभाषित किया गया हैvendor/magento/module-catalog/view/frontend/layout/default.xml

और आप इसे जोड़कर निकाल सकते हैं default.xml अपने विषय में फ़ाइल :<theme_dir>/Magento_Catalog/layout/default.xml

अंदर जो आप अपने ब्लॉक को निम्नलिखित के रूप में निकालते हैं:

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

एक जादू की तरह काम किया।
मैगेंटो

FYI करें, यहां निर्देशों का सटीक स्थान है: devdocs.magento.com/guides/v2.0/frontend-dev-guide/layouts/…
thdoan

11
इसके संस्करण 2.1.X में काम नहीं कर रहा है
जय 6

मेरा विश लिस्ट ब्लॉक हटाने के बारे में क्या ?
रज़वान ज़म्फिर

आप इसे साइडबार से विशलिस्ट ब्लॉक को हटाने के लिए जोड़ सकते हैं: <referenceBlock नाम = "विशलिस्ट_साइडबार" हटाएं = "सही" />
फ्रैंक

32

आप या तो अपने कस्टम विषय के डिफ़ॉल्ट xml फ़ाइल जिस पर स्थित होना चाहिए करने के लिए एक्सएमएल अनुदेश निम्नलिखित जोड़ सकते हैं /app/design/frontend/Vendor/theme/Magento_Theme/layout/default.xmlया करने के लिए Magento_Catalog/layout/default.xmlअपने कस्टम विषय में फ़ाइल:

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

जिससे छुटकारा मिल जाता है

  • साइडबार ब्लॉक की तुलना करते हैं
  • उत्पाद विवरण पृष्ठ से ब्लॉक की तुलना करें
  • उत्पाद विवरण पृष्ठ से इच्छा सूची में जोड़ें

श्रेणी पृष्ठों (कैटलॉग उत्पाद सूची) के उपयोग से तुलना को जोड़ने के लिए:

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

5
महान जवाब, आपको <referenceBlock name="category.product.addto.compare" remove="true"/>कैटलॉग उत्पाद सूची से लिंक हटाने के लिए भी जोड़ना होगा।
डेनिस पशेनोव

आपके उत्तर के लिए धन्यवाद, आप यह भी जोड़ना भूल गए हैं <referenceBlock name="catalogsearch.product.addto.compare" remove="true"/>कि तुलना फ़ंक्शन को कैटलॉग खोज परिणामों से भी हटा दें।
क्रिस्टियानो कैसिओटी

धन्यवाद @Devtype
प्रवीण चेलुमल्ला

15

मैंने सभी तुलना ब्लॉकों के लिए स्रोत को पकड़ लिया। 2.3 के लिए यह पूरी सूची है। यह हेडर से तुलना लिंक को भी हटा देगा।

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

यह पूरी तरह से किसी भी स्रोत फ़ाइलों को संशोधित किए बिना काम करता है जो भविष्य के अपडेट में बदल सकता है।
PedroKTFC

यह सही थीम के default.xml में जाना चाहिए?
डैनियल ब्लैक

6

अक्षम इच्छा-सूची पर स्टोर> विन्यास> ग्राहकों> इच्छा-सूची और तुलना करें समारोह पर नीचे इस लाइनों पेस्ट निष्क्रिय करने के लिए / लेआउट / default.xml Magento_Catalog अपने विषय की।

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

निम्न टेम्पलेट में $ $ showCompare को झूठा सेट करें :

Magento / कैटलॉग / दृश्य / दृश्य / टेम्प्लेट / उत्पाद / सूची / आइटम। Magento / कैटलॉग / दृश्य / दृश्य / टेम्पलेट / उत्पाद / विजेट / नया / सामग्री / new_grid.phtml Magento / कैटलॉग / दृश्य / सीमा / उत्पाद / विजेट / नई / सामग्री / new_list.phtml Magento / सूची / दृश्य / दृश्य / टेम्पलेट्स / उत्पाद / विजेट / सामग्री / ग्रिड।

निम्नलिखित टेम्पलेट्स से संबंधित कर्मचारियों की तुलना करें:

Magento / कैटलॉग / दृश्य / दृश्य / टेम्पलेट्स / उत्पाद / सूची। Magento / सूची / दृश्य / दृश्य / टेम्पलेट्स / उत्पाद / लिस्टिंग। Magtml / इच्छा सूची / दृश्य / दृश्य / टेम्पलेट्स / आइटम / कॉन्फ़िगर / addto.phtml

संदर्भ: https://coderwall.com/p/vsqmbw/remove-product-compare-functionality-on-magento-2-frontend


2.1.x के रूप में यह समाधान संभवतः सबसे अच्छी तरह से एक साथ रखा गया है।
themanwhoknowstheman

4

Magento इसके उदाहरण के लिए कमांड लाइन उपयोगिता प्रदान करता है

php bin/magento module:disable -f Magento_Wishlist

मैगेंटो विशलिस्ट के रूप में अन्य मॉड्यूल पर निर्भर करता है और साथ ही [-f] का उपयोग किए बिना मॉड्यूल को निष्क्रिय या सक्षम नहीं करेगा और चेतावनी की तरह प्रदर्शित करेगा

यहाँ छवि विवरण दर्ज करें

[-f] झंडे के साथ कमांड का उपयोग करने के बाद इस मुद्दे को हल करेगा

यहाँ छवि विवरण दर्ज करें

जब आप कमांड का उपयोग बलपूर्वक कर रहे हों तो चेतावनी की जाँच करें

चेतावनी: आपने --force विकल्प का उपयोग किया है। परिणामस्वरूप, मॉड्यूल ठीक से काम नहीं कर सकते हैं।

आप पूरी जानकारी यहाँ भी देख सकते हैं http://devdocs.magento.com/guides/v2.0/install-gde/install/cli/install-cli-subcommands-enable.html#instgde-cli-subbands-enable- मॉड्यूल


धन्यवाद। आपका उत्तर आशाजनक लग रहा है, लेकिन मैं थोड़ा नर्वस हूं ... क्या इससे कोई अन्य कार्यक्षमता नहीं टूटेगी?
मलैसेल्वन

आप टेस्ट इंस्टेंस में भी ऐसा ही कर सकते हैं, यह मुख्य रूप से नहीं
टूटना

4

इससे निष्क्रिय किया जा सकता है

स्टोर> कॉन्फ़िगरेशन> ग्राहक> इच्छा सूची> सामान्य विकल्प> सक्षम: नहीं।


4

अद्यतन: Magento 2 कोर अद्यतन के बाद, klara का जवाब अब कार्यक्षमता को अक्षम करने का सबसे अच्छा तरीका है। कृपया नीचे पढ़ें !

विश लिस्ट की कार्यक्षमता को निष्क्रिय करने के लिए, आपको स्टोर> कॉन्फ़िगरेशन> कस्टमर्स> विश लिस्ट के तहत प्रशासन में जाना होगा और एनेबल विकल्प चुनना होगा।

कार्यक्षमता की तुलना अक्षम करने के लिए, प्रशासन में कोई विकल्प नहीं है। आपको module-catalog/view/frontend/templates/product/list.phtmlटेम्पलेट को ओवरराइड करने की आवश्यकता है ।

ऐसा करने के लिए, आपको उस फ़ाइल की सामग्री को कॉपी करने की आवश्यकता है जिसका नाम मैंने एक नई फ़ाइल में अपने विषय के अंदर स्थित है <theme_dir>/Magento_Catalog/templates/product/list.phtml। फिर, आप संबंधित लाइनों को हटाना चाहते हैं:

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

वे Magento 2.0.1 में 111 से 121 रेखाओं पर हैं


3

साइडबार को अक्षम करने के लिए:

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

"Add to compare"उत्पाद पृष्ठ पर लिंक को हटाने के लिए आपको Magento_Catalog/templates/product/view/addto.phtmlअपनी थीम में फ़ाइल को अधिलेखित करने की आवश्यकता है और वहां तुलना लंगर हटा दें। इस तरह आप विशलिस्ट रख सकते हैं लेकिन तुलना कार्यक्षमता को हटा सकते हैं।


3

Magento के लिए 2.1.x

अपने विषय में default.xml फ़ाइल जोड़ें: /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>

शीर्ष मेनू में लिंक हटाने के लिए <referenceBlock नाम = "कैटलॉग.कॉमपर्सलिंक" हटाएं = "सही" /> जोड़ें
बेन लाजरेक

3

यह यहां उपलब्ध अन्य समाधानों का विस्तार है। फ़ाइल का उपयोग करें /app/design/frontend/Vendor/theme/Magento_Theme/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="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

आप लाइन जोड़ सकते हैं: <referenceBlock name="catalog.compare.sidebar" remove="true"/> Magento -> व्यवस्थापक -> उत्पाद -> श्रेणियाँ -> कस्टम डिज़ाइन -> कस्टम लेआउट अपडेट


0

व्यक्तिगत उत्पाद पृष्ठों के लिए उपरोक्त सभी तरीकों की कोशिश करने के बाद, मुझे एक फ़ाइल मिली जो मेरे मामले में, एक स्थापित विषय के साथ, लेकिन मेरे अपने बच्चे के विषय का उपयोग कर रही थी addtocart.phtml। अन्य विकल्प ग्रिड श्रेणी दृश्य और सूची श्रेणी दृश्य (पूर्वोक्त list.phtml, लेकिन व्यक्तिगत उत्पाद पृष्ठों पर) के लिए काम करेंगे :

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

इस पर टिप्पणी करने की जरूरत है। घंटे और घंटे की कोशिश और यह फाइल थी।

अगर किसी को भी मिल जाए, तो कृपया मुझे बताएं!


एक समाधान खोजें। मुझे लगता है कि मेरा जवाब सबसे अच्छा अभ्यास है
Goldy

0

M2.1 त्वरित और आसान समाधान।
यदि आप एक कस्टम विषय नहीं बनाना चाहते और / या बैकएंड से काम करना पसंद करते हैं, तो आप बैकएंड में निम्न कार्य कर सकते हैं। उस सेमी पेज, श्रेणी या उत्पाद पृष्ठ पर नेविगेट करें जिसे आप बदलना चाहते हैं। श्रेणी पेज के लिए उदाहरण: डिजाइन के तहत -> लेआउट अपडेट एक्सएमएल निम्नलिखित कोड जोड़ते हैं:

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

नोट: यदि आप चाहते हैं कि अतिरिक्त ब्लॉक साइडबार में रहें, तो अतिरिक्त कंटेनर को इस तरह "झूठा" पर सेट करें:

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

0

इच्छा सूची को बैकएंड के माध्यम से अक्षम किया जा सकता है, जैसा कि अन्य उत्तरों में लिखा गया है।

एक FOSS मॉड्यूल है जो प्रति-स्टोर-व्यू स्तर पर तुलना फ़ंक्शन को हटा सकता है:

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

मैंने एक छोटी समीक्षा की:

  • यह तुलना ब्लॉकों को हटाने के लिए एक लेआउट हैंडल जोड़ता है
  • यह मूल रूप से यहां के उत्तरों के समान कोड का उपयोग करता है (लेकिन केवल स्टोर स्तर पर सक्रिय होता है)
  • Addto लिंक को सीएसएस को सिर में इंजेक्ट करके हटा दिया जाता है, जो थोड़ा अजीब लगता है लेकिन कोर टेम्पलेट को बदलने से बचता है

0

मैं Magento 2.3.3 पर अल्टिमो विषय का उपयोग कर रहा हूँ। मैं थीम के कैटलॉग_प्रोडक्ट_व्यू.एक्सएमएल फ़ाइल से तुलना लिंक को अक्षम नहीं कर सका क्योंकि सेटिंग्स वहां से नहीं आ रही हैं लेकिन वे इसमें स्थित हैं:

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

मैं त्वरित और गंदे समाधान के लिए गया, बस निम्नलिखित को हटा दिया:

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

तुलना बटन हमेशा के लिए चला गया है, हालांकि यदि आप एक Magento के उन्नयन का प्रदर्शन करते हैं तो यह वापस आ जाएगा इसलिए इसे फिर से निकालने की आवश्यकता होगी।


-2

आप Magento 2 ($ 20) में तुलना को अक्षम करने के लिए इस सशुल्क मॉड्यूल का उपयोग कर सकते हैं।
http://www.mage20.com/magento-2-disable-compare.html

विशेषताएं :

  • कोई पुनर्लेखन टेम्पलेट नहीं
  • सिस्टम कॉन्‍फ़िगरेशन में बस हाँ पर हाँ / नहीं।
  • Magento पर काम ठीक 2.x.
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.