ऐसा होने का कारण यह है कि image
विशेषता उत्पाद प्रविष्टि में लोड नहीं होती है। आम तौर पर आप विशेषता संपादित करते समय इसे बदल सकते हैं, लेकिन आप इस विशेषता के लिए उन सेटिंग्स को संपादित नहीं कर सकते हैं। मुझे लगता है कि ऐसा इसलिए है क्योंकि यह एक स्टॉक विशेषता है।
टीएलडीआर;
UPDATE catalog_eav_attribute SET used_in_product_listing = 1 WHERE attribute_id = 106;
** चेतावनी, तो आप इस ^^^ क्वेरी निष्पादित नहीं करना चाहिए जब तक आप कुछ कर रहे हैं catalog_product
इकाई के लिए अपने image
attribute_id 106 है!
कुछ जवाब इस विधि सुझाव दे रहे हैं:
$_product = Mage::getModel('catalog/product')->load($_item->getProduct()->getId());
echo $this->helper('catalog/image')->init($_product, 'image')->resize(38, 38);
आप ऐसा नहीं करना चाहिए! ऐसा इसलिए है क्योंकि आप एक पूर्ण उत्पाद लोड करेंगे! यह कुशल नहीं है, और संभवतः एक लूप के अंदर किया जा रहा है जो इससे भी बदतर है! चीखने के लिए खेद है!
मैं आमतौर पर प्रत्यक्ष डीबी संपादन को नज़रअंदाज़ नहीं है, लेकिन इस मामले में यह मेरे लिए सबसे आसान समाधान था:
# First make sure we are using all the right IDs, who knows, I have seen some fubar'ed deployments
SELECT entity_type_id FROM eav_entity_type WHERE entity_type_code = 'catalog_product';
# 10
SELECT attribute_id FROM eav_attribute WHERE attribute_code = 'image' AND entity_type_id = 10;
# 106
# Now that we know the exact attribute_id....
UPDATE catalog_eav_attribute SET used_in_product_listing = 1 WHERE attribute_id = 106;
अब image
विशेषता डेटा स्वतः लिस्टिंग पृष्ठों उत्पाद पर लोड किया जाएगा, तो आप कर सकते हैं इस तरह इसे उपयोग:
echo $this->helper('catalog/image')->init($_product, 'image');
सबसे अच्छी बात यह है कि आप एक पाश में पूरे उत्पाद लोड नहीं हो रहे है! कभी भी ऐसा न करें कि कभी भी
** इसके अलावा, क्योंकि मुझे पता है कि मैं लोगों को यह कहने जा रहा हूं कि यह Magento तरीका नहीं है, विकल्प एक मॉड्यूल बनाना होगा जिसमें एक SQL सेटअप स्क्रिप्ट है जो कमांड चलाती है ।
स्टैक ओवरफ़्लो में आपका स्वागत है। यह बिल्कुल [स्व-उत्तर के लिए ठीक] है (http://meta.stackexchange.com/questions/12513/should-i-not-answer-my-own-questions/12519#12519) अपना स्वयं का प्रश्न, लेकिन कृपया इसे पोस्ट करें प्रश्न के अंदर वास्तविक जवाब के रूप में। यह उत्तर को वोट/स्वीकार करने की अनुमति देता है और हमें "अनुत्तरित" सूची को और स्पष्ट रखने में मदद करता है। –