कैसे सूची कैटलॉग_प्रोडक्ट_सैव_बेफ्र पर एक नया पर्यवेक्षक बनाने के लिए


24

मैं इस कोड के साथ इवेंट कैटलॉग_प्रोडक्ट_सैव_बेवर पर एक नया पर्यवेक्षक बनाकर अपने उत्पादों के लिए मेटा विवरण की ऑटो पीढ़ी चाहता हूं:

public function autoMetaDescription($observer) {
     $product = $observer->getEvent()->getProduct();
     $metaDescription = "Buy ". $product->getName()." for Rs ".number_format($product->getFinalPrice(), 2)." at sitename.com | New Book | Authorised seller for ". $product->getAttributeText('publisher');
    $product->setMetaDescription($metaDescription);
} 

मुझे किस फ़ोल्डर / फ़ाइलों में कोड लिखना है?


इस विधि में, सुनिश्चित करें कि csv उत्पादों के अपलोड के लिए कोई समस्या नहीं है।
zus

जवाबों:


51

आपको एक नया मॉड्यूल बनाने की आवश्यकता है।
चलो बुलावा आया Easylife_Meta
app/etc/modules/Easylife_Meta.xml- घोषणा फ़ाइल

<?xml version="1.0"?>
<config>
    <modules>
        <Easylife_Meta>
            <codePool>local</codePool>
            <active>true</active>
            <depends>
                <Mage_Catalog />
            </depends>
        </Easylife_Meta>
    </modules>
</config>

app/code/local/Easylife/Meta/etc/config.xml - कॉन्फ़िगरेशन फ़ाइल

<?xml version="1.0"?>
<config>
    <modules>
        <Easylife_Meta>
            <version>0.0.1</version>
        </Easylife_Meta>
    </modules>
    <global>
        <models>
            <easylife_meta>
                <class>Easylife_Meta_Model</class>
            </easylife_meta>
        </models>
    </global>
    <adminhtml>
        <events>
            <catalog_product_save_before><!-- observe the event -->
                <observers>
                    <easylife_meta>
                        <class>easylife_meta/observer</class>
                        <method>autoMetaDescription</method>
                    </easylife_meta>
                </observers>
            </catalog_product_save_before>
        </events>
    </adminhtml>
</config>

app/code/local/Easylife/Meta/Model/Observer.php - अवलोकन वर्ग

<?php 
class Easylife_Meta_Model_Observer {
    public function autoMetaDescription($observer) {
        $product = $observer->getEvent()->getProduct();
        $metaDescription = "Buy ". $product->getName()." for Rs ".number_format($product->getFinalPrice(), 2)." at sitename.com | New Book | Authorised seller for ". $product->getAttributeText('publisher');
        $product->setMetaDescription($metaDescription);
    } 
}

जब आप कर रहे हैं कैश साफ़ करें।


2
यह नहीं होना चाहिए <class>easylife_meta_Model_Observer</class>के बजाय <class>easylife_meta/observer</class>में config.xml?
कशिश

2
@ काशिश नहीं यह नहीं होना चाहिए।
मारियस

@ मार्गी मैं Magento 1.9 का उपयोग कर रहा हूँ, क्लास को पूरी क्लास के नाम में बदल दिया जिससे मुझे मदद मिली
TheKitMurkit

@ TheKitMurkit इसे दोनों तरह से काम करना चाहिए। यदि आपका पर्यवेक्षक ओवरराइट हो गया है, तो उपनाम का उपयोग उचित निष्पादन की अनुमति देता है।
मेरियस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.