अतिरिक्त मापदंडों वाला उत्पाद URL (CE 1.8 और EE 1.13)


13

संक्षेप में: अतिरिक्त पैरामेट्स के साथ एक उत्पाद URL प्राप्त करना सीई 1.8 और ईई 1.13 में काम नहीं करता है।

Magento के नवीनतम संस्करण के साथ URL बदल गए हैं। पहले CE 1.7 और EE 1.12 में $this->getAddToCartUrl($_product)उत्पाद सूची से कॉल करना निम्नलिखित चरणों में चलेगा:

  1. Mage_Catalog_Block_Product_Abstract::getAddToCartUrl()
    • यहाँ यह मूल्य "कार्ट" के साथ क्वेरी "विकल्प" जोड़ देगा
  2. Mage_Catalog_Block_Product_Abstract::getProductUrl()
    • यह विधि अनिवार्य रूप से URL मॉडल से एक मान प्राप्त करती है
  3. Mage_Catalog_Model_Product_Url::getUrl()
    • URL के अंत में जनरेट होने तक बहुत सारी प्रोसेसिंग होती है, मूल रूप से पास किए गए क्वेरी मापदंडों के साथ पूरी होती है

अब सीई 1.8 और ईई 1.13 के साथ, चरण 3 Mage_Catalog_Model_Product_Url::getUrl()इस तरह से शुरू होता है:

$url = $product->getData('url');
if (!empty($url)) {
    return $url;
}

क्योंकि सूची के उत्पादों में पहले से ही URL डेटा है, क्वेरी पैरामीटर नहीं जोड़े गए हैं और अंतिम URL में नहीं है ?options=cart

मेरा प्रश्न: यह एक बग या एक विशेषता है?


बस एक तरफ ध्यान दें, हमें EE1.13 उन्नयन के एक जोड़े के बाद कार्ट यूरल में अपने फॉर्म_की टैग को जोड़ना होगा
ब्रेंटवेटर्स

इनपुट के लिए धन्यवाद - इसके Mage_Catalog_Block_Product_Abstract::getAddToCartUrl()माध्यम से Magento कोर / सत्र सिंगलटन के माध्यम से स्वचालित रूप से ऐसा करेगा । क्या आप मुझे उस कोड का उदाहरण दे सकते हैं जिसका आपने उपयोग किया है?
jharrison.au

जवाबों:


3

वाह, 1.7.0.2 से उस वर्ग के लिए काफी डेल्टा -> 1.8.0.0! जबकि इस वर्ग में पर्याप्त बदलाव हैं, और यह "ब्रेकिंग बिहेवियर" है, इसे बग माना जाना चाहिए और इसे ईई सपोर्ट के लिए प्रस्तुत किया जाना चाहिए।

इस पूर्व-मान्य कार्यक्षमता के बारे में असाधारण उपन्यास या नुकीला कुछ भी नहीं है, और यहां तक ​​कि एक मामूली संस्करण अद्यतन में भी ब्रेकिंग परिवर्तन मौजूद नहीं होना चाहिए (इसलिए Magento 2)।


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