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


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.