URL produk dengan parameter tambahan (CE 1.8 & EE 1.13)

13

Singkatnya: Mengambil URL produk dengan params tambahan tidak berfungsi di CE 1.8 & EE 1.13.

URL telah berubah dengan versi Magento terbaru. Sebelumnya di CE 1.7 dan EE 1.12 panggilan $this->getAddToCartUrl($_product)dari daftar produk akan berjalan melalui tahapan berikut:

  1. Mage_Catalog_Block_Product_Abstract::getAddToCartUrl()
    • Di sini ia akan menambahkan parameter "opsi" dengan nilai "keranjang"
  2. Mage_Catalog_Block_Product_Abstract::getProductUrl()
    • Metode ini pada dasarnya mendapatkan nilai dari model URL
  3. Mage_Catalog_Model_Product_Url::getUrl()
    • Banyak pemrosesan terjadi hingga URL akhirnya dihasilkan, lengkap dengan parameter kueri yang semula disahkan

Sekarang, dengan CE 1.8 dan EE 1.13, langkah 3 Mage_Catalog_Model_Product_Url::getUrl()dimulai seperti ini:

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

Karena produk dalam daftar sudah memiliki data URL, parameter kueri tidak ditambahkan dan URL akhir tidak mengandung ?options=cart.

Pertanyaan saya: Apakah ini bug atau fitur?

jharrison.au
sumber
Sebagai catatan saja, kita harus menambahkan tag form_key ke url add to cart kami setelah beberapa peningkatan
EE1.13
Terima kasih atas masukannya - sepertinya Magento akan melakukan ini secara otomatis Mage_Catalog_Block_Product_Abstract::getAddToCartUrl()melalui inti / sesi singleton. Bisakah Anda memberi saya contoh kode yang Anda gunakan?
jharrison.au

Jawaban:

3

Wow, cukup delta untuk kelas itu dari 1.7.0.2 -> 1.8.0.0! Sedangkan ada perubahan substansial kelas ini, dan bahwa ini adalah "perilaku melanggar", itu harus dianggap bug dan harus diserahkan ke dukungan EE.

Tidak ada yang luar biasa novel atau kegelisahan tentang fungsi yang sebelumnya valid ini, dan bahkan dalam versi minor pembaruan perubahan tidak boleh ada (karenanya Magento 2).

tanda batas
sumber
Terima kasih Ben, hanya ingin memastikan aku tidak melewatkan sesuatu.
jharrison.au