URL-адреса продукту з додатковими параметрами (CE 1.8 & EE 1,13)


13

Коротше кажучи: отримання URL-адреси продукту з додатковими параматами не працює в CE 1.8 & EE 1.13.

URL-адреси змінилися з останньою версією Magento. Раніше в CE 1.7 та EE 1,12 дзвінки $this->getAddToCartUrl($_product)зі списку продуктів проходили б через наступні етапи:

  1. Mage_Catalog_Block_Product_Abstract::getAddToCartUrl()
    • Тут було б додано параметр запиту "options" зі значенням "cart"
  2. Mage_Catalog_Block_Product_Abstract::getProductUrl()
    • Цей метод по суті отримує значення з URL-моделі
  3. Mage_Catalog_Model_Product_Url::getUrl()
    • Багато опрацьовується до моменту остаточного генерування URL-адреси в комплекті з початково переданими параметрами запиту

Тепер із CE 1.8 та EE 1.13 крок 3 Mage_Catalog_Model_Product_Url::getUrl()починається так:

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

Оскільки продукти в списку вже мають дані URL-адрес, параметри запиту не додаються, а кінцева URL-адреса не містить ?options=cart.

Моє запитання: це помилка чи особливість?


Лише бічна примітка, ми повинні додати тег form_key до нашого URL-адреси додавання до кошика після декількох оновлень
EE1.13

Дякуємо за вклад - зовнішній вигляд Magento зробить це автоматично в Mage_Catalog_Block_Product_Abstract::getAddToCartUrl()режимі одиночного ядра / сесії. Чи можете ви надати мені приклад використовуваного коду?
jharrison.au

Відповіді:


3

Нічого собі, дельта для цього класу від 1.7.0.2 -> 1.8.0.0! Оскільки цього класу є суттєві зміни, і що це "порушення поведінки", його слід вважати помилкою і його слід подавати в службу підтримки EE.

У цьому раніше діючому функціонуванні немає нічого виняткового або різкого, і навіть у незначній версії оновлення змін не повинно існувати (отже, Magento 2).


Дякую Бен, просто хотів переконатися, що я чогось не пропускаю.
jharrison.au
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.