सभी विशेषताओं की सूची कैसे प्राप्त करें


23

मैं सभी परिभाषित उत्पाद विशेषताओं की सूची (सरणी) कैसे प्राप्त कर सकता हूं? (मूल रूप से मुझे कोड और लेबल की आवश्यकता है)।

संपादित करें :

शॉप में मौजूद सभी उत्पाद विशेषताओं के लिए एसीएल को गतिशील रूप से उत्पन्न करने के लिए मुझे इसकी आवश्यकता है। ( प्रोडक्ट एडिट बैकेंड में छिपाने के गुण और अन्य फील्ड्स के लिए एक मॉड्यूल पर काम करना )


विशेषता सेट की अनदेखी?
रात 13:53

@ चिह्न: हाँ।
एलेक्स

जवाबों:


37

यदि आपको एक MySQL क्वेरी की आवश्यकता है, तो कोशिश करें कि:

select attribute_id, attribute_code, frontend_label from eav_attribute where entity_type_id IN (select entity_type_id from eav_entity_type where entity_type_code = 'catalog_product')

फैबियन कोड का एक विकल्प, अगर आपको Magento के आधार पर PHP स्क्रिप्ट की आवश्यकता है, तो यह प्रयास करें:

$attributes = Mage::getResourceModel('catalog/product_attribute_collection')
    ->getItems();

foreach ($attributes as $attribute){
    echo $attribute->getAttributecode();
    echo '<br>';
    echo $attribute->getFrontendLabel();
}

अच्छा लगा। Mage_Catalog_Model_Resource_Product_Attribute_Collectionमूल रूप से क्या Fabian शिल्प की कोशिश कर रहा था। धन्यवाद!
एलेक्स

आपका स्वागत है :-)
सिल्वेन रे

समूह आईडी का उपयोग करके मुझे विशेषताओं की सूची कैसे मिलेगी?
एटिट्यूड

5

//Mage_Eav_Model_Mysql4_Entity_Attribute_Collection
Mage::getResourceModel('eav/entity_attribute_collection')->setEntityTypeFilter(Mage_Catalog_Model_Product::ENTITY);

करना चाहिए।

हमें बस एक बग मिला है, आपको पास करना होगा Unit_type_id:

$col = Mage::getResourceModel('eav/entity_attribute_collection')->setEntityTypeFilter(4);

कर देता है

कोड प्रलेखन है:

if ($type instanceof Mage_Eav_Model_Entity_Type) {
        $additionalTable = $type->getAdditionalAttributeTable();
        $id = $type->getId();
    } else {
        $additionalTable = $this->getResource()->getAdditionalAttributeTable($type);
        $id = $type;
    }

उम्मीद है कि काम कर समाधान (@Alex टिप्पणी द्वारा अद्यतन)

आपको पास करना होगा Mage_Eav_Model_Entity_Typeइसलिए यह काम करना चाहिए और हार्डकोड नहीं है:

$type = Mage::getModel('eav/entity_type')->loadByCode(Mage_Catalog_Model_Product::ENTITY)
Mage::getResourceModel('eav/entity_attribute_collection')->setEntityTypeFilter($type);

संग्रह 0 की गिनती देता है ... मुझे याद है कि इसके लिए किसी प्रकार का एपीआई या सेवा वर्ग था, लेकिन इसे एटीएम नहीं मिल सकता है।
एलेक्स

महान - लेकिन 4 हार्डकोडेड है (यहां तक ​​कि बदलने की कोई भी संभावना नहीं है)। इसे अपवोट के लिए ठीक करें :-)
एलेक्स

और नहीं, पहली पंक्ति काम नहीं करती है। Mage_Catalog_Model_Product :: ENTITY एक स्ट्रिंग है, न कि एक Mage_Eav_Model_Entity_Type
एलेक्स

मुझे लगता है कि मुझे यह अब मिल गया है: डी
फेबियन ब्लेसस्मिट

लेकिन फिर मुझे देर हो गई। मैं करूँगा, जब मैं 2k प्रतिनिधि पास करूँगा: p
फेबियन ब्लेसश्मिड

2

यह सभी विशेषताओं को प्राप्त करना है

SELECT
    eav_attribute_option_value.option_id,
    eav_attribute_option_value.`value`,
    eav_attribute_option.attribute_id
                FROM
                        eav_attribute_option_value
                INNER JOIN eav_attribute_option ON eav_attribute_option_value.option_id = eav_attribute_option.option_id
                WHERE
                        eav_attribute_option.attribute_id = 135
                OR eav_attribute_option.attribute_id = 142 
                -- 135 = BRANDS
                -- 142 = TYPES
                GROUP BY
                        eav_attribute_option_value.option_id
                ORDER BY
                eav_attribute_option_value.`value` ASC

सादे एसक्यूएल का उपयोग नहीं करना चाहते ...
एलेक्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.