W skrócie: Pobieranie adresu URL produktu z dodatkowymi parametrami nie działa w CE 1.8 i EE 1.13.
Adresy URL zmieniły się w najnowszej wersji Magento. Wcześniej w CE 1.7 i EE 1.12 wywołanie $this->getAddToCartUrl($_product)
z listy produktów przebiegało przez następujące etapy:
Mage_Catalog_Block_Product_Abstract::getAddToCartUrl()
- W tym miejscu dodany zostałby parametr „opcje” zapytania o wartości „koszyk”
Mage_Catalog_Block_Product_Abstract::getProductUrl()
- Ta metoda zasadniczo pobiera wartość z modelu adresu URL
Mage_Catalog_Model_Product_Url::getUrl()
- Wiele procesów jest przetwarzanych do momentu ostatecznego wygenerowania adresu URL, wraz z pierwotnie przekazanymi parametrami zapytania
Teraz, w CE 1.8 i EE 1.13, krok 3 Mage_Catalog_Model_Product_Url::getUrl()
zaczyna się w następujący sposób:
$url = $product->getData('url');
if (!empty($url)) {
return $url;
}
Ponieważ produkty na liście mają już dane adresu URL, parametry zapytania nie są dodawane, a końcowy adres URL nie zawiera ?options=cart
.
Moje pytanie: czy to błąd, czy funkcja?
url
ee-1.13
url-rewrite
ce-1.8.0.0
jharrison.au
źródło
źródło
Mage_Catalog_Block_Product_Abstract::getAddToCartUrl()
poprzez singleton rdzenia / sesji. Czy możesz podać przykład kodu, którego użyłeś?Odpowiedzi:
Wow, całkiem delta dla tej klasy od 1.7.0.2 -> 1.8.0.0! Chociaż w tej klasie występują istotne zmiany i że jest to „zachowanie przełamujące”, należy to uznać za błąd i zgłosić do wsparcia EE.
Ta poprzednio ważna funkcjonalność nie ma nic wyjątkowo nowatorskiego lub nerwowego, a nawet w niewielkiej wersji aktualizacji zmiany nie powinny istnieć (stąd Magento 2).
źródło