ক্যাটালগ বিধি দৈনিক আপডেট কাজ করে না


15

আমি এমন সমস্যার মুখোমুখি হয়েছি যে ম্যাজেন্টোর ক্যাটালগ নিয়ম করে যে প্রতিদিনের আপডেট কাজ করে না। এর অর্থ হ'ল ক্যাটালগ নিয়মের মেয়াদ শেষ হওয়ার সময় কোনও পণ্যের দামের পরিবর্তন হয় না, সুতরাং আমাকে অ্যাডমিনে নিয়ম প্রয়োগ বোতাম টিপতে হবে। ক্রোন কনফিগার করা এবং কাজ করা হয়। দেখে মনে হচ্ছে ক্যাটালগ্রোল / পর্যবেক্ষক :: দৈনিক ক্যাটালগ্স আপডেট পদ্ধতিতে প্রতিদিন স্বয়ংক্রিয়ভাবে নিয়মগুলি পরীক্ষা করা এবং প্রয়োগ করা উচিত, তবে এটি হয় না (এছাড়াও আমি নিজে নিজে এটি চালু করার চেষ্টা করেছি)। এখানে ম্যাগান্টো কোর কোড রয়েছে:

<!--file: app/code/core/Mage/CatalogRule/etc/config.xml-->
<crontab>
    <jobs>
        <catalogrule_apply_all>
            <schedule>
                <cron_expr>*/1 * * * *</cron_expr>
            </schedule>
            <run>
                <model>catalogrule/observer::dailyCatalogUpdate</model>
            </run>
        </catalogrule_apply_all>
    </jobs>
    ...
</crontab>

অবজারভার:

/*file app/code/core/Mage/CatalogRule/Model/Observer.php*/
public function dailyCatalogUpdate($observer)
{
    Mage::getResourceSingleton('catalogrule/rule')->applyAllRulesForDateRange();

    return $this;
}

আমি নীচের মত পর্যবেক্ষক পদ্ধতি পরিবর্তন করে একটি সাফল্য পেয়েছি:

/*file app/code/core/Mage/CatalogRule/Model/Observer.php*/
public function dailyCatalogUpdate($observer)
{
    Mage::getModel('catalogrule/rule')->getResourceCollection()
                  ->walk(array(
                         Mage::getResourceSingleton('catalogrule/rule'),
                         'updateRuleProductData'
                  ));
    Mage::getResourceSingleton('catalogrule/rule')->applyAllRulesForDateRange();

    return $this;
}

এইভাবে নিয়মগুলি প্রতিদিন পরীক্ষা করা হয় এবং প্রয়োগ করা হয় এবং নিয়মের মেয়াদ শেষ হলে পণ্যগুলির দাম পরিবর্তন করা হচ্ছে। আমি বিশ্বাস করি না যে এটি ম্যাজেন্টোর একটি বাগ। দয়া করে পরামর্শ দিন যে নিয়মগুলি স্বয়ংক্রিয়ভাবে চেক করা এবং প্রয়োগ করা হচ্ছে না এমন সমস্যা কি?


আপনার পিএইচপি ত্রুটি লগ বা ক্রোন_শেডিউল টেবিলের বার্তাগুলি কলামে লগ হচ্ছে কি ত্রুটি রয়েছে? আমি ধরে নিচ্ছি ক্রোনটি আসলে বলা হচ্ছে যেহেতু আপনি নির্দেশ করেছেন যে পর্যবেক্ষক পদ্ধতিতে পরিবর্তন করে আপনি কিছুটা সাফল্য পেয়েছেন।
ডেভিডালগার

এছাড়াও আপনি মূল পর্যবেক্ষকের জন্য কিছু লগ কল রাখতে পারেন এবং এটি কল হয়েছে কিনা তা দেখতে পারেন। শুধু যে নিরাপদে।
পেটার ঝাজাবাজভ

উত্তর:


7

যখন আমি আমাদের প্রকল্পের জন্য একটি নতুন মূল্য বিধি পরীক্ষা করছিলাম তখন সম্প্রতি আমার একই সমস্যা হয়েছিল। এবং আমার মাথা ব্যথার কারণ হ'ল আমি লক্ষ্য করিনি যে প্রতিবার যখন আপনি একটি নতুন নিয়ম তৈরি করবেন বা বিদ্যমান কিছু নিয়ম সম্পাদনা করবেন তখন আপনাকে " বিধি প্রয়োগ করুন " বোতামটি চাপতে হবে যাতে আপনার নিয়মের পরিবর্তনগুলি সম্পর্কে জানতে পারেন।


