URL du produit avec paramètres supplémentaires (CE 1.8 & EE 1.13)

13

En bref: la récupération d'une URL de produit avec des paramètres supplémentaires ne fonctionne pas dans CE 1.8 et EE 1.13.

Les URL ont changé avec la dernière version de Magento. Auparavant, dans CE 1.7 et EE 1.12, les appels à $this->getAddToCartUrl($_product)partir d'une liste de produits passaient par les étapes suivantes:

  1. Mage_Catalog_Block_Product_Abstract::getAddToCartUrl()
    • Ici, il ajouterait le paramètre de requête "options" avec la valeur "panier"
  2. Mage_Catalog_Block_Product_Abstract::getProductUrl()
    • Cette méthode obtient essentiellement une valeur du modèle d'URL
  3. Mage_Catalog_Model_Product_Url::getUrl()
    • De nombreux traitements ont lieu jusqu'à ce que l'URL soit finalement générée, avec les paramètres de requête initialement transmis dans

Maintenant, avec CE 1.8 et EE 1.13, l'étape 3 Mage_Catalog_Model_Product_Url::getUrl()commence comme ceci:

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

Étant donné que les produits de la liste contiennent déjà des données d'URL, les paramètres de requête ne sont pas ajoutés et l'URL finale ne contient pas ?options=cart.

Ma question: est-ce un bug ou une fonctionnalité?

jharrison.au
la source
Juste une remarque, nous devons ajouter une balise form_key à notre URL d'ajout au panier après quelques mises à niveau
EE1.13
Merci pour la contribution - à première vue, Magento le fera automatiquement Mage_Catalog_Block_Product_Abstract::getAddToCartUrl()via le noyau / session singleton. Pouvez-vous me donner un exemple du code que vous avez utilisé?
jharrison.au

Réponses:

3

Wow, tout à fait le delta pour cette classe de 1.7.0.2 -> 1.8.0.0! Alors qu'il y a des changements substantiels dans cette classe, et qu'il s'agit d'un "comportement de rupture", elle doit être considérée comme un bug et doit être soumise au support EE.

Il n'y a rien d'exceptionnellement nouveau ou énervé dans cette fonctionnalité précédemment valide, et même dans une mise à jour mineure, les changements de rupture ne devraient pas exister (d'où Magento 2).

Benmarks
la source
Merci Ben, je voulais juste m'assurer de ne rien manquer.
jharrison.au