$ उत्पाद-> getOptions () खाली परिणाम देता है


9

मैं एक कस्टम ब्लॉक में उत्पाद कस्टम विकल्प मूल्य सहित उत्पाद विवरण प्राप्त करने की कोशिश कर रहा हूं। यह उत्पाद विस्तार पृष्ठ पर उपयोग किए गए कोड है और यह वहां काम करता है, लेकिन जब कस्टम ब्लॉक पृष्ठ पर इसका उपयोग करने का प्रयास किया जाता है तो विकल्प खाली मूल्य प्राप्त करते हैं।

अगर ($ _product-> getId ()) {  
    foreach ($ _product-> getOptions ($ $ के रूप में)) {  
    इको $ विकल्प टाइप = $ ऑप्ट-> गेट टाइप ();  
      अगर ($ optionType == 'drop_down') {  
        $ मान = $ ऑप्ट-> getValues ​​();  
        foreach ($ v के रूप में $ मूल्य)
        {
     $ mydata = $ v-> getTitle ();      
print_r ($ MyData);    
        }
      }  
    }   
}

मैं Magento के लिए नया हूँ इसलिए मुझे यकीन नहीं है कि मैं यहाँ क्या याद कर रहा हूँ।
क्या कोई मुझे संकेत दे सकता है कृपया
धन्यवाद


संबंधित धागे से यह उत्तर देखें ।
क्विकशिफ्टिन

जवाबों:


2

इसे इस्तेमाल करे:

if (Mage::registry('current_product')) {
    $product = Mage::registry('current_product');
} else {
    $product = Mage::getSingleton('catalog/product');
}


if ($product->getId()) {
    if ($product->hasCustomOptions()) {
        foreach ($product->getOptions() as $option) {
            $optionType = $option->getType();
            if ($optionType == 'drop_down') {
                $values = $option->getValues();
                foreach ($values as $k => $value) {
                    print_r($value);
                }
            }

        }
    }
}

1
काम नहीं कर रहा है ... जब मैं सरणी $ prodct प्रिंट करता हूं तो सभी जानकारी कस्टम विकल्पों को छोड़कर दिखाई जा रही है, जबकि एक ही कोड उत्पाद दृश्य पृष्ठ में ठीक काम कर रहा है
शिविका शर्मा

2

समस्या यह है कि उत्पाद आपके ब्लॉक में पूरी तरह से लोड नहीं है। load()विधि सुनिश्चित करें कि एक वस्तु की सभी जानकारी भरी हुई है बनाता है। यदि आप केवल loadByAttribute()एक संग्रह या उपयोग करते हैं , तो यह मामला नहीं है।

एक उदाहरण होगा:

$product = Mage::getModel('catalog/product')->load($productId);

यदि आप कई उत्पादों को प्रदर्शित करना चाहते हैं, तो आपको इसका उपयोग करने से बचना चाहिए load()क्योंकि इसका एक मजबूत नकारात्मक प्रदर्शन प्रभाव है। क्षमा करें कि मैं संग्रह में विकल्प जोड़ने में आपकी मदद नहीं कर सकता।

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