2013-12-18 8 views
7

मैं तुलनात्मक दृश्य में एक उत्पाद दिखाने की कोशिश कर रहा हूं, जिसे व्यवस्थापक पैनल के माध्यम से status = disabled के रूप में सेट किया गया है।तुलनात्मक रूप से निष्क्रिय/अक्षम उत्पादों को दिखाएं

डिफ़ॉल्ट Magento में, यह संभव नहीं लगता है के रूप में विकलांग उत्पादों उत्पाद प्रविष्टि पृष्ठ के साथ-साथ उत्पाद विवरण पृष्ठ में दिखाई नहीं दे रहे हैं।

किसी तरह, मैं और उत्पाद विवरण पृष्ठMage_Catalog_Helper_Product अधिभावी द्वारा उत्पाद प्रविष्टि पृष्ठ में विकलांग उत्पादों को दिखाने में कामयाब रहे। कि मैं निम्नलिखित कोड टिप्पणी की:

// if (!$this->canShow($product)) { 
    //  return false; 
    // } 

अब, कृपया कोई मुझे कैसे भी दृश्य की तुलना में विकलांग उत्पाद दिखाने के लिए पर मदद?

+0

मैं खोजा पूरा कोर फाइलों में खंड की तुलना, लेकिन मैं कुछ भी नहीं मिला .. –

उत्तर

4

लंबे समय तक खोज करने और मैगे कोर फ़ाइलों से समाधान निकालने में विफल होने के बाद, मैंने एक विशेषता बनाई जो status विशेषता के समान है। मैंने उस विशेषता को Archive (हां/नहीं) के रूप में नामित किया है। यह नई विशेषता औचित्य साबित करेगी कि कोई उत्पाद बंद है या नहीं।

अटलास्ट, मैं केवल इस नई विशेषता Archive से संबंधित सभी उत्पाद सूची, उत्पाद विवरण और होम पेज फ़िल्टर करता हूं।

मैं एक MVC कार्रवाई है, जो statusenabled के रूप में और एक ही समय में status = disabled उत्पादों के लिए हाँ के रूप में Archive ट्रिगर सभी उत्पादों बदल जाएगा लिखने की योजना बना रहा हूँ। मैं जल्द ही कोड साझा करूंगा।

कोड:

एक डमी नियंत्रक जो निम्नलिखित कोड जब यूआरएल कहा जाता है चलाता लिखें:

public function updateproductsAction() { 
    Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); 

    $collectionConfigurable = Mage::getResourceModel('catalog/product_collection') 
      ->addAttributeToFilter('type_id', array('eq' => 'configurable')) 
      ->addAttributeToFilter('entity_id', array('gt' => 0));  // This line should be removed to affect all the configurable products. (to avoid execution time-out) 

    echo 'Total are ' . count($collectionConfigurable) . '<br/>'; 
    $i = 1;       
    foreach($collectionConfigurable as $p) { 
     $product = Mage::getModel('catalog/product')->load($p->getId()); 
     $product->save(); 
     echo $i++ . ') The product Id with ' . $p->getId() . " is done...." . "<br/>"; // if the execution time-out occurs, note down the last product id and change the value above in addAttributeToFilter. so the execution runs from the last stopped product. 
    } 
} 
4

जांच करना चाह सकते: सार्वजनिक समारोह

IsEnabled Magento \ एप्लिकेशन \ कोड \ कोर \ दाना \ कैटलॉग में \ हेल्पर \ उत्पाद \ Flat.php

+0

आप सावधान रहना चाहेंगे क्योंकि यह फ्लैट टेबल का उपयोग करके स्टोर पर निर्भर करता है। सभी स्टोरों ने इसे एक कारण या किसी अन्य कारण से सक्षम नहीं किया है। –

4

मैं में एक त्वरित देखो ले लिया है क्या ब्लॉक सूची बना रहा है। एक अच्छी जगह शुरू करने के लिए निम्न फ़ाइल होगा:

एप्लिकेशन/कोड/कोर/दाना/सूची/ब्लॉक/उत्पाद/तुलना/List.php

नहीं है एक समारोह getItems कि आइटम प्राप्त करने के लिए जिम्मेदार है सामने के अंत में प्रदर्शित करने के लिए तैयार है। इस समारोह के अंत में यह दृश्यता विधि के माध्यम से आइटम गुजरता है:

Mage::getSingleton('catalog/product_visibility') 
       ->addVisibleInSiteFilterToCollection($this->_items); 

इम 100% यकीन नहीं करता है, तो कोड के इस अंतिम भाग को हटाने आप हो जाता है कि आप क्या चाहते हैं, लेकिन एक बहुत ही बुनियादी स्तर पर आप बदल सकते हैं आपके द्वारा सेट की गई स्थिति को अनदेखा करने के लिए संग्रह।

+0

यदि मैं उपरोक्त कोड पर टिप्पणी/हटा देता हूं, तो मैं अपने तुलना अनुभाग में 'सरल उत्पाद' प्राप्त कर सकता हूं। मेरा मतलब है कि कोड 'सरल उत्पादों' को सक्षम करने के लिए है 'बंद नहीं/अक्षम' उत्पादों।मैं 100% निश्चित हूं क्योंकि मैंने हाल ही में अपनी परियोजना में यह किया है :) –

संबंधित मुद्दे