Ek parametreli ürün URL'si (CE 1.8 ve EE 1.13)


13

Kısaca: Ek parametrelerle bir ürün URL'sini almak CE 1.8 ve EE 1.13'te çalışmaz.

URL'ler Magento'nun en son sürümüyle değişti. Daha önce CE 1.7 ve EE 1.12'de $this->getAddToCartUrl($_product)bir ürün listesinden arama yapmak aşağıdaki aşamalardan geçiyordu:

  1. Mage_Catalog_Block_Product_Abstract::getAddToCartUrl()
    • Burada "cart" değerine sahip "seçenekler" sorgusu eklenir.
  2. Mage_Catalog_Block_Product_Abstract::getProductUrl()
    • Bu yöntem temel olarak URL modelinden bir değer alır
  3. Mage_Catalog_Model_Product_Url::getUrl()
    • URL nihayet oluşturulana kadar, başlangıçta iletilen sorgu parametreleriyle birlikte bir çok işlem gerçekleşir

Şimdi, CE 1.8 ve EE 1.13 ile 3. adım şöyle Mage_Catalog_Model_Product_Url::getUrl()başlar:

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

Listedeki ürünler zaten URL verilerine sahip olduğundan, sorgu parametreleri eklenmez ve nihai URL içermez ?options=cart.

Benim sorum: Bu bir hata mı yoksa bir özellik mi?


Sadece bir yan not, birkaç EE1.13 güncellemesinden sonra sepet url'sine bir form_key etiketi eklememiz gerekiyor
brentwpeterson

Giriş için teşekkürler - görünüşe göre Magento bunu Mage_Catalog_Block_Product_Abstract::getAddToCartUrl()çekirdek / oturum singletonu aracılığıyla otomatik olarak yapacak . Kullandığınız kodun bir örneğini verebilir misiniz?
jharrison.au

Yanıtlar:


3

Vay, 1.7.0.2'den> 1.8.0.0'a kadar bu sınıf için delta! Bu sınıfta önemli değişiklikler olmasına ve bunun "kırılma davranışı" olmasına rağmen, bu bir hata olarak görülmeli ve Enerji Verimliliği desteğine sunulmalıdır.

Önceden geçerli olan bu işlevsellik hakkında olağanüstü yeni veya sinirli bir şey yoktur ve küçük bir sürümde bile değişikliklerin kırılması olmamalıdır (bu nedenle Magento 2).


Teşekkürler Ben, sadece bir şey eksik olmadığımdan emin olmak istedim.
jharrison.au
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.