2
আপনাকে অনেক ধন্যবাদ. আপনি ঠিক বলেছেন: পরিবর্তনগুলির জন্য সংরক্ষণের নিয়ম যথেষ্ট নয়। নিয়ম গ্রিডে অতিরিক্ত কলাম যুক্ত হ'ল বিধি বিধান প্রয়োগ করা হয়েছে কি না তা দুর্দান্ত লাগবে।
ভোভস্কি

মনে হয় দৈনিক ক্যাটালগ্ল্যাপআপ্টেটটি যদি আপনি এই বোতামটি টিপেন না তবে রাতের বেলা নিয়ম প্রয়োগ করতে হবে apply নইলে সেই ক্রোনটির উদ্দেশ্য কী?
হুজ

7

"প্রয়োগ বিধিগুলি" আঘাত করা নিশ্চিত করা সর্বদা পর্যাপ্ত নয়। আমি সম্প্রতি আবিষ্কার করেছি যে ক্রোন সঠিকভাবে সেট আপ না করা থাকলে, ভবিষ্যতের কোনও সময়ে, নিয়মগুলি প্রয়োগ করা হবে না।

নিয়মগুলি কাজ করা বন্ধ করে দিলে আমি সত্যিই পেরে উঠতে পারিনি। আমার ক্ষেত্রে আমার হাতে প্রচুর নিয়ম ছিল যা গ্রাহক গোষ্ঠীর (পাইকারের) উপর ভিত্তি করে প্রয়োগ করা হয়।

  1. cron_scheduleটেবিলটি পরীক্ষা করুন । এখানে আপনার সাথে মিলিয়ে কিছু এন্ট্রি রয়েছে তা নিশ্চিত করুন catalogrule_apply_all(আমি মনে করি এটি প্রক্রিয়াটির নাম)।
  2. config.xml* / 1 দিয়ে প্রতি মিনিট বা ততোধিক (পরীক্ষার জন্য) চালানোর জন্য ক্যাটালগালিউল মডিউলের ফাইলটিতে ক্রোনজব সেট করুন ।
  3. cron_scheduleটেবিলটি ফিরে দেখুন এবং প্রতি কয়েক মিনিট পরে এটি পুনরায় লোড করুন। আপনার স্টোরের ফাইলটিতে ম্যানুয়ালি আঘাত না করে নতুন প্রক্রিয়াগুলি স্বয়ংক্রিয়ভাবে যুক্ত / সম্পাদিত হওয়া দেখতে পাওয়া উচিত cron.php
  4. যদি আপনি ম্যানুয়ালি কোনও প্রক্রিয়া আপডেট দেখতে না পান তবে এসএসএইচটিকে সাইটের ফাইলগুলির মালিক হিসাবে সাইট হিসাবে প্রবেশ করুন। একটি কমান্ড লাইন থেকে: crontab -e(আপনি ভিমে থাকতে পারেন এবং কী করতে হবে তা জানেন না, আমি বেসিক Vim কমান্ড ব্যবহার করার জন্য গুগলকে পরামর্শ দিই)।
  5. ক্রন্টব চালানোর জন্য সেট করুন: */1 * * * * /path/to/your/cron.sh
  6. cron_scheduleক্রোন প্রক্রিয়াগুলি স্বয়ংক্রিয়ভাবে কার্যকর হচ্ছে কিনা তা নিশ্চিত করতে এখন টেবিলটি আবার চেক করুন ।
  7. আশা করি, এই মুহুর্তে সব ঠিক আছে। এগিয়ে যান এবং ফিরে যান এবং কাঙ্ক্ষিত বিরতিতে চালানোর জন্য আপনার ক্রোন প্রক্রিয়া সেট করুন।

3

কাজটি নির্ধারিত হয়েছে কিনা তা পরীক্ষা করে দেখুন

আপনি এটি ডেটাবেস পরীক্ষা করে বা এই এক্সটেনশানটি ইনস্টল করে করতে পারেন: এওএসশেডুলার

চাকরি যদি কাজ করে তবে পরীক্ষা করুন

একটি পিএইচপি স্ক্রিপ্ট তৈরি করুন run_my_rules.phpএবং সেখানে ফাংশনটির জন্য কেবল সামগ্রী রেখে দিন: dailyCatalogUpdateতারপরে এটি কনসোল থেকে চালান। কী হচ্ছে তা দেখুন।

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