Magento getProductUrl() ne retourne pas la bonne url (aléatoire?)
Je suis en utilisant Magento 1.5.0.1 et la getProductUrl() fonction utilisée dans les ventes croisées et vendent des blocs sur la page du produit est de vomir différents formats URL.
Soit la bonne url, par exemple:
/laptop-bag.html
Ou le faux (cela fonctionne bien, mais bien sûr ce n'est pas la réécriture d'URL):
/catalog/product/view/id/825/s/ordinateur portable-sac/category/16/
Parfois les deux de ventes croisées et vendent des blocs de retourner l'URL est correcte, parfois les deux utilisent la version la plus longue, et, dans certains cas, on utilise la bonne et l'autre utilise la version longue??
Des idées pourquoi ce qui se passe?
J'ai déjà un magento réparation de base de données, réindexée, et de rafraîchir /vidé tous les caches.
OriginalL'auteur cappuccino | 2012-07-30
Vous devez vous connecter pour publier un commentaire.
Essayer
$product->getUrlPath()
au lieu de$product->getProductUrl()
Mise à JOUR: selon les commentaires ci-dessous par @jordan314, Magento recommande de fuir les clients:
La url_path attribut n'est plus utilisé que de 1,13 mais elle est toujours disponible pour des raisons de compatibilité descendante, et Magento ne sera pas affecter une valeur à elle pour de nouveaux produits, de sorte qu'il n'est pas recommandé de continuer à l'utiliser. Peut-être vous pouvez essayer d'utiliser $produit->getProductUrl() à la place.
Grâce Kalpesh, avait le même problème, beaucoup de creuser et de trouve que! génial!!
Un plaisir de vous aider 🙂
Je suis à l'aide d'EE. Selon Magento Soutien, "Le url_path attribut n'est plus utilisé que de 1,13 mais elle est toujours disponible pour des raisons de compatibilité descendante, et Magento ne sera pas affecter une valeur à elle pour de nouveaux produits, de sorte qu'il n'est pas recommandé de continuer à l'utiliser. Peut-être vous pouvez essayer d'utiliser $produit->getProductUrl() à la place." Je voudrais donc utiliser $produit->getProductUrl() à nouveau au lieu de $produit->getUrlPath().
OriginalL'auteur Kalpesh
Essayez d'ajouter cela, lorsque vous êtes l'obtention de votre collection
Il m'a aidé.
Cela a fonctionné. Mais il faut ajouter $collection->load(); Et après $collection->addUrlRewrite();
OriginalL'auteur karick
L'url incorrecte est générée, car il ne peut pas trouver l'url réécrite.
Peut-être que c'est dû au fait que incorrect store_id.
par exemple:
résultat:
Le bon de réécriture d'url peut être trouvée dans le tableau nommé core_url_rewrite (y compris les informations sur les store_id)
Si elle a trouvé une valeur équivalente dans core_url_rewrite, il va générer de "l'url est correcte' d'autre, il va concat le product_id + url + clé category_id
Mage::app()->setCurrentStore('default');
la première ligne de notre méthode (comme l'a suggéré) a travaillé, merci! 😀OriginalL'auteur ivantedja
OriginalL'auteur test