मैं भी इस मुद्दे के माध्यम से काम कर रहा है, जो मैं "फ्लैट मोड में उत्पाद संग्रह विशेषता तक नहीं पहुंच सकता" या "addAttributeTo चयन को फ्लैट मोड में काम नहीं कर रहा" के रूप में वर्णित करता हूं।
मैं एक "क्लीन" समाधान नहीं मिला जो:
- विशेषता की आवश्यकता नहीं है व्यवस्थापक में विशिष्ट सेटिंग (यह एक उपयोगकर्ता द्वारा जोड़ा जा सकता है, या सामने के छोर पर छिपा हुआ)
- काम करता है करने के लिए दोनों फ्लैट और गैर फ्लैट मोड के लिए
कृपया ध्यान दें - कोड में नीचे मैं जुड़े उत्पाद संग्रह का इस्तेमाल किया है, लेकिन यह किसी भी उत्पाद संग्रह करने के लिए (विशेष रूप से Mage_Eav_Model_Entity_Collection_Abstract
से इनहेरिट कुछ भी,)
०१२३५१६४१०६ लागू होता है
असफल कोड:
$_product = Mage::getModel('catalog/product')->loadByAttribute('sku', 'ABC123');
$coll = $_product->getTypeInstance()->getAssociatedProductCollection()
->addAttributeToSelect('my_custom_attribute')
;
फ्लैट मोड में, इसके बाद के संस्करण कोड चुपचाप विशेषता जोड़ने के लिए अगर यह फ्लैट तालिका में होने के लिए नहीं होता है विफल रहता है।
कार्य कोड:
$_product = Mage::getModel('catalog/product')->loadByAttribute('sku', 'ABC123');
$coll = $_product->getTypeInstance()->getAssociatedProductCollection()
->joinAttribute('my_custom_attribute', 'catalog_product/my_custom_attribute', 'entity_id', null, 'left')
->addAttributeToSelect('my_custom_attribute')
;
joinAttribute
विधि एक सवाल के शामिल होने के कहते हैं। यह तब भी काम करता है जब यह एक विशेषता को डुप्लिकेट करता है जो पहले से ही फ्लैट तालिका में है।
ध्यान दें कि मैंने left
का उपयोग किया है ताकि यह सुनिश्चित किया जा सके कि यह उत्पाद प्राप्त करता है यदि my_custom_attribute
उन उत्पादों पर सेट नहीं है। आप inner
के लिए इसे बदल सकते हैं यदि आप केवल पंक्तियों में रूचि रखते हैं जहां my_custom_attribute
सेट है।
(सीई 1.6.2.0 में परीक्षण)
"पी में प्रयुक्त कर सकते हैं roduct लिस्टिंग "कुंजी प्रतीत होता है। मेरे पास कई विशेषताएं थीं जो पहले से ही "स्तरित नेविगेशन में उपयोग करें" थीं, लेकिन जब तक मैं "उत्पाद प्रविष्टि में प्रयुक्त" सेट नहीं करता तब तक वे catalog_product_flat_1 तालिका में दिखाई नहीं दे रहे थे। – ben