কীভাবে ইভেন্ট ক্যাটালগ_প্রডাক্ট_সেভ_বরে নতুন পর্যবেক্ষক তৈরি করবেন


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);
} 

কোন ফোল্ডারে / ফাইলগুলিতে আমাকে কোড লিখতে হবে?


এই পদ্ধতিতে, নিশ্চিত করুন যে সিএসভি পণ্যগুলি আপলোড করার জন্য কোনও সমস্যা নেই।
— 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
@কাশীশ না এটি করা উচিত নয়।
— মারিয়াস

@ মারিয়াস আমি ম্যাজেন্টো ১.৯ ব্যবহার করছি, পূর্ণ শ্রেণীর নামের পরিবর্তিত ক্লাসটি আমাকে সহায়তা করেছে
— TheKitMurkit

@ দ্য কিটমার্কিট এটি উভয় উপায়েই কাজ করা উচিত। উপনামটি ব্যবহার করা আপনার পর্যবেক্ষককে ওভাররাইট করা ক্ষেত্রে উপযুক্ত প্রয়োগের অনুমতি দেয়।
— মারিয়াস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.