Вкратце: получение URL продукта с дополнительными параметрами не работает в CE 1.8 и EE 1.13.
URL были изменены с последней версией Magento. Ранее в CE 1.7 и EE 1.12 вызов $this->getAddToCartUrl($_product)
из списка продуктов проходил через следующие этапы:
Mage_Catalog_Block_Product_Abstract::getAddToCartUrl()
- Здесь было бы добавить параметр запроса "параметры" со значением "корзина"
Mage_Catalog_Block_Product_Abstract::getProductUrl()
- Этот метод по существу получает значение из модели URL
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
.
Мой вопрос: это ошибка или фича?
url
ee-1.13
url-rewrite
ce-1.8.0.0
jharrison.au
источник
источник
Mage_Catalog_Block_Product_Abstract::getAddToCartUrl()
через синглтон core / session. Можете ли вы привести пример кода, который вы использовали?Ответы:
Ничего себе, довольно дельта для этого класса от 1.7.0.2 -> 1.8.0.0! В то время как в этом классе произошли существенные изменения, и что это «нарушающее поведение», это следует считать ошибкой и должно быть передано в службу поддержки EE.
В этой ранее действующей функциональности нет ничего исключительно нового или острого, и даже в незначительной версии обновления не должно быть критических изменений (отсюда и Magento 2).
источник