কাজটি তুচ্ছ। ফ্ল্যাট ক্যাটালগ সক্ষম হওয়া সহ নির্দিষ্ট স্টোর ভিউয়ের জন্য পণ্যের তালিকা পেতে আমার দরকার need সর্বাধিক সুস্পষ্ট সমাধান নিম্নলিখিত:
$collection = Mage::getResourceModel('catalog/product_collection')
->setStore($storeId);
প্রকৃতপক্ষে setStore()
পদ্ধতিটি এখানে কোনও পার্থক্য করছে না কারণ স্টোর আইডির উপর ভিত্তি করে ফ্ল্যাট টেবিলের নামটি পাওয়া যায় সেই _initSelect()
পদ্ধতির পরে তাকে বলা হয় Mage_Catalog_Model_Resource_Product_Collection
। স্টোর আইডি এখনও সেট না করা হিসাবে এটি বর্তমান স্টোর আইডি লাগে।
সুতরাং স্পষ্টত কাজটি হবে মডেল পাওয়ার আগে একটি বর্তমান স্টোর আইডি সেট করা।
Mage::app()->setCurrentStore($storeId);
$collection = Mage::getResourceModel('catalog/product_collection');
এটা কাজ করবে। তবে আপনার যদি একবার সংগ্রহের প্রয়োজন হয়। যদি আপনাকে লুপে সংগ্রহ করতে হয় বা আপনার কেবল দুটি পিছনে পিছনে সংগ্রহের প্রয়োজন হয় তবে আপনি তাদের জন্য নির্দিষ্ট স্টোর সেট করতে পারবেন না।
কারণটি হ'ল Mage_Catalog_Model_Resource_Product_Flat
শ্রেণীর নিজস্ব _storeId
সম্পত্তি রয়েছে এবং নির্মাতায় এটি বর্তমান স্টোর আইডিতে সেট করা আছে। এজন্য এটি প্রথমবার সেট করা হবে। তারপরে কোনও কারণে (স্বর্গ জানে আমি আশা করি একটি আছে) Mage_Eav_Model_Entity_Collection_Abstract::_init
প্রতিটি সংস্থান মডিউলে একটি সিঙ্গলটন হিসাবে আনা হয়। 2 র্থ কলের জন্য কোনও নির্মাণকারী নেই।
এগুলি এতোটাই ভুল দেখাচ্ছে যে আমি নিশ্চিত যে আমি ভুল এবং এটি অন্য কোনও ম্যাজেন্টো বাগ (বা দুটি) নয়। আশা করি কেউ এটির উপর আলোকপাত করতে পারে।