Adres URL produktu z dodatkowymi parametrami (CE 1.8 i EE 1.13)

13

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:

  1. Mage_Catalog_Block_Product_Abstract::getAddToCartUrl()
    • W tym miejscu dodany zostałby parametr „opcje” zapytania o wartości „koszyk”
  2. Mage_Catalog_Block_Product_Abstract::getProductUrl()
    • Ta metoda zasadniczo pobiera wartość z modelu adresu URL
  3. 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?

jharrison.au
źródło
Na marginesie, musimy dodać tag form_key do adresu URL dodawania do koszyka po kilku aktualizacjach
EE1.13
Dzięki za wkład - Magento zrobi to automatycznie Mage_Catalog_Block_Product_Abstract::getAddToCartUrl()poprzez singleton rdzenia / sesji. Czy możesz podać przykład kodu, którego użyłeś?
jharrison.au,

Odpowiedzi:

3

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).

zalety
źródło
Dzięki Ben, chciałem się tylko upewnić, że czegoś mi nie umknie.
jharrison.au,