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


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.