URL del producto con parámetros adicionales (CE 1.8 y EE 1.13)


13

En resumen: recuperar una URL de producto con parámetros adicionales no funciona en CE 1.8 y EE 1.13.

Las URL han cambiado con la última versión de Magento. Anteriormente en CE 1.7 y EE 1.12, las llamadas $this->getAddToCartUrl($_product)desde una lista de productos se ejecutarían en las siguientes etapas:

  1. Mage_Catalog_Block_Product_Abstract::getAddToCartUrl()
    • Aquí agregaría el parámetro de consulta "opciones" con el valor "carrito"
  2. Mage_Catalog_Block_Product_Abstract::getProductUrl()
    • Este método esencialmente obtiene un valor del modelo de URL
  3. Mage_Catalog_Model_Product_Url::getUrl()
    • Se produce mucho procesamiento hasta que finalmente se genera la URL, completa con los parámetros de consulta pasados ​​originalmente en

Ahora, con CE 1.8 y EE 1.13, el paso 3 Mage_Catalog_Model_Product_Url::getUrl()comienza así:

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

Debido a que los productos en la lista ya tienen datos de URL, los parámetros de consulta no se agregan y la URL final no contiene ?options=cart.

Mi pregunta: ¿Es esto un error o una característica?


Solo una nota al margen, tenemos que agregar una etiqueta form_key a nuestra url de agregar al carrito después de un par de actualizaciones
— EE1.13

Gracias por el aporte, por lo que parece, Magento lo hará automáticamente a Mage_Catalog_Block_Product_Abstract::getAddToCartUrl()través del núcleo / sesión singleton. ¿Me puede dar un ejemplo del código que utilizó?
— jharrison.au

Respuestas:


3

¡Guau, todo el delta para esa clase de 1.7.0.2 -> 1.8.0.0! Si bien hay cambios sustanciales en esta clase, y que se trata de "comportamiento de ruptura", debe considerarse un error y debe enviarse al soporte de EE.

No hay nada excepcionalmente novedoso o nervioso acerca de esta funcionalidad previamente válida, e incluso en una actualización menor de la versión no deberían existir cambios importantes (por lo tanto, Magento 2).


Gracias Ben, solo quería asegurarme de que no me faltaba algo.
— jharrison.au
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.