2013-01-21 19 views
7

मैं Magento प्रमाणन परीक्षा के लिए सीख रहा हूं और मैं यह निर्धारित करने की कोशिश कर रहा हूं कि मैगेंटो में इंडेक्स टेबल से उत्पाद की कीमतें किस परिस्थितियों में पढ़ी जाती हैं।
मैं Magento के विधि के प्रवाह का पालन करने की कोशिश कर रहा हूं हालांकि मैं कुछ खरगोश के निशान के बाद अटक गया हूं।
शायद किसी ने इसे किसी भी समय देखा है?मैगेंटो में इंडेक्स टेबल से उत्पाद की कीमतें किस परिस्थितियों में पढ़ी जाती हैं?

उत्तर

10

उत्पाद की कीमत केवल उत्पाद संग्रहों का उपयोग कर रही है जब आप उत्पाद संग्रह का उपयोग कर रहे हैं, यानी जब आप एक समय में कई उत्पादों को संभालने में कामयाब होते हैं। जब आपको एक उत्पाद मिलता है, उदाहरण के लिए उत्पाद दृश्य पृष्ठ पर, कीमत फ्लाई पर उत्पन्न होती है।

और अब कुछ कोड संदर्भों के साथ स्पष्टीकरण:

जब आप Mage_Catalog_Model_Product पर विचार करें, आपको लगता है कि विधि getFinalPrice()$this->getPriceModel()->getFinalPrice($qty, $this); बारी में कहता है, डिफ़ॉल्ट मूल्य मॉडल (Mage_Catalog_Model_Product_Type_Price) विधि getFinalPrice() में मूल्य की गणना करता है देखेंगे और इवेंट catalog_product_get_final_price को भी फ़ायर करता है जिसका उपयोग कुछ मॉड्यूल द्वारा किया जाता है (मुझे लगता है कि यह मूल्य समायोजित करने के लिए कैटलॉग या कार्ट मूल्य नियम था)। यह विधि इंडेक्स के बिना "ऑन-द-फ्लाई" की गणना है।

संग्रह में (Mage_Catalog_Model_Resource_Product_Collection) मूल्य सूचकांक प्रत्येक उत्पाद के लिए मूल्य को कैलक्यूटिंग की जटिल प्रक्रिया को कम करने के लिए उपयोग किया जाता है। यह एक मानचित्र को परिभाषित करता है उचित अनुक्रमित क्षेत्रों के लिए क्षेत्रों आवंटित करने के लिए:

protected $_map = array('fields' => array(
    'price'   => 'price_index.price', 
    'final_price' => 'price_index.final_price', 
    'min_price'  => 'price_index.min_price', 
    'max_price'  => 'price_index.max_price', 
    'tier_price' => 'price_index.tier_price', 
    'special_price' => 'price_index.special_price', 
)); 

इंडेक्सर जो करता है काम वर्ग Mage_Catalog_Model_Product_Indexer_Price है।